chore: bump chromium to e049d599a8332b9b2785b0178be74 (master) ()

This commit is contained in:
Electron Bot 2019-10-18 15:57:34 -04:00 committed by Jeremy Apthorp
parent 0090616f7b
commit 3ac3fbdbfb
94 changed files with 670 additions and 1213 deletions
DEPS
chromium_src
patches
angle
chromium
config.json
perfetto
v8
script
shell
spec-main
spec

2
DEPS
View file

@ -11,7 +11,7 @@ gclient_gn_args = [
vars = {
'chromium_version':
'6c775c358b709f4353bc693623bf58820adf3918',
'c3a0220e7bde049d599a8332b9b2785b0178be74',
'node_version':
'v12.10.0',
'nan_version':

View file

@ -45,6 +45,7 @@ static_library("chrome") {
"//chrome/browser/predictors/resolve_host_client_impl.h",
"//chrome/browser/ssl/security_state_tab_helper.cc",
"//chrome/browser/ssl/security_state_tab_helper.h",
"//chrome/browser/ssl/tls_deprecation_config.cc",
"//chrome/browser/ui/autofill/popup_view_common.cc",
"//chrome/browser/ui/autofill/popup_view_common.h",
"//chrome/browser/win/chrome_process_finder.cc",
@ -70,6 +71,14 @@ static_library("chrome") {
sources += [
"//chrome/browser/extensions/global_shortcut_listener_x11.cc",
"//chrome/browser/extensions/global_shortcut_listener_x11.h",
"//chrome/browser/ui/views/status_icons/concat_menu_model.cc",
"//chrome/browser/ui/views/status_icons/concat_menu_model.h",
"//chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc",
"//chrome/browser/ui/views/status_icons/status_icon_linux_dbus.h",
]
public_deps += [
"//components/dbus/menu",
"//components/dbus/thread_linux",
]
}

View file

@ -1 +0,0 @@
gles2_use_constant_initialization_for_g_mutex.patch

View file

@ -1,60 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jaime Bernardo <jaime@janeasystems.com>
Date: Mon, 30 Sep 2019 17:53:56 +0100
Subject: GLES2: Use require_constant_initialization for g_Mutex
A static assert to verify that the global mutex g_Mutex is trivially
constructed fails to compile with clang when using the STL shipped
with Visual Studio 2019.
Use __attribute__((require_constant_initialization)) instead to verify
for constant initialization.
BUG=angleproject:3936
Change-Id: I5969762ad5a99033143513d7c4992344da276b1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1832164
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
diff --git a/AUTHORS b/AUTHORS
index ab39ee01a47c15da57b531d2c711649f1685091b..7a0f3b32b101b34195c57637b227062d9b173d6a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -58,3 +58,4 @@ Jérôme Duval
Thomas Miller
Till Rathmann
Nick Shaforostov
+Jaime Bernardo
diff --git a/src/common/angleutils.h b/src/common/angleutils.h
index 131d5796da4399df1144bc349c506cde8220973a..3a1391e29b72e7ec356e44c7ced202cc29773fb3 100644
--- a/src/common/angleutils.h
+++ b/src/common/angleutils.h
@@ -345,4 +345,10 @@ std::string ToString(const T &value)
# define ANGLE_MAYBE_UNUSED
#endif // __has_cpp_attribute(maybe_unused)
+#if __has_cpp_attribute(require_constant_initialization)
+# define ANGLE_REQUIRE_CONSTANT_INIT [[require_constant_initialization]]
+#else
+# define ANGLE_REQUIRE_CONSTANT_INIT
+#endif // __has_cpp_attribute(require_constant_initialization)
+
#endif // COMMON_ANGLEUTILS_H_
diff --git a/src/libGLESv2/global_state.cpp b/src/libGLESv2/global_state.cpp
index 8ea912eea045c912ef64dfedcfd8f07db4337a9d..c8c9a732fbad5cc50ed2a7fc4b5387a30274435b 100644
--- a/src/libGLESv2/global_state.cpp
+++ b/src/libGLESv2/global_state.cpp
@@ -35,9 +35,8 @@ namespace
{
static TLSIndex threadTLS = TLS_INVALID_INDEX;
Debug *g_Debug = nullptr;
-std::atomic<std::mutex *> g_Mutex;
-static_assert(std::is_trivially_constructible<decltype(g_Mutex)>::value,
- "global mutex is not trivially constructible");
+
+ANGLE_REQUIRE_CONSTANT_INIT std::atomic<std::mutex *> g_Mutex(nullptr);
static_assert(std::is_trivially_destructible<decltype(g_Mutex)>::value,
"global mutex is not trivially destructible");

View file

@ -79,5 +79,5 @@ feat_add_set_theme_source_to_allow_apps_to.patch
revert_cleanup_remove_menu_subtitles_sublabels.patch
ui_views_fix_jumbo_build.patch
export_fetchapi_mojo_traits_to_fix_component_build.patch
fix_windows_build.patch
build_fix_when_building_with_enable_plugins_false.patch
add_zoom_limit_setters_to_webcontents.patch

View file

@ -39,10 +39,10 @@ index 2aef366ac8194aa261cbca6abc051f7da8a988d3..3c7d66c81032636abcca4f1538ce9b7f
GIN_EXPORT static ArrayBufferAllocator* SharedInstance();
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
index 3eeafca490b1fbbedc2c16f203a4ac28b23da675..fee684296357c2c3af7395bdd17ac8b8445f55c4 100644
index 3b1ced15de47f6b88716db2b79306bb7d98cfdf4..0ed89b4147d98f2239a3504c898666a758cee618 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
@@ -647,6 +647,10 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
@@ -645,6 +645,10 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
size, WTF::ArrayBufferContents::kDontInitialize);
}
@ -70,7 +70,7 @@ index ac76d127b96b80c8260a7e2cda0b669cd98787ad..dcab64586700a8740262aede8dba2755
Partitions::ArrayBufferPartition()->Free(data);
}
diff --git a/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h b/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h
index 3f44cd2fdf648057be8defcf041574b4c91e0363..55c0e7c66649ae9d9cbef6179daac7ad771b755c 100644
index ee7c89a4950d6b3c97a810c41a62fee7e372018d..c2b60f20a72cca46d05af369f33d9c19395b34ef 100644
--- a/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h
+++ b/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h
@@ -140,6 +140,7 @@ class WTF_EXPORT ArrayBufferContents {

View file

@ -0,0 +1,73 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: John Kleinschmidt <kleinschmidtorama@gmail.com>
Date: Mon, 23 Sep 2019 17:07:53 -0400
Subject: add zoom limit setters to webcontents
Allows minimum_zoom_percent_ and maximum_zoom_percent_ to be set on WebContents.
This is needed by Electron to allow apps to limit how much an app can zoom in
or out.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 8586f71224f1cae6a5e9b4005a6acfef9ff64d4d..4d4dce8124312d46f90db8d2fc59bd0b7acd498d 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4142,10 +4142,18 @@ bool WebContentsImpl::GetClosedByUserGesture() {
return closed_by_user_gesture_;
}
+void WebContentsImpl::SetMinimumZoomPercent(int zoom_percent) {
+ minimum_zoom_percent_ = zoom_percent;
+}
+
int WebContentsImpl::GetMinimumZoomPercent() {
return minimum_zoom_percent_;
}
+void WebContentsImpl::SetMaximumZoomPercent(int zoom_percent) {
+ maximum_zoom_percent_ = zoom_percent;
+}
+
int WebContentsImpl::GetMaximumZoomPercent() {
return maximum_zoom_percent_;
}
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 72f7570ed92886e97629116fec98c1c4dcf95f52..e876929be3df7ba7251886a56acf9b84bbe62e32 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -450,7 +450,9 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
void SystemDragEnded(RenderWidgetHost* source_rwh) override;
void SetClosedByUserGesture(bool value) override;
bool GetClosedByUserGesture() override;
+ void SetMinimumZoomPercent(int zoom_percent) override;
int GetMinimumZoomPercent() override;
+ void SetMaximumZoomPercent(int zoom_percent) override;
int GetMaximumZoomPercent() override;
void SetPageScale(float page_scale_factor) override;
gfx::Size GetPreferredSize() override;
@@ -1714,8 +1716,8 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
bool closed_by_user_gesture_;
// Minimum/maximum zoom percent.
- const int minimum_zoom_percent_;
- const int maximum_zoom_percent_;
+ int minimum_zoom_percent_;
+ int maximum_zoom_percent_;
// Used to correctly handle integer zooming through a smooth scroll device.
float zoom_scroll_remainder_;
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
index 94a5b87ca72998729f1fca14f247914bb81d60d1..3af575d51d0a36f9586a3cfc00575e83e70a46b9 100644
--- a/content/public/browser/web_contents.h
+++ b/content/public/browser/web_contents.h
@@ -808,8 +808,10 @@ class WebContents : public PageNavigator,
virtual void SetClosedByUserGesture(bool value) = 0;
virtual bool GetClosedByUserGesture() = 0;
- // Gets the minimum/maximum zoom percent.
+ // Gets/sets the minimum/maximum zoom percent.
+ virtual void SetMinimumZoomPercent(int zoom_percent) = 0;
virtual int GetMinimumZoomPercent() = 0;
+ virtual void SetMaximumZoomPercent(int zoom_percent) = 0;
virtual int GetMaximumZoomPercent() = 0;
// Set the renderer's page scale to the given factor.

View file

@ -10,10 +10,10 @@ to fix electron/electron#13787. The backport landed in Chromium 67 but the
DidCreateScriptContext re-ordering needs to be upstreamed or kept indefinitely
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 8331c466ac9ae91d79c32f17b815f048c7e30a8b..e066abfc3341ff620191116d87ff0e135cdf43e7 100644
index 4eb7d11483b55ef99758aa6782b3516fef706628..c384a9707d0f998b5e8bc80ad9af1ca29d9ef58c 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
@@ -205,11 +205,10 @@ void LocalWindowProxy::Initialize() {
@@ -210,11 +210,10 @@ void LocalWindowProxy::Initialize() {
GetFrame()->IsMainFrame());
MainThreadDebugger::Instance()->ContextCreated(script_state_, GetFrame(),
origin);
@ -23,6 +23,6 @@ index 8331c466ac9ae91d79c32f17b815f048c7e30a8b..e066abfc3341ff620191116d87ff0e13
- InstallConditionalFeatures();
-
// This needs to go after everything else since it accesses the window object.
// WARNING: May modify the global object!
InitializeV8ExtrasBinding(script_state_);
if (World().IsMainWorld()) {
GetFrame()->Loader().DispatchDidClearWindowObjectInMainWorld();
}

View file

@ -14,10 +14,10 @@ when there is code doing that.
This patch reverts the change to fix the crash in Electron.
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
index af0db8b9f5b93b51d6d0edb100d551a78a55ae4d..bab05e53d7c87547916b456bf55bc497c322a042 100644
index 0c69b3af9d2144b5d4d61e2d4add7edec839d0b5..acfba2544f6329348f60dd92ca5d9865960db371 100644
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -338,10 +338,6 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
@@ -325,10 +325,6 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
}
CHECK(!view_ || !view_->IsAttached());
@ -28,7 +28,7 @@ index af0db8b9f5b93b51d6d0edb100d551a78a55ae4d..bab05e53d7c87547916b456bf55bc497
if (!Client())
return;
@@ -359,6 +355,10 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
@@ -346,6 +342,10 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
// Notify ScriptController that the frame is closing, since its cleanup ends
// up calling back to LocalFrameClient via WindowProxy.
GetScriptController().ClearForClose();

View file

@ -5,7 +5,7 @@ Subject: blink_world_context.patch
diff --git a/third_party/blink/public/web/web_local_frame.h b/third_party/blink/public/web/web_local_frame.h
index a781a44399a31f048419311d2317229c912752c2..131c0dcb125b00215e3ad469c11c4b47d7cb126b 100644
index 900c1e97bd5b8ad113def9001be495cae94bbcdf..6cec8d0bdfce94fd3980eb7509dfced79903f0d6 100644
--- a/third_party/blink/public/web/web_local_frame.h
+++ b/third_party/blink/public/web/web_local_frame.h
@@ -356,6 +356,9 @@ class WebLocalFrame : public WebFrame {
@ -19,10 +19,10 @@ index a781a44399a31f048419311d2317229c912752c2..131c0dcb125b00215e3ad469c11c4b47
// that the script evaluated to with callback. Script execution can be
// suspend.
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
index 0fccae4bfe95944bd203240524f358d8ea97f654..107593a056ab68b4e4aa1cd172c35334c5e0b0ea 100644
index bb640f13de34de5d966d97cf617faa3cb3fd54c2..686cddd0755ee219eaf367b3ce84320aeeb5053d 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -877,6 +877,13 @@ v8::Local<v8::Object> WebLocalFrameImpl::GlobalProxy() const {
@@ -879,6 +879,13 @@ v8::Local<v8::Object> WebLocalFrameImpl::GlobalProxy() const {
return MainWorldScriptContext()->Global();
}
@ -37,7 +37,7 @@ index 0fccae4bfe95944bd203240524f358d8ea97f654..107593a056ab68b4e4aa1cd172c35334
return BindingSecurity::ShouldAllowAccessToFrame(
CurrentDOMWindow(V8PerIsolateData::MainThreadIsolate()),
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
index 34dae0a5417921a9caca53bfb83c26a37029303a..a68c19ef62ecdbe9d24de5a367ff21744332acc7 100644
index ab52cef219785766b1315ec7e17d15c2ba2d6138..cf12b32172a0dc814a1478c275d1b5c067d5eaeb 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
@@ -150,6 +150,8 @@ class CORE_EXPORT WebLocalFrameImpl final

View file

@ -6,7 +6,7 @@ Subject: boringssl BUILD.gn
Build BoringSSL with some extra functions that nodejs needs.
diff --git a/third_party/boringssl/BUILD.gn b/third_party/boringssl/BUILD.gn
index 250ed854247a6f2f17690ffb95524eb57c72598b..6399d955196fb2d79f18dfcf7cbb2dbd5bd0bcae 100644
index a8aa9c9ece41fe6e55c19aa301ec8d3314ea3644..9de25650618847b6f4fc022f47a85c295b1323a7 100644
--- a/third_party/boringssl/BUILD.gn
+++ b/third_party/boringssl/BUILD.gn
@@ -45,6 +45,19 @@ config("no_asm_config") {

View file

@ -8,10 +8,10 @@ categories in use are known / declared. This patch is required for us
to introduce a new Electron category for Electron-specific tracing.
diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h
index 6717a2bd93b7bec89934bb3e70cdfb5461dcc29b..ca2bd030d1f46b1a7294883e30274cd0da2e7f49 100644
index dcb32a5eadb7fc3c431099107bdfdfba8764a187..e1a343fdbdc6098189bce9fc1d81e6df5555e7ab 100644
--- a/base/trace_event/builtin_categories.h
+++ b/base/trace_event/builtin_categories.h
@@ -62,6 +62,7 @@
@@ -63,6 +63,7 @@
X("dwrite") \
X("DXVA Decoding") \
X("EarlyJava") \

View file

@ -5,10 +5,10 @@ Subject: can_create_window.patch
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index d5845d0263477b01ddf1e8bf5075e1a813751360..3d0bb0760b222eb3dd916ec032179fec62b3e6cc 100644
index d6d88e7b66f2de4b6733ea454fc45bb804f13a0e..30e9eabf785a0f241e9581ea38f55dd779acd8ce 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -4023,6 +4023,7 @@ void RenderFrameHostImpl::CreateNewWindow(
@@ -4054,6 +4054,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,
@ -17,10 +17,10 @@ index d5845d0263477b01ddf1e8bf5075e1a813751360..3d0bb0760b222eb3dd916ec032179fec
&no_javascript_access);
diff --git a/content/common/frame.mojom b/content/common/frame.mojom
index 94b48f4a88df48f51adff20bc7954b0989e5ae05..a8eb7ba81afd2c8fb87544fb70a8ef862811a014 100644
index f0d9cafca7efb0ae0440619b821b1976d8460396..e34e0e6387b907960d234da93a3e90a390488d02 100644
--- a/content/common/frame.mojom
+++ b/content/common/frame.mojom
@@ -307,6 +307,10 @@ struct CreateNewWindowParams {
@@ -313,6 +313,10 @@ struct CreateNewWindowParams {
// The window features to use for the new window.
blink.mojom.WindowFeatures features;
@ -32,10 +32,10 @@ index 94b48f4a88df48f51adff20bc7954b0989e5ae05..a8eb7ba81afd2c8fb87544fb70a8ef86
// 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 64e7acba1a5fb12323e5e8da90b544b6bbad1802..8301dbc5f4f7c4186fa5f25de34885beec28c7c8 100644
index a9fddd7dd2d3f5c07a3b15925209a396c9aa096d..da7eca5f443e2ecdcb3f0819848735aafeb43a00 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -498,6 +498,8 @@ bool ContentBrowserClient::CanCreateWindow(
@@ -502,6 +502,8 @@ bool ContentBrowserClient::CanCreateWindow(
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@ -45,7 +45,7 @@ index 64e7acba1a5fb12323e5e8da90b544b6bbad1802..8301dbc5f4f7c4186fa5f25de34885be
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 84a8e2fcf0e55bb9582a277f4ff2f76739a6a7ad..109d3166e85a28978bc0bf1f8f698537b1831699 100644
index 4e18dfd0dc8d4be9b59f12e7010b7f2be70d6cf0..07fa16953d6167a5a381b28a5da3c08a78de4306 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -178,6 +178,7 @@ class RenderFrameHost;
@ -56,7 +56,7 @@ index 84a8e2fcf0e55bb9582a277f4ff2f76739a6a7ad..109d3166e85a28978bc0bf1f8f698537
class SerialDelegate;
class SiteInstance;
class SpeechRecognitionManagerDelegate;
@@ -783,6 +784,8 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -801,6 +802,8 @@ class CONTENT_EXPORT ContentBrowserClient {
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@ -66,10 +66,10 @@ index 84a8e2fcf0e55bb9582a277f4ff2f76739a6a7ad..109d3166e85a28978bc0bf1f8f698537
bool opener_suppressed,
bool* no_javascript_access);
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 4da7798e01aca97295042ce21fb8bffb602cf528..afd19c939fe8ee369afa1a85bd0ccefc9e084177 100644
index 4a3c760000fca5f53244a03b9a2074991bc0c382..c5ab8ad81bf11d0ec151b9585a4f1a7f5397ae4b 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -73,6 +73,7 @@
@@ -71,6 +71,7 @@
#include "content/renderer/ime_event_guard.h"
#include "content/renderer/internal_document_state_data.h"
#include "content/renderer/loader/request_extra_data.h"
@ -77,7 +77,7 @@ index 4da7798e01aca97295042ce21fb8bffb602cf528..afd19c939fe8ee369afa1a85bd0ccefc
#include "content/renderer/media/audio/audio_device_factory.h"
#include "content/renderer/media/webrtc/peer_connection_dependency_factory.h"
#include "content/renderer/media/webrtc/rtc_peer_connection_handler.h"
@@ -1324,6 +1325,8 @@ WebView* RenderViewImpl::CreateView(
@@ -1367,6 +1368,8 @@ WebView* RenderViewImpl::CreateView(
}
params->features = ConvertWebWindowFeaturesToMojoWindowFeatures(features);

View file

@ -8,7 +8,7 @@ run before shutdown. This is required to cleanup WebContents asynchronously
in atom::CommonWebContentsDelegate::ResetManageWebContents.
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
index 4b4a82b2f42deba33b82750fca85aa6c6258f36e..367cfbe389907c2f76b348be2f5c503fd6193541 100644
index 82f291613ac9682ddf414699046393125eb102eb..440681987b4d6420be93fe2f17180cb42adc8d2c 100644
--- a/content/browser/browser_main_loop.cc
+++ b/content/browser/browser_main_loop.cc
@@ -1505,7 +1505,7 @@ void BrowserMainLoop::MainMessageLoopRun() {

View file

@ -17,10 +17,10 @@ only one or two specific checks fail. Then it's better to simply comment out the
failing checks and allow the rest of the target to have them enabled.
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
index cc20a064d1d2f12bec488e0b44acf4db3be54c0f..752033bb32ceaba06c3b543acbf85ee6e7a8651f 100644
index f383b8ee13881b66144ca12e284e1ead4376a27f..42375cd33bb9759ef1c264672b250638a472fe7e 100644
--- a/content/browser/frame_host/navigation_controller_impl.cc
+++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -1213,8 +1213,10 @@ NavigationType NavigationControllerImpl::ClassifyNavigation(
@@ -1209,8 +1209,10 @@ NavigationType NavigationControllerImpl::ClassifyNavigation(
return NAVIGATION_TYPE_NEW_SUBFRAME;
}
@ -33,7 +33,7 @@ index cc20a064d1d2f12bec488e0b44acf4db3be54c0f..752033bb32ceaba06c3b543acbf85ee6
if (rfh->GetParent()) {
// All manual subframes would be did_create_new_entry and handled above, so
@@ -1466,7 +1468,10 @@ void NavigationControllerImpl::RendererDidNavigateToNewPage(
@@ -1462,7 +1464,10 @@ void NavigationControllerImpl::RendererDidNavigateToNewPage(
new_entry->GetFavicon() = GetLastCommittedEntry()->GetFavicon();
}

View file

@ -3,31 +3,14 @@ From: deepak1556 <hop2deep@gmail.com>
Date: Thu, 18 Oct 2018 17:07:01 -0700
Subject: desktop_media_list.patch
* Adds a new observer method to DesktopMediaListObserver for
desktop capture api.
* Backports https://chromium-review.googlesource.com/c/chromium/src/+/1199806
that fixes crash with screen capturer, can be removed in 71.0.3539.0
* Expose the capturer source list for the desktopCapturer API
* Free the one-time use capturer after thumbnails are fetched
diff --git a/chrome/browser/media/webrtc/desktop_media_list.h b/chrome/browser/media/webrtc/desktop_media_list.h
index 8e02a8a95eb07516162eacdf5b361231d3a02975..3497b85428a52c6019cfb5d30229071f99ecfb20 100644
index a489bf6ea2179059f53e53563e993db9c7cd123b..8d3df446290e2111e4952899539cbc16d37546e5 100644
--- a/chrome/browser/media/webrtc/desktop_media_list.h
+++ b/chrome/browser/media/webrtc/desktop_media_list.h
@@ -32,6 +32,9 @@ class DesktopMediaList {
virtual ~DesktopMediaList() {}
+ // Allows listening to notifications generated by the model.
+ virtual void AddObserver(DesktopMediaListObserver* observer) = 0;
+
// Sets time interval between updates. By default list of sources and their
// thumbnail are updated once per second. If called after StartUpdating() then
// it will take effect only after the next update.
@@ -51,10 +54,11 @@ class DesktopMediaList {
// enumerated. After the initial enumeration the model will be refreshed based
// on the update period, and notifications generated only for changes in the
// model.
- virtual void StartUpdating(DesktopMediaListObserver* observer) = 0;
+ virtual void StartUpdating() = 0;
@@ -69,6 +69,7 @@ class DesktopMediaList {
virtual int GetSourceCount() const = 0;
virtual const Source& GetSource(int index) const = 0;
@ -36,34 +19,19 @@ index 8e02a8a95eb07516162eacdf5b361231d3a02975..3497b85428a52c6019cfb5d30229071f
virtual content::DesktopMediaID::Type GetMediaListType() const = 0;
};
diff --git a/chrome/browser/media/webrtc/desktop_media_list_base.cc b/chrome/browser/media/webrtc/desktop_media_list_base.cc
index 7346429314858b4ce7e5caaea7c3328ca22b1b02..fd98c0eb68f04f9f3bdbe8c77cfeb523d685ba87 100644
index 9d9b7435044c4b84f971bd94765eb875fbac1624..eb7e10f7d9e937ebd6f776e4b4ec495d02fb884b 100644
--- a/chrome/browser/media/webrtc/desktop_media_list_base.cc
+++ b/chrome/browser/media/webrtc/desktop_media_list_base.cc
@@ -21,6 +21,11 @@ DesktopMediaListBase::DesktopMediaListBase(base::TimeDelta update_period)
DesktopMediaListBase::~DesktopMediaListBase() {}
+void DesktopMediaListBase::AddObserver(DesktopMediaListObserver* observer) {
+ DCHECK(!observer_);
+ observer_ = observer;
+}
+
void DesktopMediaListBase::SetUpdatePeriod(base::TimeDelta period) {
DCHECK(!observer_);
update_period_ = period;
@@ -34,10 +39,7 @@ void DesktopMediaListBase::SetViewDialogWindowId(DesktopMediaID dialog_id) {
view_dialog_id_ = dialog_id;
@@ -56,7 +56,7 @@ void DesktopMediaListBase::Update(UpdateCallback callback) {
DCHECK(sources_.empty());
DCHECK(!refresh_callback_);
refresh_callback_ = std::move(callback);
- Refresh(false);
+ Refresh(true);
}
-void DesktopMediaListBase::StartUpdating(DesktopMediaListObserver* observer) {
- DCHECK(!observer_);
-
- observer_ = observer;
+void DesktopMediaListBase::StartUpdating() {
Refresh();
}
@@ -52,6 +54,11 @@ const DesktopMediaList::Source& DesktopMediaListBase::GetSource(
int DesktopMediaListBase::GetSourceCount() const {
@@ -70,6 +70,11 @@ const DesktopMediaList::Source& DesktopMediaListBase::GetSource(
return sources_[index];
}
@ -75,68 +43,23 @@ index 7346429314858b4ce7e5caaea7c3328ca22b1b02..fd98c0eb68f04f9f3bdbe8c77cfeb523
DesktopMediaID::Type DesktopMediaListBase::GetMediaListType() const {
return type_;
}
@@ -63,6 +70,12 @@ DesktopMediaListBase::SourceDescription::SourceDescription(
void DesktopMediaListBase::UpdateSourcesList(
const std::vector<SourceDescription>& new_sources) {
+ // Notify observer when there was no new source captured.
+ if (new_sources.empty()) {
+ observer_->OnSourceUnchanged(this);
+ return;
+ }
+
typedef std::set<DesktopMediaID> SourceSet;
SourceSet new_source_set;
for (size_t i = 0; i < new_sources.size(); ++i) {
@@ -135,6 +148,8 @@ void DesktopMediaListBase::UpdateSourceThumbnail(DesktopMediaID id,
}
void DesktopMediaListBase::ScheduleNextRefresh() {
+ if (!observer_->ShouldScheduleNextRefresh(this))
+ return;
base::PostDelayedTask(FROM_HERE, {BrowserThread::UI},
base::BindOnce(&DesktopMediaListBase::Refresh,
weak_factory_.GetWeakPtr()),
diff --git a/chrome/browser/media/webrtc/desktop_media_list_base.h b/chrome/browser/media/webrtc/desktop_media_list_base.h
index 29ef83096f7a7c69c67e9ad1bee2c45723e58f3f..ec228a826b298eb590f15c843e3346460ae13321 100644
index 3c09ec3111d54cb4f0b74f16a81292b779009eae..26acc18acaef21ced3604fe7ede079d8577f53f4 100644
--- a/chrome/browser/media/webrtc/desktop_media_list_base.h
+++ b/chrome/browser/media/webrtc/desktop_media_list_base.h
@@ -24,12 +24,14 @@ class DesktopMediaListBase : public DesktopMediaList {
~DesktopMediaListBase() override;
// DesktopMediaList interface.
+ void AddObserver(DesktopMediaListObserver* observer) override;
void SetUpdatePeriod(base::TimeDelta period) override;
void SetThumbnailSize(const gfx::Size& thumbnail_size) override;
void SetViewDialogWindowId(content::DesktopMediaID dialog_id) override;
- void StartUpdating(DesktopMediaListObserver* observer) override;
+ void StartUpdating() override;
@@ -34,6 +34,7 @@ class DesktopMediaListBase : public DesktopMediaList {
void Update(UpdateCallback callback) override;
int GetSourceCount() const override;
const Source& GetSource(int index) const override;
+ const std::vector<Source>& GetSources() const override;
content::DesktopMediaID::Type GetMediaListType() const override;
static uint32_t GetImageHash(const gfx::Image& image);
diff --git a/chrome/browser/media/webrtc/desktop_media_list_observer.h b/chrome/browser/media/webrtc/desktop_media_list_observer.h
index 47401abc984e6fe26c7f4c5399aa565c687060b0..ca6a527ffac877c27aac94337ec5a7b546e09768 100644
--- a/chrome/browser/media/webrtc/desktop_media_list_observer.h
+++ b/chrome/browser/media/webrtc/desktop_media_list_observer.h
@@ -18,6 +18,10 @@ class DesktopMediaListObserver {
int new_index) = 0;
virtual void OnSourceNameChanged(DesktopMediaList* list, int index) = 0;
virtual void OnSourceThumbnailChanged(DesktopMediaList* list, int index) = 0;
+ virtual void OnSourceUnchanged(DesktopMediaList* list) = 0;
+ // Return value indicates whether the observer should continue listening
+ // for capture updates.
+ virtual bool ShouldScheduleNextRefresh(DesktopMediaList* list) = 0;
protected:
virtual ~DesktopMediaListObserver() {}
diff --git a/chrome/browser/media/webrtc/native_desktop_media_list.cc b/chrome/browser/media/webrtc/native_desktop_media_list.cc
index b2005c70acbc1c05c59bb2059b190ab78fb63a68..6cfc3007549b2e7992334b708e4e71a00974c2a3 100644
index 2b109bd1dea2aed647ec01c0660b2d4c963312f2..8567b4c84b55f1f7774ef3755dca63e94ddd7a29 100644
--- a/chrome/browser/media/webrtc/native_desktop_media_list.cc
+++ b/chrome/browser/media/webrtc/native_desktop_media_list.cc
@@ -8,14 +8,15 @@
@@ -10,14 +10,15 @@
#include "base/hash/hash.h"
#include "base/message_loop/message_pump_type.h"
#include "base/single_thread_task_runner.h"
@ -145,7 +68,7 @@ index b2005c70acbc1c05c59bb2059b190ab78fb63a68..6cfc3007549b2e7992334b708e4e71a0
#include "base/task/post_task.h"
#include "base/threading/thread_restrictions.h"
#include "build/build_config.h"
#include "chrome/browser/media/webrtc/desktop_media_list_observer.h"
#include "chrome/browser/media/webrtc/desktop_media_list.h"
-#include "chrome/grit/generated_resources.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
@ -153,7 +76,7 @@ index b2005c70acbc1c05c59bb2059b190ab78fb63a68..6cfc3007549b2e7992334b708e4e71a0
#include "media/base/video_util.h"
#include "third_party/libyuv/include/libyuv/scale_argb.h"
#include "third_party/skia/include/core/SkBitmap.h"
@@ -218,6 +219,8 @@ void NativeDesktopMediaList::Worker::RefreshThumbnails(
@@ -220,6 +221,8 @@ void NativeDesktopMediaList::Worker::RefreshThumbnails(
FROM_HERE, {BrowserThread::UI},
base::BindOnce(&NativeDesktopMediaList::UpdateNativeThumbnailsFinished,
media_list_));

View file

@ -15,10 +15,10 @@ the redraw locking mechanism, which fixes these issues. The electron issue
can be found at https://github.com/electron/electron/issues/1821
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
index 0fa5dabec0ebb1dfe248eb5d71f45cc391883854..07e7c1480abfa158856a274b6b1668653121c9b4 100644
index 5a60f89ef1cb766a7b06ef80c4bee16c7de593e2..4a96f076a200e59289cbb1f152ec9d3d266f4214 100644
--- a/ui/views/win/hwnd_message_handler.cc
+++ b/ui/views/win/hwnd_message_handler.cc
@@ -332,6 +332,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500;
@@ -348,6 +348,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500;
} // namespace
@ -29,7 +29,7 @@ index 0fa5dabec0ebb1dfe248eb5d71f45cc391883854..07e7c1480abfa158856a274b6b166865
// A scoping class that prevents a window from being able to redraw in response
// to invalidations that may occur within it for the lifetime of the object.
//
@@ -383,6 +387,7 @@ class HWNDMessageHandler::ScopedRedrawLock {
@@ -399,6 +403,7 @@ class HWNDMessageHandler::ScopedRedrawLock {
cancel_unlock_(false),
should_lock_(owner_->IsVisible() && !owner->HasChildRenderingWindow() &&
::IsWindow(hwnd_) &&
@ -37,8 +37,8 @@ index 0fa5dabec0ebb1dfe248eb5d71f45cc391883854..07e7c1480abfa158856a274b6b166865
(!(GetWindowLong(hwnd_, GWL_STYLE) & WS_CAPTION) ||
!ui::win::IsAeroGlassEnabled())) {
if (should_lock_)
@@ -993,6 +998,10 @@ bool HWNDMessageHandler::HasChildRenderingWindow() {
hwnd());
@@ -1022,6 +1027,10 @@ HWNDMessageHandler::RegisterUnadjustedMouseEvent() {
return scoped_enable;
}
+bool HWNDMessageHandler::HasNativeFrame() {
@ -49,10 +49,10 @@ index 0fa5dabec0ebb1dfe248eb5d71f45cc391883854..07e7c1480abfa158856a274b6b166865
// HWNDMessageHandler, gfx::WindowImpl overrides:
diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h
index 7223a9a61b9ad16ade315ed799d386a52688e16b..9817b49ba264775f88d3a22a825afc8833f2e28c 100644
index 4044afcc0fd1f076fc392d34417e3ccaa1347031..2bd5fcdf0293a07938d22902121517a458bd3e88 100644
--- a/ui/views/win/hwnd_message_handler.h
+++ b/ui/views/win/hwnd_message_handler.h
@@ -194,6 +194,8 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl,
@@ -202,6 +202,8 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl,
using TouchIDs = std::set<DWORD>;
enum class DwmFrameState { kOff, kOn };

View file

@ -37,10 +37,10 @@ index 8d8d18e2c62dbabfaa81d79f0555954b0b319d3d..298bfe91b9c9f4cbb3b07fe9bc368a1e
// The pending tree will have the most recently updated color space, so
// prefer that.
diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h
index 2c4a9f30c8f56e4f29dd48d247d7a7085ba4656f..ee72f68397993558f9c51e4e5417f21cb513547b 100644
index b6dd56de7cde72051caeedeef3ee413b8f24eba6..0da3f40ebc81170f63e61d8dc5714df5dd72c049 100644
--- a/cc/trees/layer_tree_settings.h
+++ b/cc/trees/layer_tree_settings.h
@@ -95,6 +95,8 @@ class CC_EXPORT LayerTreeSettings {
@@ -96,6 +96,8 @@ class CC_EXPORT LayerTreeSettings {
bool use_rgba_4444 = false;
bool unpremultiply_and_dither_low_bit_depth_tiles = false;
@ -83,7 +83,7 @@ index f17aa1fa451f1b99d7f083e07edd49b11f7639e4..09f7c5d6a92d89c199b296771a8ff60c
!command_line->HasSwitch(switches::kUIDisablePartialSwap);
#if defined(OS_MACOSX)
diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc
index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d33a75434 100644
index 9eb0276cbedd99b41e537720ea159cdaac7ce705..fbc49a3aa2a5458050acf0280f6caaa659941a68 100644
--- a/components/viz/service/display/gl_renderer.cc
+++ b/components/viz/service/display/gl_renderer.cc
@@ -83,6 +83,9 @@
@ -96,7 +96,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
namespace viz {
namespace {
@@ -561,8 +564,9 @@ void GLRenderer::DoDrawQuad(const DrawQuad* quad,
@@ -571,8 +574,9 @@ void GLRenderer::DoDrawQuad(const DrawQuad* quad,
void GLRenderer::DrawDebugBorderQuad(const DebugBorderDrawQuad* quad) {
SetBlendEnabled(quad->ShouldDrawWithBlending());
@ -108,7 +108,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
// Use the full quad_rect for debug quads to not move the edges based on
// partial swaps.
@@ -1416,7 +1420,8 @@ void GLRenderer::ChooseRPDQProgram(DrawRenderPassDrawQuadParams* params,
@@ -1428,7 +1432,8 @@ void GLRenderer::ChooseRPDQProgram(DrawRenderPassDrawQuadParams* params,
params->use_color_matrix, tint_gl_composited_content_,
params->apply_shader_based_rounded_corner &&
ShouldApplyRoundedCorner(params->quad)),
@ -118,7 +118,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
}
void GLRenderer::UpdateRPDQUniforms(DrawRenderPassDrawQuadParams* params) {
@@ -1887,8 +1892,8 @@ void GLRenderer::DrawSolidColorQuad(const SolidColorDrawQuad* quad,
@@ -1899,8 +1904,8 @@ void GLRenderer::DrawSolidColorQuad(const SolidColorDrawQuad* quad,
SetUseProgram(ProgramKey::SolidColor(use_aa ? USE_AA : NO_AA,
tint_gl_composited_content_,
ShouldApplyRoundedCorner(quad)),
@ -129,7 +129,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
SetShaderColor(color, opacity);
if (current_program_->rounded_corner_rect_location() != -1) {
SetShaderRoundedCorner(
@@ -2043,8 +2048,8 @@ void GLRenderer::DrawContentQuadAA(const ContentDrawQuadBase* quad,
@@ -2055,8 +2060,8 @@ void GLRenderer::DrawContentQuadAA(const ContentDrawQuadBase* quad,
: NON_PREMULTIPLIED_ALPHA,
false, false, tint_gl_composited_content_,
ShouldApplyRoundedCorner(quad)),
@ -140,7 +140,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
if (current_program_->tint_color_matrix_location() != -1) {
auto matrix = cc::DebugColors::TintCompositedContentColorTransformMatrix();
@@ -2140,8 +2145,8 @@ void GLRenderer::DrawContentQuadNoAA(const ContentDrawQuadBase* quad,
@@ -2152,8 +2157,8 @@ void GLRenderer::DrawContentQuadNoAA(const ContentDrawQuadBase* quad,
!quad->ShouldDrawWithBlending(), has_tex_clamp_rect,
tint_gl_composited_content_,
ShouldApplyRoundedCorner(quad)),
@ -151,7 +151,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
if (current_program_->tint_color_matrix_location() != -1) {
auto matrix = cc::DebugColors::TintCompositedContentColorTransformMatrix();
@@ -2244,7 +2249,7 @@ void GLRenderer::DrawYUVVideoQuad(const YUVVideoDrawQuad* quad,
@@ -2256,7 +2261,7 @@ void GLRenderer::DrawYUVVideoQuad(const YUVVideoDrawQuad* quad,
DCHECK_NE(src_color_space, src_color_space.GetAsFullRangeRGB());
gfx::ColorSpace dst_color_space =
@ -160,7 +160,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
// Force sRGB output on Windows for overlay candidate video quads to match
// DirectComposition behavior in case these switch between overlays and
// compositing. See https://crbug.com/811118 for details.
@@ -2400,8 +2405,8 @@ void GLRenderer::DrawStreamVideoQuad(const StreamVideoDrawQuad* quad,
@@ -2412,8 +2417,8 @@ void GLRenderer::DrawStreamVideoQuad(const StreamVideoDrawQuad* quad,
SetUseProgram(ProgramKey::VideoStream(tex_coord_precision,
ShouldApplyRoundedCorner(quad)),
@ -171,7 +171,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_));
gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id());
@@ -2458,8 +2463,8 @@ void GLRenderer::FlushTextureQuadCache(BoundGeometry flush_binding) {
@@ -2475,8 +2480,8 @@ void GLRenderer::FlushTextureQuadCache(BoundGeometry flush_binding) {
draw_cache_.nearest_neighbor ? GL_NEAREST : GL_LINEAR);
// Bind the program to the GL state.
@ -182,7 +182,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
if (current_program_->rounded_corner_rect_location() != -1) {
SetShaderRoundedCorner(
@@ -3156,7 +3161,9 @@ void GLRenderer::PrepareGeometry(BoundGeometry binding) {
@@ -3185,7 +3190,9 @@ void GLRenderer::PrepareGeometry(BoundGeometry binding) {
void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color,
const gfx::ColorSpace& src_color_space,
const gfx::ColorSpace& dst_color_space) {
@ -193,7 +193,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
gfx::ColorSpace adjusted_color_space = src_color_space;
float sdr_white_level = current_frame()->sdr_white_level;
@@ -3535,7 +3542,7 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource(
@@ -3564,7 +3571,7 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource(
*overlay_texture = FindOrCreateOverlayTexture(
params.quad->render_pass_id, iosurface_width, iosurface_height,
@ -202,7 +202,7 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
*new_bounds = gfx::RectF(updated_dst_rect.origin(),
gfx::SizeF((*overlay_texture)->texture.size()));
@@ -3753,8 +3760,8 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) {
@@ -3782,8 +3789,8 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) {
PrepareGeometry(SHARED_BINDING);
@ -213,17 +213,17 @@ index 6492ff14fc09cbc42a96a6af3d2a243a8c0a7b06..1b6bab010c6db50a0ef68de5aa0a086d
gfx::Transform render_matrix;
render_matrix.Translate(0.5 * output_rect.width() + output_rect.x(),
@@ -3914,3 +3921,5 @@ gfx::Size GLRenderer::GetRenderPassBackingPixelSize(
@@ -3943,3 +3950,5 @@ gfx::Size GLRenderer::GetRenderPassBackingPixelSize(
}
} // namespace viz
+
+#undef PATCH_CS
diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc
index 6eacfaffb8a0bc938d1f9b8c098b46dfb4b11869..0be82fd07bcef72a613219e1f664665a1beb959d 100644
index e42a2f780170f01edce84753d60b1fba3a429aeb..3cb62924adf93c4d437c8fa81529efc5188d7f77 100644
--- a/content/browser/gpu/gpu_process_host.cc
+++ b/content/browser/gpu/gpu_process_host.cc
@@ -197,6 +197,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus(
@@ -196,6 +196,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus(
// Command-line switches to propagate to the GPU process.
static const char* const kSwitchNames[] = {
@ -232,10 +232,10 @@ index 6eacfaffb8a0bc938d1f9b8c098b46dfb4b11869..0be82fd07bcef72a613219e1f664665a
service_manager::switches::kGpuSandboxAllowSysVShm,
service_manager::switches::kGpuSandboxFailuresFatal,
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index b14ed42882fb7feffdb1c481f8d02007d38f134c..b7ab31f636044255e2bc7a1b692611c8ec85d316 100644
index 0408a35db18ecdcad1521e4123aed4bd12bcf2c8..94898420ab1b93f61c830e19cd31ed0a1716922e 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -221,6 +221,7 @@
@@ -225,6 +225,7 @@
#include "ui/base/ui_base_switches.h"
#include "ui/base/ui_base_switches_util.h"
#include "ui/display/display_switches.h"
@ -243,19 +243,19 @@ index b14ed42882fb7feffdb1c481f8d02007d38f134c..b7ab31f636044255e2bc7a1b692611c8
#include "ui/gl/gl_switches.h"
#include "ui/native_theme/native_theme_features.h"
#include "url/url_constants.h"
@@ -2945,6 +2946,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
@@ -3015,6 +3016,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
// Propagate the following switches to the renderer command line (along
// with any associated values) if present in the browser command line.
static const char* const kSwitchNames[] = {
+ switches::kDisableColorCorrectRendering,
network::switches::kNoReferrers,
network::switches::kExplicitlyAllowedPorts,
service_manager::switches::kDisableInProcessStackTraces,
service_manager::switches::kDisableSeccompFilterSandbox,
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 33bb95b2f08c7cb0483b966f1564926efbf5c487..b5debb36fa35f98d871ba9e1f8a01c15cf0d0aee 100644
index 74cdb6031587640946ed08f37f1579ea4e68414c..68a5ec2d04dc3ec1c81d8f62fa067416f2faee29 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -2888,6 +2888,9 @@ cc::LayerTreeSettings RenderWidget::GenerateLayerTreeSettings(
@@ -2930,6 +2930,9 @@ cc::LayerTreeSettings RenderWidget::GenerateLayerTreeSettings(
settings.main_frame_before_activation_enabled =
cmd.HasSwitch(cc::switches::kEnableMainFrameBeforeActivation);

View file

@ -5,7 +5,7 @@ Subject: disable_hidden.patch
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index a8f29674dd39a7df74af53cccd630b87ab6de1ef..bb537f4114f17a2a01b97d667ee1ab41ac9bbb7f 100644
index 55c13fa06f7c6a5e7b3bd072ed7ffc452fd24438..09b6a881a5644859eafb216eee1172aeb8d086b2 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -683,6 +683,9 @@ void RenderWidgetHostImpl::WasHidden() {
@ -19,7 +19,7 @@ index a8f29674dd39a7df74af53cccd630b87ab6de1ef..bb537f4114f17a2a01b97d667ee1ab41
TRACE_EVENT0("renderer_host", "RenderWidgetHostImpl::WasHidden");
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
index 9fdfbce61531bb213007a0aabaa9ed84acb079bb..c07e8949f90953b39719d1d545a40b8df8dcb024 100644
index 71bfb5e5e6e0aba5615bc76cae1b551ac1880d09..c5175b7fd5c5394703fca85e57b4be5faf618b63 100644
--- a/content/browser/renderer_host/render_widget_host_impl.h
+++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -200,6 +200,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl

View file

@ -6,10 +6,10 @@ Subject: disable_user_gesture_requirement_for_beforeunload_dialogs.patch
See https://github.com/electron/electron/issues/10754
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index 3165488dd7d5aadc7aff9c9639f67167d8e8913b..cd5e054f351291ebc16d4c62cb2848fd3d04695c 100644
index 3c8e5db44c4174d5e876a8874fc702cc3233fc7b..31d45afae965efeb15b83d9f4259cc50abe987dd 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -4180,7 +4180,9 @@ bool Document::DispatchBeforeUnloadEvent(ChromeClient* chrome_client,
@@ -4181,7 +4181,9 @@ bool Document::DispatchBeforeUnloadEvent(ChromeClient* chrome_client,
"frame that never had a user gesture since its load. "
"https://www.chromestatus.com/feature/5082396709879808";
Intervention::GenerateReport(frame_, "BeforeUnloadNoGesture", message);

View file

@ -8,10 +8,10 @@ this but it is not a blocker for releasing Electron. This patch removes
the hard fail on dylib resolve failure from dump_syms
diff --git a/components/crash/content/tools/generate_breakpad_symbols.py b/components/crash/content/tools/generate_breakpad_symbols.py
index 41895d64685930bf26fff821c12c6704a070e8bc..130ee13f8d5ecfcb5a303f7cc05af261693acf78 100755
index dcf26b7200b3ceba1d17e8ea813f23b275e2d286..a367fa2bf31591c98dd4245d42a71cd9da82f2d9 100755
--- a/components/crash/content/tools/generate_breakpad_symbols.py
+++ b/components/crash/content/tools/generate_breakpad_symbols.py
@@ -188,7 +188,7 @@ def GetSharedLibraryDependenciesMac(binary, exe_path):
@@ -199,7 +199,7 @@ def GetSharedLibraryDependenciesMac(binary, exe_path):
'ERROR: failed to resolve %s, exe_path %s, loader_path %s, '
'rpaths %s' % (m.group(1), exe_path, loader_path,
', '.join(rpaths)))

View file

@ -7,10 +7,10 @@ Compilation of those files fails with the Chromium 68.
Remove the patch during the Chromium 69 upgrade.
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
index f72614d6e36ceac938721a0cae2e94928e79f866..725bc3a05554d6fbf9ce1c089058c73bb8ceff05 100644
index 854d6c6b9763cbec3a4dd74635726e2c0e7c6944..4fe9ee97104c2b021d00a661ff7dbb7fe9a6f681 100644
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1778,7 +1778,7 @@ jumbo_source_set("blink_platform_unittests_sources") {
@@ -1781,7 +1781,7 @@ jumbo_source_set("blink_platform_unittests_sources") {
"graphics/paint/drawing_display_item_test.cc",
"graphics/paint/drawing_recorder_test.cc",
"graphics/paint/float_clip_rect_test.cc",

View file

@ -33,10 +33,10 @@ index 0ccfe130f00ec3b6c75cd8ee04d5a2777e1fd00c..653829457d58bf92057cc36aa8a28970
DISALLOW_COPY_AND_ASSIGN(StaticHttpUserAgentSettings);
};
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
index 03d916c2355409557b1f754fc31eaea945409d13..e3bbad948821a57930b6dd529ebcb581091fab99 100644
index b9a8a12b8abb386fec548a26e4686af2e3822b8c..18af342553139669e485e5c34961de231f927f4c 100644
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -924,6 +924,13 @@ void NetworkContext::SetNetworkConditions(
@@ -928,6 +928,13 @@ void NetworkContext::SetNetworkConditions(
std::move(network_conditions));
}
@ -51,10 +51,10 @@ index 03d916c2355409557b1f754fc31eaea945409d13..e3bbad948821a57930b6dd529ebcb581
// This may only be called on NetworkContexts created with the constructor
// that calls MakeURLRequestContext().
diff --git a/services/network/network_context.h b/services/network/network_context.h
index 581196b6d4a0054bc213e4eada1a97a8e0453c5f..96fe00e951771ac0017ee4e60a545a9975153282 100644
index e98063a71435ee8828f3b5a21b569325965f7c58..dd34e65752d54b193965b7e7fea2cae324782204 100644
--- a/services/network/network_context.h
+++ b/services/network/network_context.h
@@ -219,6 +219,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -222,6 +222,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
void CloseIdleConnections(CloseIdleConnectionsCallback callback) override;
void SetNetworkConditions(const base::UnguessableToken& throttling_profile_id,
mojom::NetworkConditionsPtr conditions) override;
@ -63,10 +63,10 @@ index 581196b6d4a0054bc213e4eada1a97a8e0453c5f..96fe00e951771ac0017ee4e60a545a99
void SetEnableReferrers(bool enable_referrers) override;
#if defined(OS_CHROMEOS)
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
index d5986452c813579d96a90817b468922db5b5a91e..2104d5413a89a9345784040b761de296a595fb8b 100644
index 4691fde53fd7d6ff6e89c55a7fec88d77b39701c..33021fcda6d2cbe46225ba8cf56e137ee7ef9912 100644
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -886,6 +886,9 @@ interface NetworkContext {
@@ -912,6 +912,9 @@ interface NetworkContext {
SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id,
NetworkConditions? conditions);
@ -77,10 +77,10 @@ index d5986452c813579d96a90817b468922db5b5a91e..2104d5413a89a9345784040b761de296
SetAcceptLanguage(string new_accept_language);
diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h
index 34a8050d5900534663c285028eb42720a5bc8621..e5e361cd197d5080761d07a18f8af6727b395015 100644
index 4fe68bb40d8e009e9765ed884bbf898a10b86124..a84cf0a1b07751bbcad9b193a4a3a1683e0db80c 100644
--- a/services/network/test/test_network_context.h
+++ b/services/network/test/test_network_context.h
@@ -95,6 +95,7 @@ class TestNetworkContext : public mojom::NetworkContext {
@@ -98,6 +98,7 @@ class TestNetworkContext : public mojom::NetworkContext {
void CloseIdleConnections(CloseIdleConnectionsCallback callback) override {}
void SetNetworkConditions(const base::UnguessableToken& throttling_profile_id,
mojom::NetworkConditionsPtr conditions) override {}

View file

@ -13,7 +13,7 @@ uses internally for things like menus and devtools.
We can remove this patch once it has in some shape been upstreamed.
diff --git a/ui/native_theme/native_theme.cc b/ui/native_theme/native_theme.cc
index 929e339487b7d2b4407cff069944f7a2cc1266a4..4abf0933df57651f36dbb6a1652b2de534a82639 100644
index 5fd3bb3b60bda4449cc4743922758d62ee6decac..860b92c47f42d7517adb5e3370cc02d7e1c67b62 100644
--- a/ui/native_theme/native_theme.cc
+++ b/ui/native_theme/native_theme.cc
@@ -40,6 +40,8 @@ NativeTheme::NativeTheme()
@ -26,7 +26,7 @@ index 929e339487b7d2b4407cff069944f7a2cc1266a4..4abf0933df57651f36dbb6a1652b2de5
}
diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h
index 70389e0245993faa2c17e9deefeb000280ef2368..cef1c0d4706e7e720a4004ca54765a39fc29c5e8 100644
index ef45da79366c2e3ab242ec140989b407ac70dbb8..98ca8881b0b9f68a464e62f76589b29157126a86 100644
--- a/ui/native_theme/native_theme.h
+++ b/ui/native_theme/native_theme.h
@@ -429,6 +429,22 @@ class NATIVE_THEME_EXPORT NativeTheme {
@ -52,7 +52,7 @@ index 70389e0245993faa2c17e9deefeb000280ef2368..cef1c0d4706e7e720a4004ca54765a39
// Returns a shared instance of the native theme that should be used for web
// rendering. Do not use it in a normal application context (i.e. browser).
// The returned object should not be deleted by the caller. This function is
@@ -547,6 +563,8 @@ class NATIVE_THEME_EXPORT NativeTheme {
@@ -550,6 +566,8 @@ class NATIVE_THEME_EXPORT NativeTheme {
PreferredColorScheme preferred_color_scheme_ =
PreferredColorScheme::kNoPreference;

View file

@ -7,7 +7,7 @@ Fixes broken Linux ARM breakpad symbol generation by patching
out an `ldd`-related call that was throwing.
diff --git a/components/crash/content/tools/generate_breakpad_symbols.py b/components/crash/content/tools/generate_breakpad_symbols.py
index fe6d008b910942a59e31371ec08179b23a6fa0bb..c8736ae3c5e5a4bc78786aa8ab8e21b69a0d262b 100755
index 7ecc72117881fdfa64170d62f94627a7f6dda7ad..62c9dfaf7f4ac1bfaf6e453fad90bda66f682864 100755
--- a/components/crash/content/tools/generate_breakpad_symbols.py
+++ b/components/crash/content/tools/generate_breakpad_symbols.py
@@ -67,7 +67,8 @@ def GetSharedLibraryDependenciesLinux(binary, options):

View file

@ -1,58 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jeremy Apthorp <jeremya@chromium.org>
Date: Fri, 20 Sep 2019 22:56:34 +0000
Subject: fix windows build
Upstream: https://chromium-review.googlesource.com/c/chromium/src/+/1817205
diff --git a/content/browser/frame_host/back_forward_cache_impl.cc b/content/browser/frame_host/back_forward_cache_impl.cc
index cbd6bc1bf77519dd155b911e2a23d599814c37a4..ccf138a0ba2bf18acf6a0b3d4406acf0819cb134 100644
--- a/content/browser/frame_host/back_forward_cache_impl.cc
+++ b/content/browser/frame_host/back_forward_cache_impl.cc
@@ -253,8 +253,9 @@ void BackForwardCacheImpl::PostTaskToDestroyEvictedFrames() {
weak_factory_.GetWeakPtr()));
}
-void BackForwardCacheImpl::DisableForRenderFrameHost(GlobalFrameRoutingId id,
- std::string_view reason) {
+void BackForwardCacheImpl::DisableForRenderFrameHost(
+ GlobalFrameRoutingId id,
+ const std::string& reason) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
auto* rfh = RenderFrameHostImpl::FromID(id);
if (rfh)
diff --git a/content/browser/frame_host/back_forward_cache_impl.h b/content/browser/frame_host/back_forward_cache_impl.h
index e81ffc453710ee117bbc7080c3930ad6e1e5ff95..19f4b59c0efac6fc4b9306468b7160f99c4e3375 100644
--- a/content/browser/frame_host/back_forward_cache_impl.h
+++ b/content/browser/frame_host/back_forward_cache_impl.h
@@ -149,7 +149,7 @@ class CONTENT_EXPORT BackForwardCacheImpl : public BackForwardCache {
// BackForwardCache:
void DisableForRenderFrameHost(GlobalFrameRoutingId id,
- std::string_view reason) override;
+ const std::string& reason) override;
private:
// Destroys all evicted frames in the BackForwardCache.
diff --git a/content/public/browser/back_forward_cache.h b/content/public/browser/back_forward_cache.h
index f7abe8bec74130587b09d66b37f04a7d28ab3705..7e17c4afed0d265fb618dca5cc1bc12b28165ec4 100644
--- a/content/public/browser/back_forward_cache.h
+++ b/content/public/browser/back_forward_cache.h
@@ -5,8 +5,6 @@
#ifndef CONTENT_PUBLIC_BROWSER_BACK_FORWARD_CACHE_H_
#define CONTENT_PUBLIC_BROWSER_BACK_FORWARD_CACHE_H_
-#include <string_view>
-
#include "content/common/content_export.h"
#include "content/public/browser/global_routing_id.h"
@@ -43,7 +41,7 @@ class CONTENT_EXPORT BackForwardCache {
// |id|: If no RenderFrameHost can be found for the given id nothing happens.
// |reason|: Free form string to be used in logging and metrics.
virtual void DisableForRenderFrameHost(GlobalFrameRoutingId id,
- std::string_view reason) = 0;
+ const std::string& reason) = 0;
protected:
BackForwardCache() = default;

View file

@ -42,10 +42,10 @@ index 906a1ee4ac58b0744a32153bbaafeac4322a60e4..c90f4aead36cbf3767dc5094728963c2
// another SiteInstance for the same site.
void RegisterSiteInstance(SiteInstanceImpl* site_instance);
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
index 03079e389c51e620350087796f874c9369ebe98b..7cee9bb94a267fa4a0a6c474f46242660ec68a9c 100644
index b1be27659d80a3199242d43ec80ccd28a43059b1..f475ec2301011a0840e76dd0e8e40bf65fdf6106 100644
--- a/content/browser/frame_host/render_frame_host_manager.cc
+++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -2219,6 +2219,21 @@ bool RenderFrameHostManager::InitRenderView(
@@ -2250,6 +2250,21 @@ bool RenderFrameHostManager::InitRenderView(
scoped_refptr<SiteInstance>
RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
NavigationRequest* request) {
@ -67,7 +67,7 @@ index 03079e389c51e620350087796f874c9369ebe98b..7cee9bb94a267fa4a0a6c474f4624266
SiteInstance* current_site_instance = render_frame_host_->GetSiteInstance();
// All children of MHTML documents must be MHTML documents. They all live in
@@ -2262,6 +2277,59 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
@@ -2293,6 +2308,59 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
request->common_params().url);
no_renderer_swap_allowed |=
request->from_begin_navigation() && !can_renderer_initiate_transfer;
@ -127,7 +127,7 @@ index 03079e389c51e620350087796f874c9369ebe98b..7cee9bb94a267fa4a0a6c474f4624266
} else {
// Subframe navigations will use the current renderer, unless specifically
// allowed to swap processes.
@@ -2273,23 +2341,28 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
@@ -2304,23 +2372,28 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
if (no_renderer_swap_allowed && !should_swap_for_error_isolation)
return scoped_refptr<SiteInstance>(current_site_instance);
@ -159,7 +159,7 @@ index 03079e389c51e620350087796f874c9369ebe98b..7cee9bb94a267fa4a0a6c474f4624266
}
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
index d0d4e89f4190752fa00a575bb91842a72f4c0070..7b8d9af4005c6c7b7f4ebf0090d718fd276d012b 100644
index 2cee6bf52088a378a7c53343864d27aa78bdc106..4aca3c9724f8192a4f6e70e38473b408cadc6675 100644
--- a/content/browser/site_instance_impl.cc
+++ b/content/browser/site_instance_impl.cc
@@ -368,6 +368,10 @@ bool SiteInstanceImpl::HasRelatedSiteInstance(const GURL& url) {
@ -186,7 +186,7 @@ index 1edb9fd6b0c383f291735dd1a952fcb7b17cc87f..23967f040eb346be265faa2a92562e1f
size_t GetRelatedActiveContentsCount() override;
bool RequiresDedicatedProcess() override;
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index 8301dbc5f4f7c4186fa5f25de34885beec28c7c8..c7c2c69ae13702f32df34026f7cba2f362f047a3 100644
index da7eca5f443e2ecdcb3f0819848735aafeb43a00..ee14a76bf705c41082c78f7f0fcce968acf3a3b7 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -44,6 +44,21 @@
@ -212,7 +212,7 @@ index 8301dbc5f4f7c4186fa5f25de34885beec28c7c8..c7c2c69ae13702f32df34026f7cba2f3
const MainFunctionParams& parameters) {
return nullptr;
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 109d3166e85a28978bc0bf1f8f698537b1831699..185b0cfe917ca0ccbb5e20a984162a7f11704881 100644
index 07fa16953d6167a5a381b28a5da3c08a78de4306..fe6864b5ba4c77a6694510db2f1add479241b156 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -205,8 +205,45 @@ struct WebPreferences;

View file

@ -6,10 +6,10 @@ Subject: gritsettings_resource_ids.patch
Add electron resources file to the list of resource ids generation.
diff --git a/tools/gritsettings/resource_ids b/tools/gritsettings/resource_ids
index 8849b94cebc5bbdf62382833c9d51795bca882c0..8b64628d9dcbe78279d6a0596683d3880ea08892 100644
index be4d09028b1232594f90159fa11f67708a55afe8..9a3ae55c11a37ce00c19b63d882afd8c4548a6d9 100644
--- a/tools/gritsettings/resource_ids
+++ b/tools/gritsettings/resource_ids
@@ -448,6 +448,11 @@
@@ -457,6 +457,11 @@
"includes": [28880],
},

View file

@ -6,10 +6,10 @@ Subject: mas-cfisobjc.patch
Removes usage of the _CFIsObjC private API.
diff --git a/base/mac/foundation_util.mm b/base/mac/foundation_util.mm
index 8b20ebc678c39b722bd5b03930ce89847e8cc73a..dca8c939e757003aafc1528ec7bbb739bf971fa6 100644
index 2a83d4d8158422c1056725679309c6ced1e531bd..f52934712f8de78193127c426d02982b36e9d422 100644
--- a/base/mac/foundation_util.mm
+++ b/base/mac/foundation_util.mm
@@ -26,7 +26,6 @@
@@ -27,7 +27,6 @@
#if !defined(OS_IOS)
CFTypeID SecACLGetTypeID();
CFTypeID SecTrustedApplicationGetTypeID();
@ -17,7 +17,7 @@ index 8b20ebc678c39b722bd5b03930ce89847e8cc73a..dca8c939e757003aafc1528ec7bbb739
#endif
} // extern "C"
@@ -315,8 +314,7 @@ void SetBaseBundleID(const char* new_base_bundle_id) {
@@ -316,8 +315,7 @@ void SetBaseBundleID(const char* new_base_bundle_id) {
const_cast<NSFont*>(reinterpret_cast<const NSFont*>(cf_val));
DCHECK(!cf_val ||
CTFontGetTypeID() == CFGetTypeID(cf_val) ||
@ -27,7 +27,7 @@ index 8b20ebc678c39b722bd5b03930ce89847e8cc73a..dca8c939e757003aafc1528ec7bbb739
return ns_val;
}
@@ -384,9 +382,6 @@ CTFontRef NSToCFCast(NSFont* ns_val) {
@@ -385,9 +383,6 @@ CTFontRef NSToCFCast(NSFont* ns_val) {
return (CTFontRef)(cf_val);
}

View file

@ -6,7 +6,7 @@ Subject: mas-cgdisplayusesforcetogray.patch
Removes usage of the CGDisplayUsesForceToGray private API.
diff --git a/ui/display/mac/screen_mac.mm b/ui/display/mac/screen_mac.mm
index 170963e32063b82f789692652092501fb2b1bc48..4e0a2cb6991cafa96c1e2077f38ef315544890fc 100644
index 85545ec7eaa6494fe542ee14e6f3e29ffa7d693e..bf352f9a6f087c28b6ce207bd0e5c09753ffb9cf 100644
--- a/ui/display/mac/screen_mac.mm
+++ b/ui/display/mac/screen_mac.mm
@@ -108,7 +108,17 @@ Display BuildDisplayForScreen(NSScreen* screen) {

View file

@ -7,7 +7,7 @@ Guard usages in blink of private Mac APIs by MAS_BUILD, so they can be
excluded for people who want to submit their apps to the Mac App store.
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.h b/content/browser/accessibility/browser_accessibility_cocoa.h
index 743d1364bcd13e24ecbe5ced730161d15b8c3e93..a7e81072194c00baa0aa3159a6bfe374aaffa54f 100644
index 743d1364bcd13e24ecbe5ced730161d15b8c3e93..a5529ac8841b79f230f0fa8eae2b3cb226beb7d7 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.h
+++ b/content/browser/accessibility/browser_accessibility_cocoa.h
@@ -109,7 +109,9 @@ struct AXTextEdit {
@ -20,11 +20,23 @@ index 743d1364bcd13e24ecbe5ced730161d15b8c3e93..a7e81072194c00baa0aa3159a6bfe374
@property(nonatomic, readonly) NSNumber* expanded;
@property(nonatomic, readonly) NSNumber* focused;
@property(nonatomic, readonly) NSNumber* grabbed;
@@ -145,12 +147,16 @@ struct AXTextEdit {
@@ -120,7 +122,9 @@ struct AXTextEdit {
@property(nonatomic, readonly, getter=isIgnored) BOOL ignored;
// Index of a row, column, or tree item.
@property(nonatomic, readonly) NSNumber* index;
+#ifndef MAS_BUILD
@property(nonatomic, readonly) NSNumber* insertionPointLineNumber;
+#endif
@property(nonatomic, readonly) NSString* invalid;
@property(nonatomic, readonly) NSNumber* isMultiSelectable;
@property(nonatomic, readonly) NSString* placeholderValue;
@@ -143,14 +147,18 @@ struct AXTextEdit {
// The object is selected as a whole.
@property(nonatomic, readonly) NSNumber* selected;
@property(nonatomic, readonly) NSArray* selectedChildren;
+#ifndef MAS_BUILD
@property(nonatomic, readonly) NSString* selectedText;
@property(nonatomic, readonly) NSValue* selectedTextRange;
+#ifndef MAS_BUILD
@property(nonatomic, readonly) id selectedTextMarkerRange;
+#endif
@property(nonatomic, readonly) NSValue* size;
@ -38,10 +50,10 @@ index 743d1364bcd13e24ecbe5ced730161d15b8c3e93..a7e81072194c00baa0aa3159a6bfe374
// is concerned.
@property(nonatomic, readonly) NSString* subrole;
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468dab3a5ff 100644
index 5bdcea914780468d93b55b2e89dc3628a683f85c..0358f557432590ed48f9cd9be868742069dafc72 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -225,6 +225,7 @@
@@ -229,6 +229,7 @@
// VoiceOver uses -1 to mean "no limit" for AXResultsLimit.
const int kAXResultsLimitNoLimit = -1;
@ -49,7 +61,7 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
extern "C" {
// The following are private accessibility APIs required for cursor navigation
@@ -432,6 +433,7 @@ void AddMisspelledTextAttributes(const AXPlatformRange& ax_range,
@@ -468,6 +469,7 @@ void AddMisspelledTextAttributes(const AXPlatformRange& ax_range,
AddMisspelledTextAttributes(ax_range, attributed_text);
return attributed_text;
}
@ -57,7 +69,7 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
// Returns an autoreleased copy of the AXNodeData's attribute.
NSString* NSStringForStringAttribute(BrowserAccessibility* browserAccessibility,
@@ -699,7 +701,9 @@ + (void)initialize {
@@ -735,7 +737,9 @@ + (void)initialize {
{NSAccessibilityEditableAncestorAttribute, @"editableAncestor"},
{NSAccessibilityElementBusyAttribute, @"elementBusy"},
{NSAccessibilityEnabledAttribute, @"enabled"},
@ -67,7 +79,18 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
{NSAccessibilityExpandedAttribute, @"expanded"},
{NSAccessibilityFocusableAncestorAttribute, @"focusableAncestor"},
{NSAccessibilityFocusedAttribute, @"focused"},
@@ -734,13 +738,17 @@ + (void)initialize {
@@ -747,8 +751,10 @@ + (void)initialize {
{NSAccessibilityHighestEditableAncestorAttribute,
@"highestEditableAncestor"},
{NSAccessibilityIndexAttribute, @"index"},
+#ifndef MAS_BUILD
{NSAccessibilityInsertionPointLineNumberAttribute,
@"insertionPointLineNumber"},
+#endif
{NSAccessibilityInvalidAttribute, @"invalid"},
{NSAccessibilityIsMultiSelectableAttribute, @"isMultiSelectable"},
{NSAccessibilityLanguageAttribute, @"language"},
@@ -770,13 +776,17 @@ + (void)initialize {
{NSAccessibilityRowsAttribute, @"rows"},
// TODO(aboxhall): expose
// NSAccessibilityServesAsTitleForUIElementsAttribute
@ -76,16 +99,16 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
+#endif
{NSAccessibilitySelectedAttribute, @"selected"},
{NSAccessibilitySelectedChildrenAttribute, @"selectedChildren"},
+#ifndef MAS_BUILD
{NSAccessibilitySelectedTextAttribute, @"selectedText"},
{NSAccessibilitySelectedTextRangeAttribute, @"selectedTextRange"},
+#ifndef MAS_BUILD
{NSAccessibilitySelectedTextMarkerRangeAttribute,
@"selectedTextMarkerRange"},
+#endif
{NSAccessibilitySizeAttribute, @"size"},
{NSAccessibilitySortDirectionAttribute, @"sortDirection"},
{NSAccessibilitySubroleAttribute, @"subrole"},
@@ -1238,6 +1246,7 @@ - (NSNumber*)enabled {
@@ -1272,6 +1282,7 @@ - (NSNumber*)enabled {
ax::mojom::Restriction::kDisabled];
}
@ -93,7 +116,7 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
// Returns a text marker that points to the last character in the document that
// can be selected with VoiceOver.
- (id)endTextMarker {
@@ -1248,6 +1257,7 @@ - (id)endTextMarker {
@@ -1282,6 +1293,7 @@ - (id)endTextMarker {
BrowserAccessibilityPositionInstance position = root->CreatePositionAt(0);
return CreateTextMarker(position->CreatePositionAtEndOfAnchor());
}
@ -101,23 +124,62 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
- (NSNumber*)expanded {
if (![self instanceActive])
@@ -2122,6 +2132,7 @@ - (NSValue*)selectedTextRange {
@@ -1427,6 +1439,8 @@ - (NSNumber*)index {
return nil;
}
+
+#ifndef MAS_BUILD
- (NSNumber*)insertionPointLineNumber {
if (![self instanceActive])
return nil;
@@ -1449,6 +1463,7 @@ - (NSNumber*)insertionPointLineNumber {
caretPosition->AsTextPosition()->text_offset());
return @(std::distance(lineBreaks.begin(), iterator));
}
+#endif
// Returns whether or not this node should be ignored in the
// accessibility tree.
@@ -2134,6 +2149,7 @@ - (NSArray*)selectedChildren {
return ret;
}
+#ifndef MAS_BUILD
- (NSString*)selectedText {
if (![self instanceActive])
return nil;
@@ -2145,11 +2161,13 @@ - (NSString*)selectedText {
return nil;
return base::SysUTF16ToNSString(range.GetText());
}
+#endif
// Returns range of text under the current object that is selected.
//
// Example, caret at offset 5:
// NSRange: “pos=5 len=0”
+#ifndef MAS_BUILD
- (NSValue*)selectedTextRange {
if (![self instanceActive])
return nil;
@@ -2170,12 +2188,15 @@ - (NSValue*)selectedTextRange {
int selLength = range.GetText().length();
return [NSValue valueWithRange:NSMakeRange(selStart, selLength)];
}
+#endif
+#ifndef MAS_BUILD
- (id)selectedTextMarkerRange {
if (![self instanceActive])
return nil;
@@ -2157,6 +2168,7 @@ - (id)selectedTextMarkerRange {
CreateAXPlatformRange(*anchorObject, anchorOffset, anchorAffinity,
*focusObject, focusOffset, focusAffinity));
return CreateTextMarkerRange(GetSelectedRange(*owner_));
}
+#endif
- (NSValue*)size {
if (![self instanceActive])
@@ -2189,6 +2201,7 @@ - (NSString*)sortDirection {
@@ -2208,6 +2229,7 @@ - (NSString*)sortDirection {
return nil;
}
@ -125,7 +187,7 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
// Returns a text marker that points to the first character in the document that
// can be selected with VoiceOver.
- (id)startTextMarker {
@@ -2199,6 +2212,7 @@ - (id)startTextMarker {
@@ -2218,6 +2240,7 @@ - (id)startTextMarker {
BrowserAccessibilityPositionInstance position = root->CreatePositionAt(0);
return CreateTextMarker(position->CreatePositionAtStartOfAnchor());
}
@ -133,7 +195,7 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
// Returns a subrole based upon the role.
- (NSString*)subrole {
@@ -2490,11 +2504,13 @@ - (NSAttributedString*)attributedValueForRange:(NSRange)range {
@@ -2509,11 +2532,13 @@ - (NSAttributedString*)attributedValueForRange:(NSRange)range {
NSMutableAttributedString* attributedValue =
[[[NSMutableAttributedString alloc] initWithString:value] autorelease];
@ -147,7 +209,7 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
return [attributedValue attributedSubstringFromRange:range];
}
@@ -2577,9 +2593,8 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
@@ -2616,9 +2641,8 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
return ToBrowserAccessibilityCocoa(cell);
}
@ -159,7 +221,7 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
BrowserAccessibilityPositionInstance position =
CreatePositionFromTextMarker(parameter);
if (!position->IsNullPosition())
@@ -2869,6 +2884,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
@@ -2929,6 +2953,7 @@ AXPlatformRange range(std::move(lineStartPosition),
return CreateTextMarker(root->CreatePositionAt(index));
}
@ -167,7 +229,7 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
if ([attribute isEqualToString:
NSAccessibilityBoundsForRangeParameterizedAttribute]) {
@@ -2902,6 +2918,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
@@ -2962,6 +2987,7 @@ AXPlatformRange range(std::move(lineStartPosition),
return nil;
}
@ -175,7 +237,7 @@ index ae504a5cf56876318ee395af3def53bb5776a43a..4552a30f321fa91a61bbad8e81845468
if ([attribute
isEqualToString:
NSAccessibilityLineTextMarkerRangeForTextMarkerParameterizedAttribute]) {
@@ -2982,6 +2999,7 @@ AXPlatformRange range(position->CreatePreviousLineStartPosition(
@@ -3042,6 +3068,7 @@ AXPlatformRange range(position->CreatePreviousLineStartPosition(
return @(child->GetIndexInParent());
}
@ -280,10 +342,10 @@ index 8e4a469b6f0675dc7b82543d5758f0c2ec226809..2fcfb6edb5f57bd25756257b77361d25
void BluetoothAdapterMac::RemovePairingDelegateInternal(
diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn
index b27ebeea53b9762ff1cfa1c2dbcec4e8e689069c..1a5d380fa6a425e90e2a07820019bb797ca0ffb3 100644
index de4f3ceb0fb01bb924c19a576fc201a14a6470cd..10ca4b247e170cb9d17a1a3c6ecac2efbffb6a5d 100644
--- a/media/audio/BUILD.gn
+++ b/media/audio/BUILD.gn
@@ -180,6 +180,12 @@ source_set("audio") {
@@ -191,6 +191,12 @@ source_set("audio") {
"mac/scoped_audio_unit.cc",
"mac/scoped_audio_unit.h",
]

View file

@ -5,7 +5,7 @@ Subject: network_service_allow_remote_certificate_verification_logic.patch
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
index dad53e4c3cc4d1537664c4423810f69a9e4dd591..03d916c2355409557b1f754fc31eaea945409d13 100644
index 647fd0d633e868c5f06bbb97f03333e863075f06..b9a8a12b8abb386fec548a26e4686af2e3822b8c 100644
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -90,6 +90,11 @@
@ -20,7 +20,7 @@ index dad53e4c3cc4d1537664c4423810f69a9e4dd591..03d916c2355409557b1f754fc31eaea9
#if BUILDFLAG(IS_CT_SUPPORTED)
#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
#include "components/certificate_transparency/chrome_require_ct_delegate.h"
@@ -318,6 +323,79 @@ std::string HashesToBase64String(const net::HashValueVector& hashes) {
@@ -319,6 +324,79 @@ std::string HashesToBase64String(const net::HashValueVector& hashes) {
} // namespace
@ -100,7 +100,7 @@ index dad53e4c3cc4d1537664c4423810f69a9e4dd591..03d916c2355409557b1f754fc31eaea9
constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess;
NetworkContext::PendingCertVerify::PendingCertVerify() = default;
@@ -473,6 +551,13 @@ void NetworkContext::SetClient(
@@ -474,6 +552,13 @@ void NetworkContext::SetClient(
client_.Bind(std::move(client));
}
@ -114,7 +114,7 @@ index dad53e4c3cc4d1537664c4423810f69a9e4dd591..03d916c2355409557b1f754fc31eaea9
void NetworkContext::CreateURLLoaderFactory(
mojom::URLLoaderFactoryRequest request,
mojom::URLLoaderFactoryParamsPtr params) {
@@ -1548,12 +1633,19 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext() {
@@ -1552,12 +1637,19 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext() {
net::SystemTrustStoreProvider::CreateDefaultForSSL())));
}
#endif
@ -139,10 +139,10 @@ index dad53e4c3cc4d1537664c4423810f69a9e4dd591..03d916c2355409557b1f754fc31eaea9
std::unique_ptr<NetworkServiceNetworkDelegate> network_delegate =
std::make_unique<NetworkServiceNetworkDelegate>(
diff --git a/services/network/network_context.h b/services/network/network_context.h
index 21dd391b7330c362e3795fddc2943ed6832d0383..581196b6d4a0054bc213e4eada1a97a8e0453c5f 100644
index 98c968120b4ccedcdf321a365db038954095ae7a..e98063a71435ee8828f3b5a21b569325965f7c58 100644
--- a/services/network/network_context.h
+++ b/services/network/network_context.h
@@ -80,6 +80,7 @@ class DomainReliabilityMonitor;
@@ -81,6 +81,7 @@ class DomainReliabilityMonitor;
namespace network {
class CertVerifierWithTrustAnchors;
@ -150,7 +150,7 @@ index 21dd391b7330c362e3795fddc2943ed6832d0383..581196b6d4a0054bc213e4eada1a97a8
class CookieManager;
class ExpectCTReporter;
class HostResolver;
@@ -169,6 +170,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -170,6 +171,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
// mojom::NetworkContext implementation:
void SetClient(
mojo::PendingRemote<mojom::NetworkContextClient> client) override;
@ -159,7 +159,7 @@ index 21dd391b7330c362e3795fddc2943ed6832d0383..581196b6d4a0054bc213e4eada1a97a8
void CreateURLLoaderFactory(mojom::URLLoaderFactoryRequest request,
mojom::URLLoaderFactoryParamsPtr params) override;
void ResetURLLoaderFactories() override;
@@ -560,6 +563,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -564,6 +567,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
std::unique_ptr<network::NSSTempCertsCacheChromeOS> nss_temp_certs_cache_;
#endif
@ -169,10 +169,10 @@ index 21dd391b7330c362e3795fddc2943ed6832d0383..581196b6d4a0054bc213e4eada1a97a8
// CertNetFetcher is not used by the current platform.
scoped_refptr<net::CertNetFetcherImpl> cert_net_fetcher_;
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
index 83a32d8b533d64b5ff65626d434e5ff731992642..d5986452c813579d96a90817b468922db5b5a91e 100644
index 322670fb32403266f25c9f49079a25ef90dc01e2..4691fde53fd7d6ff6e89c55a7fec88d77b39701c 100644
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -165,6 +165,17 @@ interface TrustedURLLoaderHeaderClient {
@@ -168,6 +168,17 @@ interface TrustedURLLoaderHeaderClient {
pending_receiver<TrustedHeaderClient> header_client);
};
@ -190,7 +190,7 @@ index 83a32d8b533d64b5ff65626d434e5ff731992642..d5986452c813579d96a90817b468922d
// Parameters for constructing a network context.
struct NetworkContextParams {
// Name used by memory tools to identify the context.
@@ -724,6 +735,9 @@ interface NetworkContext {
@@ -740,6 +751,9 @@ interface NetworkContext {
// Sets a client for this network context.
SetClient(pending_remote<NetworkContextClient> client);

View file

@ -68,7 +68,7 @@ index ce997528ce2973b54dbbf965220cc30bcb19a094..e84b0b62d853b044e590a0c764f1b21a
notification_service_remote_.BindNewPipeAndPassReceiver());
diff --git a/content/browser/notifications/platform_notification_context_impl.cc b/content/browser/notifications/platform_notification_context_impl.cc
index 93ae69a720d4d24b5fd11508a9f6ec3c17f559d5..93768924cf442ef4cb36addfe279852b9c0dd444 100644
index 2a447b73d763b7c91359f1b4550a002ff9e5e715..bd434393cf35605a8cc05d6fb96215cf76b5417a 100644
--- a/content/browser/notifications/platform_notification_context_impl.cc
+++ b/content/browser/notifications/platform_notification_context_impl.cc
@@ -207,12 +207,13 @@ void PlatformNotificationContextImpl::Shutdown() {
@ -108,10 +108,10 @@ index 4bf25bf1fa69f7d3869369172d375e2e489e62a1..f80ef2cecc8b111dc54e109646573a59
mojo::PendingReceiver<blink::mojom::NotificationService> receiver);
diff --git a/content/browser/renderer_interface_binders.cc b/content/browser/renderer_interface_binders.cc
index cf4be3849726b3beb1dd47b8c44f7524e7ee2014..14e7551d62688dc59a24eb67a29f7ab05eb44527 100644
index 8030fd5e66fab694d3f3a54dcb4688c14dcba473..18f259bdd9b5340a50494311983646d9b9244469 100644
--- a/content/browser/renderer_interface_binders.cc
+++ b/content/browser/renderer_interface_binders.cc
@@ -231,7 +231,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
@@ -135,7 +135,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
RenderProcessHost* host, const url::Origin& origin) {
static_cast<StoragePartitionImpl*>(host->GetStoragePartition())
->GetPlatformNotificationContext()

View file

@ -5,10 +5,10 @@ Subject: out_of_process_instance.patch
diff --git a/pdf/out_of_process_instance.cc b/pdf/out_of_process_instance.cc
index 3d8c99deca6997f08103e4d48361abcb9b829ba4..2afdec5fef22f3aa37633bd09321141f3cc5708f 100644
index a3786a8397536bdcb247c6a0a0ea6db4b174eae8..ab7f2276f4254d1d4cd608fa9815345185737665 100644
--- a/pdf/out_of_process_instance.cc
+++ b/pdf/out_of_process_instance.cc
@@ -478,7 +478,9 @@ bool OutOfProcessInstance::Init(uint32_t argc,
@@ -479,7 +479,9 @@ bool OutOfProcessInstance::Init(uint32_t argc,
std::string document_url = document_url_var.AsString();
base::StringPiece document_url_piece(document_url);
is_print_preview_ = IsPrintPreviewUrl(document_url_piece);

View file

@ -393,7 +393,7 @@ index f9f5d1c07e4068d0706770ca81bd92ce166c3822..9f0e079b941296fa27b8cf0a66abfa45
// Like PrintMsg_PrintPages, but using the print preview document's frame/node.
IPC_MESSAGE_ROUTED0(PrintMsg_PrintForSystemDialog)
diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc
index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520c6dd4e16 100644
index 27cf579e4ca10661c34c130097783f02e13f3521..e8f1b610fb8fa700ac3de9df268a7b6a4b449850 100644
--- a/components/printing/renderer/print_render_frame_helper.cc
+++ b/components/printing/renderer/print_render_frame_helper.cc
@@ -38,6 +38,7 @@
@ -404,7 +404,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
#include "printing/units.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
#include "third_party/blink/public/common/frame/frame_owner_element_type.h"
@@ -1153,7 +1154,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) {
@@ -1149,7 +1150,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) {
web_frame->DispatchBeforePrintEvent();
if (!weak_this)
return;
@ -414,7 +414,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
if (weak_this)
web_frame->DispatchAfterPrintEvent();
}
@@ -1228,7 +1230,9 @@ void PrintRenderFrameHelper::InitiatePrintPreview(
@@ -1224,7 +1226,9 @@ void PrintRenderFrameHelper::InitiatePrintPreview(
#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
}
@ -425,7 +425,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
if (ipc_nesting_level_ > 1)
return;
@@ -1241,7 +1245,8 @@ void PrintRenderFrameHelper::OnPrintPages() {
@@ -1237,7 +1241,8 @@ void PrintRenderFrameHelper::OnPrintPages() {
// If we are printing a PDF extension frame, find the plugin node and print
// that instead.
auto plugin = delegate_->GetPdfElement(frame);
@ -435,7 +435,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
if (weak_this)
frame->DispatchAfterPrintEvent();
// WARNING: |this| may be gone at this point. Do not do any more work here and
@@ -1258,7 +1263,7 @@ void PrintRenderFrameHelper::OnPrintForSystemDialog() {
@@ -1254,7 +1259,7 @@ void PrintRenderFrameHelper::OnPrintForSystemDialog() {
}
auto weak_this = weak_ptr_factory_.GetWeakPtr();
Print(frame, print_preview_context_.source_node(),
@ -444,7 +444,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
if (weak_this)
frame->DispatchAfterPrintEvent();
// WARNING: |this| may be gone at this point. Do not do any more work here and
@@ -1293,6 +1298,8 @@ void PrintRenderFrameHelper::OnPrintPreview(
@@ -1289,6 +1294,8 @@ void PrintRenderFrameHelper::OnPrintPreview(
if (ipc_nesting_level_ > 1)
return;
@ -453,7 +453,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
print_preview_context_.OnPrintPreview();
UMA_HISTOGRAM_ENUMERATION("PrintPreview.PreviewEvent",
@@ -1666,7 +1673,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
@@ -1662,7 +1669,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
auto self = weak_ptr_factory_.GetWeakPtr();
Print(duplicate_node.GetDocument().GetFrame(), duplicate_node,
@ -464,7 +464,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
// Check if |this| is still valid.
if (!self)
return;
@@ -1677,7 +1686,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
@@ -1673,7 +1682,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
const blink::WebNode& node,
@ -475,7 +475,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
// If still not finished with earlier print request simply ignore.
if (prep_frame_view_)
return;
@@ -1685,7 +1696,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
@@ -1681,7 +1692,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
FrameReference frame_ref(frame);
int expected_page_count = 0;
@ -484,7 +484,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
DidFinishPrinting(FAIL_PRINT_INIT);
return; // Failed to init print page settings.
}
@@ -1705,8 +1716,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
@@ -1701,8 +1712,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
PrintMsg_PrintPages_Params print_settings;
auto self = weak_ptr_factory_.GetWeakPtr();
@ -498,7 +498,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
// Check if |this| is still valid.
if (!self)
return;
@@ -1930,10 +1944,23 @@ void PrintRenderFrameHelper::IPCProcessed() {
@@ -1926,10 +1940,23 @@ void PrintRenderFrameHelper::IPCProcessed() {
base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this);
}
@ -525,7 +525,7 @@ index 97fb26be0325ef5e44757a1c016d57baadfcd3fb..eaa9712632c30abe3df596678c540520
// Check if the printer returned any settings, if the settings is empty, we
// can safely assume there are no printer drivers configured. So we safely
// terminate.
@@ -1953,12 +1980,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) {
@@ -1949,12 +1976,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) {
return result;
}

View file

@ -8,7 +8,7 @@ needed in chromium but our autofill implementation uses them. This patch can be
our autofill implementation to work like Chromium's.
diff --git a/chrome/browser/ui/libgtkui/native_theme_gtk.cc b/chrome/browser/ui/libgtkui/native_theme_gtk.cc
index 80542c2cab345f991079453b66f58439d0f214eb..d460eb8d2432df1209412a28cecc22f2db9af99b 100644
index b77b8a53b0246b05e3c45e74eaf2b5c44c6dad88..7af171f6cd5d76e87e2fca32f5dbcc34d7e0a974 100644
--- a/chrome/browser/ui/libgtkui/native_theme_gtk.cc
+++ b/chrome/browser/ui/libgtkui/native_theme_gtk.cc
@@ -279,6 +279,27 @@ SkColor SkColorFromColorId(ui::NativeTheme::ColorId color_id) {
@ -78,7 +78,7 @@ index 7fd49a2e26968daaa16ed3322b516f53ff60fb56..f902910ecc8e5b4945187e836655362e
case NativeTheme::kColorId_ThrobberSpinningColor:
return gfx::kGoogleBlue600;
diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h
index 3604105e43ee1866a8517c52ed05205b3ed10b56..70389e0245993faa2c17e9deefeb000280ef2368 100644
index c1d4ad9a27d895af32fd0311a640e2f62a30635a..ef45da79366c2e3ab242ec140989b407ac70dbb8 100644
--- a/ui/native_theme/native_theme.h
+++ b/ui/native_theme/native_theme.h
@@ -389,6 +389,11 @@ class NATIVE_THEME_EXPORT NativeTheme {

View file

@ -5,7 +5,7 @@ Subject: render_widget_host_view_base.patch
diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc
index dbfcd1da5c853a396b6a44c1a2968cc317d10125..3dc776ac982fdd5d4d15bd3afdf208810340db4e 100644
index 50aad3c8d627ab4e65c1438266c2c1c68113dccf..4a708fdfacfb8fcc2ad07d5f10b475e2169b62ee 100644
--- a/content/browser/renderer_host/render_widget_host_view_base.cc
+++ b/content/browser/renderer_host/render_widget_host_view_base.cc
@@ -631,6 +631,15 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor(
@ -25,7 +25,7 @@ index dbfcd1da5c853a396b6a44c1a2968cc317d10125..3dc776ac982fdd5d4d15bd3afdf20881
const blink::WebMouseEvent& event,
const ui::LatencyInfo& latency) {
diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h
index 2bd5d56bc37daa97e32cb2be20f9d1b49abd91a2..77674ba193fa3fee3ff0dc5c83cc36c50fbcba68 100644
index add7df1a4432d8a6e4ebec892ab2708ba6650af5..d681d70e8ca9b2c228295336484d9b68240ce26b 100644
--- a/content/browser/renderer_host/render_widget_host_view_base.h
+++ b/content/browser/renderer_host/render_widget_host_view_base.h
@@ -24,9 +24,11 @@
@ -40,7 +40,7 @@ index 2bd5d56bc37daa97e32cb2be20f9d1b49abd91a2..77674ba193fa3fee3ff0dc5c83cc36c5
#include "content/public/browser/render_widget_host_view.h"
#include "content/public/common/input_event_ack_state.h"
#include "content/public/common/screen_info.h"
@@ -71,9 +73,11 @@ class CursorManager;
@@ -72,9 +74,11 @@ class CursorManager;
class MouseWheelPhaseHandler;
class RenderWidgetHostImpl;
class RenderWidgetHostViewBaseObserver;
@ -52,7 +52,7 @@ index 2bd5d56bc37daa97e32cb2be20f9d1b49abd91a2..77674ba193fa3fee3ff0dc5c83cc36c5
class WebCursor;
class DelegatedFrameHost;
struct TextInputState;
@@ -132,6 +136,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -133,6 +137,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
bool destination_is_loaded,
bool destination_is_frozen) final;
@ -62,7 +62,7 @@ index 2bd5d56bc37daa97e32cb2be20f9d1b49abd91a2..77674ba193fa3fee3ff0dc5c83cc36c5
// This only needs to be overridden by RenderWidgetHostViewBase subclasses
// that handle content embedded within other RenderWidgetHostViews.
gfx::PointF TransformPointToRootCoordSpaceF(
@@ -349,6 +356,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -350,6 +357,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
virtual void ProcessGestureEvent(const blink::WebGestureEvent& event,
const ui::LatencyInfo& latency);

View file

@ -52,7 +52,7 @@ Some alternatives to this patch:
None of these options seems like a substantial maintainability win over this patch to me (@nornagon).
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index 03dcf65c25ddeb6ae6074435f37b24b4b54cfc57..0e33dfbadf723b9a578c79725ad535ad24820db7 100644
index 92fe7cd1cc2181277c4c49ee978762d1b32c8116..858d53eb3f7e5b358860e5ea3b15612e4015b1ed 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -1599,7 +1599,7 @@ if (is_chrome_branded && !is_android) {

View file

@ -280,7 +280,7 @@ index 3cc9d686da8f64ddc8bdc66df40b1866bdd20607..dfacbdd4a55b5f5aa4d8c67136c607f7
const gfx::VectorIcon* minor_icon = nullptr;
gfx::Image icon;
diff --git a/ui/views/controls/menu/menu_item_view.cc b/ui/views/controls/menu/menu_item_view.cc
index 729e5ec0b3df05ac96460498612d3fa6742de61a..cfcb44804073da550b77878b0ca216cd3d46da95 100644
index 0fcca1e59688eda967c59397ea932637810af27b..35e7e3dc8f18fffa1713d6821c2bef87bdfce181 100644
--- a/ui/views/controls/menu/menu_item_view.cc
+++ b/ui/views/controls/menu/menu_item_view.cc
@@ -277,6 +277,7 @@ MenuItemView* MenuItemView::AddMenuItemAt(
@ -395,7 +395,7 @@ index 729e5ec0b3df05ac96460498612d3fa6742de61a..cfcb44804073da550b77878b0ca216cd
+ : available_height / 2);
text_bounds.set_x(GetMirroredXForRect(text_bounds));
int flags = GetDrawStringFlags();
if (mode == PB_FOR_DRAG)
if (mode == PaintButtonMode::kForDrag)
flags |= gfx::Canvas::NO_SUBPIXEL_RENDERING;
canvas->DrawStringRectWithFlags(title(), style.font_list, style.foreground,
text_bounds, flags);
@ -437,7 +437,7 @@ index 729e5ec0b3df05ac96460498612d3fa6742de61a..cfcb44804073da550b77878b0ca216cd
std::max(dimensions.height, MenuConfig::instance().item_min_height);
diff --git a/ui/views/controls/menu/menu_item_view.h b/ui/views/controls/menu/menu_item_view.h
index 0e97c35a8a452e8c602f08e2f2b72fc71becfa4b..332b11faae5eb05291dfd268f1b951a134b559c4 100644
index e129bed9de80df5a6aeaca8e22e7d12a949ab759..d7cfa2a5d93af7b865ab01f2cc004c4215fc9986 100644
--- a/ui/views/controls/menu/menu_item_view.h
+++ b/ui/views/controls/menu/menu_item_view.h
@@ -151,6 +151,7 @@ class VIEWS_EXPORT MenuItemView : public View {

View file

@ -6,10 +6,10 @@ Subject: scroll_bounce_flag.patch
Patch to make scrollBounce option work.
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 6e789503d67890f74d66fead6a1dbe97be50466e..7003db227bfc03521fb7a74953604f48c31838b8 100644
index 81aceae802b32bc21f639996cb197e62cf52af1d..8bd95d5053f7911074041a62581097c8eb2322aa 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -1517,7 +1517,7 @@ bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() {
@@ -1523,7 +1523,7 @@ bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() {
}
bool RenderThreadImpl::IsElasticOverscrollEnabled() {

View file

@ -6,10 +6,10 @@ Subject: ssl_security_state_tab_helper.patch
Allows populating security tab info for devtools in Electron.
diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ssl/security_state_tab_helper.cc
index 887cdd11fbbd9df44edef1548a89891c5cf23cee..12da72449622289ec467d284f616bbf937ff1865 100644
index e971e3506864865d1b05218d42fa5d54a72cc742..a1aa2036c405dbbc310b12ac6c956579cf1aa1d9 100644
--- a/chrome/browser/ssl/security_state_tab_helper.cc
+++ b/chrome/browser/ssl/security_state_tab_helper.cc
@@ -13,16 +13,20 @@
@@ -13,21 +13,25 @@
#include "base/strings/pattern.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
@ -20,17 +20,23 @@ index 887cdd11fbbd9df44edef1548a89891c5cf23cee..12da72449622289ec467d284f616bbf9
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
#include "chrome/browser/safe_browsing/ui_manager.h"
+#endif
#include "chrome/browser/ssl/tls_deprecation_config.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/secure_origin_whitelist.h"
+#if 0
#include "components/omnibox/browser/omnibox_field_trial.h"
#include "components/omnibox/common/omnibox_features.h"
#include "components/password_manager/core/browser/password_manager_metrics_util.h"
-#include "components/prefs/pref_service.h"
#include "components/safe_browsing/buildflags.h"
+#endif
+#include "components/prefs/pref_service.h"
#include "components/security_state/content/content_utils.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/navigation_entry.h"
@@ -44,7 +48,7 @@
@@ -50,7 +54,7 @@
#include "chrome/browser/chromeos/policy/policy_cert_service_factory.h"
#endif // defined(OS_CHROMEOS)
@ -39,7 +45,23 @@ index 887cdd11fbbd9df44edef1548a89891c5cf23cee..12da72449622289ec467d284f616bbf9
#include "chrome/browser/safe_browsing/chrome_password_protection_service.h"
#endif
@@ -66,8 +70,9 @@ void RecordSecurityLevel(
@@ -94,9 +98,12 @@ bool IsLegacyTLS(GURL url, int connection_status) {
// default we treat TLS < 1.2 as Legacy, unless the "SSLVersionMin" policy is
// set.
std::string ssl_version_min_str = switches::kSSLVersionTLSv12;
- PrefService* local_state = g_browser_process->local_state();
- if (local_state && local_state->HasPrefPath(prefs::kSSLVersionMin)) {
- ssl_version_min_str = local_state->GetString(prefs::kSSLVersionMin);
+
+ // Read directly from the command line, since our pref store is not the same
+ // as Chrome's.
+ auto* cmd_line = base::CommandLine::ForCurrentProcess();
+ if (cmd_line->HasSwitch(::switches::kSSLVersionMin)) {
+ ssl_version_min_str = cmd_line->GetSwitchValueASCII(::switches::kSSLVersionMin);
}
// Convert the pref string to an SSLVersion, if it is valid. Otherwise use the
@@ -113,8 +120,9 @@ bool IsLegacyTLS(GURL url, int connection_status) {
} // namespace
@ -50,7 +72,7 @@ index 887cdd11fbbd9df44edef1548a89891c5cf23cee..12da72449622289ec467d284f616bbf9
SecurityStateTabHelper::SecurityStateTabHelper(
content::WebContents* web_contents)
@@ -89,6 +94,7 @@ SecurityStateTabHelper::GetVisibleSecurityState() const {
@@ -145,6 +153,7 @@ SecurityStateTabHelper::GetVisibleSecurityState() const {
// information is still being initialized, thus no need to check for that.
state->malicious_content_status = GetMaliciousContentStatus();
@ -58,7 +80,7 @@ index 887cdd11fbbd9df44edef1548a89891c5cf23cee..12da72449622289ec467d284f616bbf9
safety_tips::ReputationWebContentsObserver* reputation_web_contents_observer =
safety_tips::ReputationWebContentsObserver::FromWebContents(
web_contents());
@@ -97,6 +103,7 @@ SecurityStateTabHelper::GetVisibleSecurityState() const {
@@ -153,6 +162,7 @@ SecurityStateTabHelper::GetVisibleSecurityState() const {
? reputation_web_contents_observer
->GetSafetyTipStatusForVisibleNavigation()
: security_state::SafetyTipStatus::kUnknown;
@ -66,7 +88,7 @@ index 887cdd11fbbd9df44edef1548a89891c5cf23cee..12da72449622289ec467d284f616bbf9
return state;
}
@@ -164,6 +171,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
@@ -220,6 +230,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
web_contents()->GetController().GetVisibleEntry();
if (!entry)
return security_state::MALICIOUS_CONTENT_STATUS_NONE;
@ -74,7 +96,7 @@ index 887cdd11fbbd9df44edef1548a89891c5cf23cee..12da72449622289ec467d284f616bbf9
safe_browsing::SafeBrowsingService* sb_service =
g_browser_process->safe_browsing_service();
if (!sb_service)
@@ -242,6 +250,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
@@ -298,6 +309,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
break;
}
}

View file

@ -22,10 +22,10 @@ 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 65b6d31f5438c1f97fccef4dd3c71ed125a15d5c..b14ed42882fb7feffdb1c481f8d02007d38f134c 100644
index 3e85adafd4e5173d5ea9680a28e41fd8f4efbdfd..0408a35db18ecdcad1521e4123aed4bd12bcf2c8 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -392,6 +392,11 @@ class RendererSandboxedProcessLauncherDelegate
@@ -400,6 +400,11 @@ class RendererSandboxedProcessLauncherDelegate
{
}
@ -37,7 +37,7 @@ index 65b6d31f5438c1f97fccef4dd3c71ed125a15d5c..b14ed42882fb7feffdb1c481f8d02007
~RendererSandboxedProcessLauncherDelegate() override {}
#if defined(OS_WIN)
@@ -413,6 +418,9 @@ class RendererSandboxedProcessLauncherDelegate
@@ -421,6 +426,9 @@ class RendererSandboxedProcessLauncherDelegate
#if BUILDFLAG(USE_ZYGOTE_HANDLE)
service_manager::ZygoteHandle GetZygote() override {
@ -47,7 +47,7 @@ index 65b6d31f5438c1f97fccef4dd3c71ed125a15d5c..b14ed42882fb7feffdb1c481f8d02007
const base::CommandLine& browser_command_line =
*base::CommandLine::ForCurrentProcess();
base::CommandLine::StringType renderer_prefix =
@@ -427,10 +435,13 @@ class RendererSandboxedProcessLauncherDelegate
@@ -435,10 +443,13 @@ class RendererSandboxedProcessLauncherDelegate
return service_manager::SANDBOX_TYPE_RENDERER;
}
@ -62,7 +62,7 @@ index 65b6d31f5438c1f97fccef4dd3c71ed125a15d5c..b14ed42882fb7feffdb1c481f8d02007
};
const char kSessionStorageHolderKey[] = "kSessionStorageHolderKey";
@@ -1690,11 +1701,18 @@ bool RenderProcessHostImpl::Init() {
@@ -1734,11 +1745,18 @@ bool RenderProcessHostImpl::Init() {
cmd_line->PrependWrapper(renderer_prefix);
AppendRendererCommandLine(cmd_line.get());

View file

@ -16,11 +16,11 @@ COMPONENT_EXPORT(UI_BASE_FEATURES) bool IsFormControlsRefreshEnabled();
ninja: build stopped: subcommand failed.
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
index 916debe91b00e84de13157a6fc7a5748619f37fa..ce667ff0239573145671c09fb8f3d377c044beb0 100644
index b92fe5397a0f6223ef0c171755cc6e473c225b59..951ba8fedf20dd836adf48f70fa68f2f4128d88a 100644
--- a/ui/views/BUILD.gn
+++ b/ui/views/BUILD.gn
@@ -580,6 +580,7 @@ jumbo_component("views") {
"win/pen_event_processor.cc",
@@ -592,6 +592,7 @@ jumbo_component("views") {
"win/scoped_enable_unadjusted_mouse_events_win.cc",
"win/scoped_fullscreen_visibility.cc",
]
+ jumbo_excluded_sources = [ "widget/widget_hwnd_utils.cc" ]

View file

@ -7,7 +7,7 @@ Temporarily add additional debugging statements to
generate_breakpad_symbols.py to determine why it is hanging.
diff --git a/components/crash/content/tools/generate_breakpad_symbols.py b/components/crash/content/tools/generate_breakpad_symbols.py
index 130ee13f8d5ecfcb5a303f7cc05af261693acf78..fe6d008b910942a59e31371ec08179b23a6fa0bb 100755
index a367fa2bf31591c98dd4245d42a71cd9da82f2d9..7ecc72117881fdfa64170d62f94627a7f6dda7ad 100755
--- a/components/crash/content/tools/generate_breakpad_symbols.py
+++ b/components/crash/content/tools/generate_breakpad_symbols.py
@@ -60,7 +60,10 @@ def Resolve(path, exe_path, loader_path, rpaths):
@ -32,7 +32,7 @@ index 130ee13f8d5ecfcb5a303f7cc05af261693acf78..fe6d008b910942a59e31371ec08179b2
return result
@@ -196,7 +202,7 @@ def GetSharedLibraryDependencies(options, binary, exe_path):
@@ -215,7 +221,7 @@ def GetSharedLibraryDependencies(options, binary, exe_path):
"""Return absolute paths to all shared library dependencies of the binary."""
deps = []
if options.platform == 'linux2':
@ -41,7 +41,7 @@ index 130ee13f8d5ecfcb5a303f7cc05af261693acf78..fe6d008b910942a59e31371ec08179b2
elif options.platform == 'android':
deps = GetSharedLibraryDependenciesAndroid(binary)
elif options.platform == 'darwin':
@@ -270,7 +276,8 @@ def CreateSymbolDir(options, output_dir, relative_hash_dir):
@@ -292,7 +298,8 @@ def CreateSymbolDir(options, output_dir, relative_hash_dir):
def GenerateSymbols(options, binaries):
"""Dumps the symbols of binary and places them in the given directory."""
@ -51,7 +51,7 @@ index 130ee13f8d5ecfcb5a303f7cc05af261693acf78..fe6d008b910942a59e31371ec08179b2
queue = Queue.Queue()
print_lock = threading.Lock()
@@ -290,8 +297,15 @@ def GenerateSymbols(options, binaries):
@@ -312,8 +319,15 @@ def GenerateSymbols(options, binaries):
reason = "Could not locate dump_syms executable."
break
@ -67,7 +67,7 @@ index 130ee13f8d5ecfcb5a303f7cc05af261693acf78..fe6d008b910942a59e31371ec08179b2
if not binary_info:
should_dump_syms = False
reason = "Could not obtain binary information."
@@ -309,8 +323,14 @@ def GenerateSymbols(options, binaries):
@@ -331,8 +345,14 @@ def GenerateSymbols(options, binaries):
# See if there is a symbol file already found next to the binary
potential_symbol_files = glob.glob('%s.breakpad*' % binary)
for potential_symbol_file in potential_symbol_files:

View file

@ -5,10 +5,10 @@ Subject: web_contents.patch
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index ba990c79d5bf88077cef601d63d604b2e372bab3..709230e0ecf624c0014b3a2e61f90c25dc23ebe7 100644
index 3eea51d39eb9239e0eb5d706497d84c8bb1b156f..8586f71224f1cae6a5e9b4005a6acfef9ff64d4d 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -2142,6 +2142,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
@@ -2135,6 +2135,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
std::string unique_name;
frame_tree_.root()->SetFrameName(params.main_frame_name, unique_name);
@ -21,7 +21,7 @@ index ba990c79d5bf88077cef601d63d604b2e372bab3..709230e0ecf624c0014b3a2e61f90c25
WebContentsViewDelegate* delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -2157,6 +2163,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
@@ -2150,6 +2156,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
&render_view_host_delegate_view_);
}
}
@ -92,7 +92,7 @@ index c45581fd22b7ba28b76bdebfffdc872b820798c8..f22ac0e611cc79aa1bc7f85836d69e3a
RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForChildWidget(
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
index 9dd92030f9a4a0405c9d7724817a5fc3bf497da1..9bef76029aa3e71cf9ac3d2ac5a5e3a66e60c165 100644
index 6708e254b314efc2366b86e0dcd5b312ec77038e..94a5b87ca72998729f1fca14f247914bb81d60d1 100644
--- a/content/public/browser/web_contents.h
+++ b/content/public/browser/web_contents.h
@@ -79,9 +79,12 @@ class BrowserPluginGuestDelegate;

View file

@ -5,10 +5,10 @@ Subject: webview_cross_drag.patch
diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc
index ac096c72a956ecb7e6bacb72452b44f6b00ed251..741f6d44d06bb3abe547184403d0e8cccb00d0ce 100644
index fbefaf207527d4e9be49f7eb455d8c1461dea409..c5d81b68fba3b0deef5018a499728595bf459dcd 100644
--- a/content/browser/web_contents/web_contents_view_aura.cc
+++ b/content/browser/web_contents/web_contents_view_aura.cc
@@ -777,6 +777,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const {
@@ -800,6 +800,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const {
bool WebContentsViewAura::IsValidDragTarget(
RenderWidgetHostImpl* target_rwh) const {

View file

@ -5,7 +5,7 @@ Subject: worker_context_will_destroy.patch
diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
index 7ae6603144706803b04c6583bad366197e20f456..db2e164f0415b511a8d19d18f197d82e8a447ad8 100644
index 902bd023e6d2e26a5a89ed441651edd5f364f009..906920393c34043d19183064a2a4506c0a03e80d 100644
--- a/content/public/renderer/content_renderer_client.h
+++ b/content/public/renderer/content_renderer_client.h
@@ -383,6 +383,11 @@ class CONTENT_EXPORT ContentRendererClient {
@ -21,10 +21,10 @@ index 7ae6603144706803b04c6583bad366197e20f456..db2e164f0415b511a8d19d18f197d82e
// 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 7f3c8fbb4c1870a4313280d00371eea65c718d16..302a23981a0b3b056260f598d22259c57c469ee4 100644
index 875a9079d0d5e97d04ca9870cb1d35dbe39fb24b..08cdba51792cbc73eb55ca7bb1d0ca1711ca97e8 100644
--- a/content/renderer/renderer_blink_platform_impl.cc
+++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -1002,6 +1002,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
@@ -994,6 +994,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread();
}
@ -50,10 +50,10 @@ index b183977096477563043b288b33d90d3ce9fbd8de..87bd2530eb060c8e68a5a2ca090ce80c
const blink::WebString& header_name) override;
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
index cd9572908f0c8b80341f28facfe4256df30b27ff..d9ff47fac2590b1a0fa2a8faf803bc0fa875ae25 100644
index 83b3a264c0731acb567401ce64085560470a457f..70cab2fd7d3f5a30683ad2c8da7dcd453f939502 100644
--- a/third_party/blink/public/platform/platform.h
+++ b/third_party/blink/public/platform/platform.h
@@ -693,6 +693,7 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -692,6 +692,7 @@ class BLINK_PLATFORM_EXPORT Platform {
virtual void DidStartWorkerThread() {}
virtual void WillStopWorkerThread() {}
virtual void WorkerContextCreated(const v8::Local<v8::Context>& worker) {}

View file

@ -1,14 +1,10 @@
{
"src/electron/patches/chromium": "src",
"src/electron/patches/angle": "src/third_party/angle",
"src/electron/patches/quiche": "src/net/third_party/quiche/src",
"src/electron/patches/boringssl": "src/third_party/boringssl/src",
"src/electron/patches/perfetto": "src/third_party/perfetto",
"src/electron/patches/v8": "src/v8",
"src/electron/patches/node": "src/third_party/electron_node"

View file

@ -1,134 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: deepak1556 <hop2deep@gmail.com>
Date: Wed, 11 Sep 2019 12:40:20 -0700
Subject: Revert "Fix chrome roll: update protoc host toolchain rules"
This reverts commit b7ebffd32830be65b752841d37de5455d84b42b8.
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index a8aecc1ac1aa0af60df335fafeee56dff337a189..5ead1b50fb43047081b29fa55d5c0eda7a5c8142 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -182,30 +182,28 @@ whitelisted_protobuf_full_deps = [
"../src/trace_processor:trace_processor_shell",
]
-group("protoc") {
- public_deps = [
- "${perfetto_protobuf_target_prefix}:protoc($host_toolchain)",
- ]
-}
+if (current_toolchain == host_toolchain) {
+ group("protoc") {
+ public_deps = [
+ "${perfetto_protobuf_target_prefix}:protoc",
+ ]
+ }
+} # current_toolchain == host_toolchain
# protoc compiler library, it's used for building protoc plugins and by
# trace_processor_shell to dynamically load .proto files for metrics.
group("protoc_lib") {
visibility = whitelisted_protobuf_full_deps
- if (current_toolchain == host_toolchain) {
- public_deps = [
- "${perfetto_protobuf_target_prefix}:protoc_lib",
- ]
- }
+ public_deps = [
+ "${perfetto_protobuf_target_prefix}:protoc_lib",
+ ]
}
group("protobuf_full") {
visibility = whitelisted_protobuf_full_deps
- if (current_toolchain == host_toolchain) {
- public_deps = [
- "${perfetto_protobuf_target_prefix}:protobuf_full",
- ]
- }
+ public_deps = [
+ "${perfetto_protobuf_target_prefix}:protobuf_full",
+ ]
}
group("protobuf_lite") {
diff --git a/gn/perfetto.gni b/gn/perfetto.gni
index 4bf62528336b5b6c8ce6eb932c18dcb6912422da..78aa3a63a677afc8789f58bb48e1dfac8a671eb9 100644
--- a/gn/perfetto.gni
+++ b/gn/perfetto.gni
@@ -161,8 +161,7 @@ declare_args() {
# Misc host executable under tools/.
enable_perfetto_tools =
- (perfetto_build_standalone && current_toolchain == host_toolchain) ||
- perfetto_build_with_android
+ perfetto_build_standalone || perfetto_build_with_android
# Allows to build the UI (TypeScript/ HTML / WASM)
enable_perfetto_ui = perfetto_build_standalone
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index 05a7d508bd51dc83f4b7039fccbb2b7415c0b208..f01e95d5de4bbfd1c8658bfbb6b7e061bfe6b632 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -136,12 +136,23 @@ additional_args = {
def enable_gmock(module):
module.static_libs.append('libgmock')
+
+def enable_gtest_prod(module):
+ module.static_libs.append('libgtest_prod')
+
+
+def enable_gtest(module):
+ assert module.type == 'cc_test'
+
+
def enable_protobuf_full(module):
module.shared_libs.append('libprotobuf-cpp-full')
+
def enable_protobuf_lite(module):
module.shared_libs.append('libprotobuf-cpp-lite')
+
def enable_protoc_lib(module):
module.shared_libs.append('libprotoc')
@@ -171,14 +182,16 @@ def enable_zlib(module):
# Android equivalents for third-party libraries that the upstream project
# depends on.
builtin_deps = {
- '//gn:gtest_and_gmock': enable_gmock,
- '//gn:libunwind': enable_libunwind,
- '//gn:protobuf_full': enable_protobuf_full,
- '//gn:protobuf_lite': enable_protobuf_lite,
- '//gn:protoc_lib': enable_protoc_lib,
- '//gn:libunwindstack': enable_libunwindstack,
- '//gn:sqlite': enable_sqlite,
- '//gn:zlib': enable_zlib,
+ '//buildtools:gmock': enable_gmock,
+ '//buildtools:gtest': enable_gtest,
+ '//buildtools:gtest_main': enable_gtest,
+ '//buildtools:libunwind': enable_libunwind,
+ '//buildtools:protobuf_full': enable_protobuf_full,
+ '//buildtools:protobuf_lite': enable_protobuf_lite,
+ '//buildtools:protoc_lib': enable_protoc_lib,
+ '//buildtools:libunwindstack': enable_libunwindstack,
+ '//buildtools:sqlite': enable_sqlite,
+ '//buildtools:zlib': enable_zlib,
}
# ----------------------------------------------------------------------------
@@ -401,10 +414,7 @@ def apply_module_dependency(blueprint, desc, module, dep_name):
dep_name: GN target of the dependency.
"""
# If the dependency refers to a library which we can replace with an Android
- # equivalent, stop recursing and patch the dependency in. Don't recurse into
- # //buildtools, builtin_deps are intercepted at the //gn:xxx level.
- if dep_name.startswith('//buildtools'):
- return
+ # equivalent, stop recursing and patch the dependency in.
if gn_utils.label_without_toolchain(dep_name) in builtin_deps:
builtin_deps[gn_utils.label_without_toolchain(dep_name)](module)
return

View file

@ -1,389 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: deepak1556 <hop2deep@gmail.com>
Date: Wed, 11 Sep 2019 12:40:33 -0700
Subject: Revert "Make trace_processor a host-only target"
This reverts commit d0001c31122289ab00ca03dc493f622aeb8a2e81.
diff --git a/Android.bp b/Android.bp
index 1d3c676bed57846207d68a5d1193991e688655c9..59eaefb7a4a91019eaf9c14d7c078d5aeb4073d5 100644
--- a/Android.bp
+++ b/Android.bp
@@ -4660,7 +4660,7 @@ cc_test {
}
// GN target: //src/trace_processor:trace_processor_shell
-cc_binary_host {
+cc_binary {
name: "trace_processor_shell",
srcs: [
":perfetto_protos_perfetto_common_zero_gen",
@@ -4783,12 +4783,10 @@ cc_binary_host {
],
shared_libs: [
"liblog",
- "libprotoc",
+ "libprotobuf-cpp-full",
"libz",
],
- static_libs: [
- "libsqlite",
- ],
+ host_supported: true,
generated_headers: [
"gen_merged_sql_metrics",
"perfetto_protos_perfetto_common_zero_gen_headers",
@@ -4828,6 +4826,21 @@ cc_binary_host {
"-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
"-DHAVE_HIDDEN",
],
+ target: {
+ android: {
+ shared_libs: [
+ "libandroidicu",
+ "liblog",
+ "libsqlite",
+ "libutils",
+ ],
+ },
+ host: {
+ static_libs: [
+ "libsqlite",
+ ],
+ },
+ },
}
// GN target: //tools/trace_to_text:trace_to_text
diff --git a/buildtools/BUILD.gn b/buildtools/BUILD.gn
index 220fb8ba22d228b95c6b14247edebf54dc9db6c2..cdbdb6a5548df3e984bde1f5406767aa1accf97a 100644
--- a/buildtools/BUILD.gn
+++ b/buildtools/BUILD.gn
@@ -273,111 +273,111 @@ source_set("protobuf_full") {
public_configs = [ ":protobuf_gen_config" ]
}
-source_set("protoc_lib") {
- visibility = _buildtools_visibility
- deps = [
- ":protobuf_full",
- "//gn:default_deps",
- ]
- sources = [
- "protobuf/src/google/protobuf/compiler/code_generator.cc",
- "protobuf/src/google/protobuf/compiler/command_line_interface.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_map_field.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc",
- "protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_enum.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_field_base.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_generator.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_helpers.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_map_field.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_message.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
- "protobuf/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
- "protobuf/src/google/protobuf/compiler/java/java_context.cc",
- "protobuf/src/google/protobuf/compiler/java/java_doc_comment.cc",
- "protobuf/src/google/protobuf/compiler/java/java_enum.cc",
- "protobuf/src/google/protobuf/compiler/java/java_enum_field.cc",
- "protobuf/src/google/protobuf/compiler/java/java_enum_field_lite.cc",
- "protobuf/src/google/protobuf/compiler/java/java_enum_lite.cc",
- "protobuf/src/google/protobuf/compiler/java/java_extension.cc",
- "protobuf/src/google/protobuf/compiler/java/java_extension_lite.cc",
- "protobuf/src/google/protobuf/compiler/java/java_field.cc",
- "protobuf/src/google/protobuf/compiler/java/java_file.cc",
- "protobuf/src/google/protobuf/compiler/java/java_generator.cc",
- "protobuf/src/google/protobuf/compiler/java/java_generator_factory.cc",
- "protobuf/src/google/protobuf/compiler/java/java_helpers.cc",
- "protobuf/src/google/protobuf/compiler/java/java_lazy_message_field.cc",
- "protobuf/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc",
- "protobuf/src/google/protobuf/compiler/java/java_map_field.cc",
- "protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc",
- "protobuf/src/google/protobuf/compiler/java/java_message.cc",
- "protobuf/src/google/protobuf/compiler/java/java_message_builder.cc",
- "protobuf/src/google/protobuf/compiler/java/java_message_builder_lite.cc",
- "protobuf/src/google/protobuf/compiler/java/java_message_field.cc",
- "protobuf/src/google/protobuf/compiler/java/java_message_field_lite.cc",
- "protobuf/src/google/protobuf/compiler/java/java_message_lite.cc",
- "protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc",
- "protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc",
- "protobuf/src/google/protobuf/compiler/java/java_primitive_field_lite.cc",
- "protobuf/src/google/protobuf/compiler/java/java_service.cc",
- "protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.cc",
- "protobuf/src/google/protobuf/compiler/java/java_string_field.cc",
- "protobuf/src/google/protobuf/compiler/java/java_string_field_lite.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_enum.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_enum_field.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_extension.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_field.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_file.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_generator.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_helpers.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_map_field.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_message.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_message_field.cc",
- "protobuf/src/google/protobuf/compiler/javanano/javanano_primitive_field.cc",
- "protobuf/src/google/protobuf/compiler/js/js_generator.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_field.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
- "protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
- "protobuf/src/google/protobuf/compiler/plugin.cc",
- "protobuf/src/google/protobuf/compiler/plugin.pb.cc",
- "protobuf/src/google/protobuf/compiler/python/python_generator.cc",
- "protobuf/src/google/protobuf/compiler/ruby/ruby_generator.cc",
- "protobuf/src/google/protobuf/compiler/subprocess.cc",
- "protobuf/src/google/protobuf/compiler/zip_writer.cc",
- ]
- configs -= [ "//gn/standalone:extra_warnings" ]
- configs += [ ":protobuf_config" ]
- public_configs = [ ":protobuf_gen_config" ]
-}
-
if (current_toolchain == host_toolchain) {
+ source_set("protoc_lib") {
+ visibility = _buildtools_visibility
+ deps = [
+ ":protobuf_full",
+ "//gn:default_deps",
+ ]
+ sources = [
+ "protobuf/src/google/protobuf/compiler/code_generator.cc",
+ "protobuf/src/google/protobuf/compiler/command_line_interface.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_map_field.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_enum.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_field_base.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_generator.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_helpers.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_map_field.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_message.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_context.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_doc_comment.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_enum.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_enum_field.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_enum_field_lite.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_enum_lite.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_extension.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_extension_lite.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_field.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_file.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_generator.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_generator_factory.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_helpers.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_lazy_message_field.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_map_field.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_message.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_message_builder.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_message_builder_lite.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_message_field.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_message_field_lite.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_message_lite.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_primitive_field_lite.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_service.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_string_field.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_string_field_lite.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_enum.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_enum_field.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_extension.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_field.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_file.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_generator.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_helpers.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_map_field.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_message.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_message_field.cc",
+ "protobuf/src/google/protobuf/compiler/javanano/javanano_primitive_field.cc",
+ "protobuf/src/google/protobuf/compiler/js/js_generator.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_field.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
+ "protobuf/src/google/protobuf/compiler/plugin.cc",
+ "protobuf/src/google/protobuf/compiler/plugin.pb.cc",
+ "protobuf/src/google/protobuf/compiler/python/python_generator.cc",
+ "protobuf/src/google/protobuf/compiler/ruby/ruby_generator.cc",
+ "protobuf/src/google/protobuf/compiler/subprocess.cc",
+ "protobuf/src/google/protobuf/compiler/zip_writer.cc",
+ ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+ configs += [ ":protobuf_config" ]
+ public_configs = [ ":protobuf_gen_config" ]
+ }
+
executable("protoc") {
visibility = _buildtools_visibility
deps = [
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 5ead1b50fb43047081b29fa55d5c0eda7a5c8142..529b4e24c5aa9532e4945c0826231ec60ce78b6d 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -173,34 +173,23 @@ group("gtest_main") {
}
}
-# Full protobuf is just for host tools .No binary shipped on device should
-# depend on this.
-whitelisted_protobuf_full_deps = [
- "../tools/*",
- "../src/ipc/protoc_plugin:*",
- "../src/protozero/protoc_plugin:*",
- "../src/trace_processor:trace_processor_shell",
-]
-
+# protoc compiler library, for building protoc plugins on the host.
if (current_toolchain == host_toolchain) {
+ group("protoc_lib") {
+ public_deps = [
+ "${perfetto_protobuf_target_prefix}:protoc_lib",
+ ]
+ }
+
group("protoc") {
public_deps = [
"${perfetto_protobuf_target_prefix}:protoc",
]
}
-} # current_toolchain == host_toolchain
-
-# protoc compiler library, it's used for building protoc plugins and by
-# trace_processor_shell to dynamically load .proto files for metrics.
-group("protoc_lib") {
- visibility = whitelisted_protobuf_full_deps
- public_deps = [
- "${perfetto_protobuf_target_prefix}:protoc_lib",
- ]
}
group("protobuf_full") {
- visibility = whitelisted_protobuf_full_deps
+ testonly = true
public_deps = [
"${perfetto_protobuf_target_prefix}:protobuf_full",
]
diff --git a/src/trace_processor/BUILD.gn b/src/trace_processor/BUILD.gn
index 952dd65d9ad1c5f4d4ee0443007bfaf6110c8dfb..12e0d800b5673af1785e5a09e49847702442d2a1 100644
--- a/src/trace_processor/BUILD.gn
+++ b/src/trace_processor/BUILD.gn
@@ -14,7 +14,6 @@
import("../../gn/fuzzer.gni")
import("../../gn/perfetto.gni")
-import("../../gn/perfetto_host_executable.gni")
import("../../gn/test.gni")
import("../../gn/wasm.gni")
@@ -229,11 +228,12 @@ source_set("common") {
]
}
-perfetto_host_executable("trace_processor_shell") {
+executable("trace_processor_shell") {
+ testonly = true # We need this for proto full.
deps = [
":lib",
"../../gn:default_deps",
- "../../gn:protoc_lib",
+ "../../gn:protobuf_full",
"../base",
"metrics:lib",
]
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index f01e95d5de4bbfd1c8658bfbb6b7e061bfe6b632..0d6b01a8cc838efda58634d21298243f2a649da8 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -61,6 +61,11 @@ default_targets = [
'//tools/trace_to_text:trace_to_text',
]
+# Targets which are testonly but should still be a cc_binary.
+non_test_binaries = [
+ '//src/trace_processor:trace_processor_shell',
+]
+
# Defines a custom init_rc argument to be applied to the corresponding output
# blueprint target.
target_initrc = {
@@ -70,11 +75,11 @@ target_initrc = {
target_host_supported = [
'//protos/perfetto/trace:perfetto_trace_protos',
+ '//src/trace_processor:trace_processor_shell',
]
target_host_only = [
'//tools/trace_to_text:trace_to_text',
- '//src/trace_processor:trace_processor_shell',
]
# All module names are prefixed with this string to avoid collisions.
@@ -640,7 +645,7 @@ def create_modules_from_target(blueprint, desc, target_name):
if target['type'] == 'executable':
if 'host' in target['toolchain'] or target_name in target_host_only:
module_type = 'cc_binary_host'
- elif target.get('testonly'):
+ elif target.get('testonly') and target_name not in non_test_binaries:
module_type = 'cc_test'
else:
module_type = 'cc_binary'

View file

@ -7,4 +7,4 @@ export_symbols_needed_for_windows_build.patch
workaround_an_undefined_symbol_error.patch
do_not_export_private_v8_symbols_on_windows.patch
revert_cleanup_switch_offset_of_to_offsetof_where_possible.patch
include_string_in_v8_h.patch
ptr-compr_temporarily_disable_31_bit_smis_on_64-bit_architectures.patch

View file

@ -1,29 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jaime Bernardo <jaime@janeasystems.com>
Date: Tue, 1 Oct 2019 20:06:03 +0100
Subject: Include string in v8.h
Explicitly #include<string> in v8.h, since std::string is referenced
in it. In the C++ STL shipped with Visual Studio 2019, none of the
headers included in v8.h ends up including the C++ string header, which
caused a compile error.
Bug: v8:9793
Change-Id: I84a133dd10dd6dcc7b70287af393e82cf0dc97df
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1834321
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64074}
diff --git a/include/v8.h b/include/v8.h
index f0c47907292b9da438347276ac240541577899ad..a8010f4dadef1636697d08888a4c5e2da68f884a 100644
--- a/include/v8.h
+++ b/include/v8.h
@@ -19,6 +19,7 @@
#include <stdint.h>
#include <stdio.h>
#include <memory>
+#include <string>
#include <type_traits>
#include <utility>
#include <vector>

View file

@ -0,0 +1,30 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Igor Sheludko <ishell@chromium.org>
Date: Tue, 15 Oct 2019 10:46:52 +0200
Subject: [ptr-compr] Temporarily disable 31 bit Smis on 64-bit architectures
The reason is to unblock M79 blocked by chromium:1009439 while full
solution is not ready yet.
This CL will be reverted after the M79 branch point.
Bug: v8:9767, chromium:1009439
Change-Id: I5302d86fe953ecd94d9a4bba0d29c807b7b9d703
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1862554
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64286}
diff --git a/BUILD.gn b/BUILD.gn
index 6207d71c542c46a4716a51baeb8518eca0f8e1c0..db7179968237406318c64d68eae08027860e98f9 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -108,7 +108,7 @@ declare_args() {
# Enable pointer compression (sets -dV8_COMPRESS_POINTERS).
v8_enable_pointer_compression = false
- v8_enable_31bit_smis_on_64bit_arch = true
+ v8_enable_31bit_smis_on_64bit_arch = false
# Sets -dOBJECT_PRINT.
v8_enable_object_print = ""

View file

@ -27,7 +27,6 @@ def main():
if args.snapshot_files_dir is None:
mkargs = [ get_binary_path('mksnapshot', app_path), \
SNAPSHOT_SOURCE, '--startup_blob', 'snapshot_blob.bin', \
'--turbo_instruction_scheduling',
'--no-native-code-counters' ]
subprocess.check_call(mkargs)
print('ok mksnapshot successfully created snapshot_blob.bin.')

View file

@ -68,5 +68,6 @@ resources/default_app.asar
snapshot_blob.bin
swiftshader/libEGL.so
swiftshader/libGLESv2.so
swiftshader/libvk_swiftshader_icd.json
v8_context_snapshot.bin
version

View file

@ -68,5 +68,6 @@ resources/default_app.asar
snapshot_blob.bin
swiftshader/libEGL.so
swiftshader/libGLESv2.so
swiftshader/libvk_swiftshader_icd.json
v8_context_snapshot.bin
version

View file

@ -68,5 +68,6 @@ resources/default_app.asar
snapshot_blob.bin
swiftshader/libEGL.so
swiftshader/libGLESv2.so
swiftshader/libvk_swiftshader_icd.json
v8_context_snapshot.bin
version

View file

@ -68,5 +68,6 @@ resources/default_app.asar
snapshot_blob.bin
swiftshader/libEGL.so
swiftshader/libGLESv2.so
swiftshader/libvk_swiftshader_icd.json
v8_context_snapshot.bin
version

View file

@ -66,5 +66,7 @@ resources/default_app.asar
snapshot_blob.bin
swiftshader/libEGL.dll
swiftshader/libGLESv2.dll
swiftshader/libvk_swiftshader_icd.json
vk_swiftshader.dll
v8_context_snapshot.bin
version

View file

@ -67,5 +67,7 @@ resources/default_app.asar
snapshot_blob.bin
swiftshader/libEGL.dll
swiftshader/libGLESv2.dll
swiftshader/libvk_swiftshader_icd.json
vk_swiftshader.dll
v8_context_snapshot.bin
version

View file

@ -67,5 +67,7 @@ resources/default_app.asar
snapshot_blob.bin
swiftshader/libEGL.dll
swiftshader/libGLESv2.dll
swiftshader/libvk_swiftshader_icd.json
vk_swiftshader.dll
v8_context_snapshot.bin
version

View file

@ -94,8 +94,9 @@ void DesktopCapturer::StartHandling(bool capture_window,
content::DesktopMediaID::TYPE_WINDOW,
content::desktop_capture::CreateWindowCapturer());
window_capturer_->SetThumbnailSize(thumbnail_size);
window_capturer_->AddObserver(this);
window_capturer_->StartUpdating();
window_capturer_->Update(base::BindOnce(
&DesktopCapturer::UpdateSourcesList, weak_ptr_factory_.GetWeakPtr(),
window_capturer_.get()));
}
if (capture_screen) {
@ -103,34 +104,13 @@ void DesktopCapturer::StartHandling(bool capture_window,
content::DesktopMediaID::TYPE_SCREEN,
content::desktop_capture::CreateScreenCapturer());
screen_capturer_->SetThumbnailSize(thumbnail_size);
screen_capturer_->AddObserver(this);
screen_capturer_->StartUpdating();
screen_capturer_->Update(base::BindOnce(
&DesktopCapturer::UpdateSourcesList, weak_ptr_factory_.GetWeakPtr(),
screen_capturer_.get()));
}
}
}
void DesktopCapturer::OnSourceAdded(DesktopMediaList* list, int index) {}
void DesktopCapturer::OnSourceRemoved(DesktopMediaList* list, int index) {}
void DesktopCapturer::OnSourceMoved(DesktopMediaList* list,
int old_index,
int new_index) {}
void DesktopCapturer::OnSourceNameChanged(DesktopMediaList* list, int index) {}
void DesktopCapturer::OnSourceThumbnailChanged(DesktopMediaList* list,
int index) {}
void DesktopCapturer::OnSourceUnchanged(DesktopMediaList* list) {
UpdateSourcesList(list);
}
bool DesktopCapturer::ShouldScheduleNextRefresh(DesktopMediaList* list) {
UpdateSourcesList(list);
return false;
}
void DesktopCapturer::UpdateSourcesList(DesktopMediaList* list) {
if (capture_window_ &&
list->GetMediaListType() == content::DesktopMediaID::TYPE_WINDOW) {

View file

@ -18,8 +18,7 @@ namespace electron {
namespace api {
class DesktopCapturer : public mate::TrackableObject<DesktopCapturer>,
public DesktopMediaListObserver {
class DesktopCapturer : public mate::TrackableObject<DesktopCapturer> {
public:
struct Source {
DesktopMediaList::Source media_list_source;
@ -44,17 +43,6 @@ class DesktopCapturer : public mate::TrackableObject<DesktopCapturer>,
explicit DesktopCapturer(v8::Isolate* isolate);
~DesktopCapturer() override;
// DesktopMediaListObserver overrides.
void OnSourceAdded(DesktopMediaList* list, int index) override;
void OnSourceRemoved(DesktopMediaList* list, int index) override;
void OnSourceMoved(DesktopMediaList* list,
int old_index,
int new_index) override;
void OnSourceNameChanged(DesktopMediaList* list, int index) override;
void OnSourceThumbnailChanged(DesktopMediaList* list, int index) override;
void OnSourceUnchanged(DesktopMediaList* list) override;
bool ShouldScheduleNextRefresh(DesktopMediaList* list) override;
private:
void UpdateSourcesList(DesktopMediaList* list);
@ -68,6 +56,8 @@ class DesktopCapturer : public mate::TrackableObject<DesktopCapturer>,
bool using_directx_capturer_ = false;
#endif // defined(OS_WIN)
base::WeakPtrFactory<DesktopCapturer> weak_ptr_factory_{this};
DISALLOW_COPY_AND_ASSIGN(DesktopCapturer);
};

View file

@ -526,13 +526,9 @@ void TopLevelWindow::SetAlwaysOnTop(bool top, mate::Arguments* args) {
args->GetNext(&level);
args->GetNext(&relative_level);
std::string error;
ui::ZOrderLevel z_order =
top ? ui::ZOrderLevel::kFloatingWindow : ui::ZOrderLevel::kNormal;
window_->SetAlwaysOnTop(z_order, level, relative_level, &error);
if (!error.empty())
args->ThrowError(error);
window_->SetAlwaysOnTop(z_order, level, relative_level);
}
bool TopLevelWindow::IsAlwaysOnTop() {

View file

@ -88,6 +88,7 @@
#include "shell/common/node_includes.h"
#include "shell/common/options_switches.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
#include "third_party/blink/public/common/page/page_zoom.h"
#include "third_party/blink/public/mojom/frame/find_in_page.mojom.h"
#include "third_party/blink/public/platform/web_cursor_info.h"
#include "third_party/blink/public/platform/web_input_event.h"
@ -938,7 +939,7 @@ void WebContents::DidAcquireFullscreen(content::RenderFrameHost* rfh) {
set_fullscreen_frame(rfh);
}
void WebContents::DocumentLoadedInFrame(
void WebContents::DOMContentLoaded(
content::RenderFrameHost* render_frame_host) {
if (!render_frame_host->GetParent())
Emit("dom-ready");
@ -2316,13 +2317,22 @@ double WebContents::GetZoomLevel() const {
}
void WebContents::SetZoomFactor(double factor) {
auto level = content::ZoomFactorToZoomLevel(factor);
auto level = blink::PageZoomFactorToZoomLevel(factor);
SetZoomLevel(level);
}
double WebContents::GetZoomFactor() const {
auto level = GetZoomLevel();
return content::ZoomLevelToZoomFactor(level);
return blink::PageZoomLevelToZoomFactor(level);
}
void WebContents::SetZoomLimits(double min_zoom, double max_zoom) {
// Round the double to avoid returning incorrect minimum/maximum zoom
// percentages.
int minimum_percent = round(blink::PageZoomLevelToZoomFactor(min_zoom) * 100);
int maximum_percent = round(blink::PageZoomLevelToZoomFactor(max_zoom) * 100);
web_contents()->SetMinimumZoomPercent(minimum_percent);
web_contents()->SetMaximumZoomPercent(maximum_percent);
}
void WebContents::SetTemporaryZoomLevel(double level) {

View file

@ -272,6 +272,7 @@ class WebContents : public mate::TrackableObject<WebContents>,
double GetZoomLevel() const;
void SetZoomFactor(double factor);
double GetZoomFactor() const;
void SetZoomLimits(double min_zoom, double max_zoom) override;
// Callback triggered on permission response.
void OnEnterFullscreenModeForTab(content::WebContents* source,
@ -426,8 +427,7 @@ class WebContents : public mate::TrackableObject<WebContents>,
void RenderViewDeleted(content::RenderViewHost*) override;
void RenderProcessGone(base::TerminationStatus status) override;
void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override;
void DocumentLoadedInFrame(
content::RenderFrameHost* render_frame_host) override;
void DOMContentLoaded(content::RenderFrameHost* render_frame_host) override;
void DidFinishLoad(content::RenderFrameHost* render_frame_host,
const GURL& validated_url) override;
void DidFailLoad(content::RenderFrameHost* render_frame_host,

View file

@ -66,7 +66,7 @@ void GPUInfoManager::CompleteInfoFetcher(
complete_info_promise_set_.emplace_back(std::move(promise));
if (NeedsCompleteGpuInfoCollection()) {
gpu_data_manager_->RequestCompleteGpuInfoIfNeeded(
gpu_data_manager_->RequestDxdiagDx12VulkanGpuInfoIfNeeded(
content::kGpuInfoRequestAll, /* delayed */ false);
} else {
GPUInfoManager::OnGpuInfoUpdate();

View file

@ -1021,7 +1021,8 @@ AtomBrowserClient::CreateURLLoaderFactoryForNetworkRequests(
network::mojom::NetworkContext* network_context,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client,
const url::Origin& request_initiator) {
const url::Origin& request_initiator,
const base::Optional<net::NetworkIsolationKey>& network_isolation_key) {
auto render_process_id = process->GetID();
auto it = process_preferences_.find(render_process_id);
if (it != process_preferences_.end() && !it->second.web_security) {

View file

@ -186,7 +186,9 @@ class AtomBrowserClient : public content::ContentBrowserClient,
network::mojom::NetworkContext* network_context,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client,
const url::Origin& request_initiator) override;
const url::Origin& request_initiator,
const base::Optional<net::NetworkIsolationKey>& network_isolation_key)
override;
#if defined(OS_WIN)
bool PreSpawnRenderer(sandbox::TargetPolicy* policy,
RendererSpawnFlags flags) override;

View file

@ -129,8 +129,7 @@ class NativeWindow : public base::SupportsUserData,
virtual bool IsClosable() = 0;
virtual void SetAlwaysOnTop(ui::ZOrderLevel z_order,
const std::string& level = "floating",
int relativeLevel = 0,
std::string* error = nullptr) = 0;
int relativeLevel = 0) = 0;
virtual ui::ZOrderLevel GetZOrderLevel() = 0;
virtual void Center() = 0;
virtual void Invalidate() = 0;

View file

@ -78,8 +78,7 @@ class NativeWindowMac : public NativeWindow {
bool IsClosable() override;
void SetAlwaysOnTop(ui::ZOrderLevel z_order,
const std::string& level,
int relativeLevel,
std::string* error) override;
int relativeLevel) override;
ui::ZOrderLevel GetZOrderLevel() override;
void Center() override;
void Invalidate() override;
@ -148,6 +147,7 @@ class NativeWindowMac : public NativeWindow {
// Set the attribute of NSWindow while work around a bug of zoom button.
void SetStyleMask(bool on, NSUInteger flag);
void SetCollectionBehavior(bool on, NSUInteger flag);
void SetWindowLevel(int level);
enum class TitleBarStyle {
NORMAL,

View file

@ -875,52 +875,62 @@ bool NativeWindowMac::IsClosable() {
}
void NativeWindowMac::SetAlwaysOnTop(ui::ZOrderLevel z_order,
const std::string& level,
int relativeLevel,
std::string* error) {
int windowLevel = NSNormalWindowLevel;
bool level_changed = z_order != widget()->GetZOrderLevel();
CGWindowLevel maxWindowLevel = CGWindowLevelForKey(kCGMaximumWindowLevelKey);
CGWindowLevel minWindowLevel = CGWindowLevelForKey(kCGMinimumWindowLevelKey);
if (z_order != ui::ZOrderLevel::kNormal) {
if (level == "floating") {
windowLevel = NSFloatingWindowLevel;
} else if (level == "torn-off-menu") {
windowLevel = NSTornOffMenuWindowLevel;
} else if (level == "modal-panel") {
windowLevel = NSModalPanelWindowLevel;
} else if (level == "main-menu") {
windowLevel = NSMainMenuWindowLevel;
} else if (level == "status") {
windowLevel = NSStatusWindowLevel;
} else if (level == "pop-up-menu") {
windowLevel = NSPopUpMenuWindowLevel;
} else if (level == "screen-saver") {
windowLevel = NSScreenSaverWindowLevel;
} else if (level == "dock") {
// Deprecated by macOS, but kept for backwards compatibility
windowLevel = NSDockWindowLevel;
}
const std::string& level_name,
int relative_level) {
if (z_order == ui::ZOrderLevel::kNormal) {
SetWindowLevel(NSNormalWindowLevel);
return;
}
NSInteger newLevel = windowLevel + relativeLevel;
if (newLevel >= minWindowLevel && newLevel <= maxWindowLevel) {
was_maximizable_ = IsMaximizable();
[window_ setLevel:newLevel];
// Set level will make the zoom button revert to default, probably
// a bug of Cocoa or macOS.
[[window_ standardWindowButton:NSWindowZoomButton]
setEnabled:was_maximizable_];
} else {
*error = std::string([[NSString
stringWithFormat:@"relativeLevel must be between %d and %d",
minWindowLevel, maxWindowLevel] UTF8String]);
int level = NSNormalWindowLevel;
if (level_name == "floating") {
level = NSFloatingWindowLevel;
} else if (level_name == "torn-off-menu") {
level = NSTornOffMenuWindowLevel;
} else if (level_name == "modal-panel") {
level = NSModalPanelWindowLevel;
} else if (level_name == "main-menu") {
level = NSMainMenuWindowLevel;
} else if (level_name == "status") {
level = NSStatusWindowLevel;
} else if (level_name == "pop-up-menu") {
level = NSPopUpMenuWindowLevel;
} else if (level_name == "screen-saver") {
level = NSScreenSaverWindowLevel;
} else if (level_name == "dock") {
// Deprecated by macOS, but kept for backwards compatibility
level = NSDockWindowLevel;
}
SetWindowLevel(level + relative_level);
}
void NativeWindowMac::SetWindowLevel(int unbounded_level) {
int level = std::min(
std::max(unbounded_level, CGWindowLevelForKey(kCGMinimumWindowLevelKey)),
CGWindowLevelForKey(kCGMaximumWindowLevelKey));
ui::ZOrderLevel z_order_level = level == NSNormalWindowLevel
? ui::ZOrderLevel::kNormal
: ui::ZOrderLevel::kFloatingWindow;
bool did_z_order_level_change = z_order_level != GetZOrderLevel();
was_maximizable_ = IsMaximizable();
// We need to explicitly keep the NativeWidget up to date, since it stores the
// window level in a local variable, rather than reading it from the NSWindow.
// Unfortunately, it results in a second setLevel call. It's not ideal, but we
// don't expect this to cause any user-visible jank.
widget()->SetZOrderLevel(z_order_level);
[window_ setLevel:level];
// Set level will make the zoom button revert to default, probably
// a bug of Cocoa or macOS.
[[window_ standardWindowButton:NSWindowZoomButton]
setEnabled:was_maximizable_];
// This must be notified at the very end or IsAlwaysOnTop
// will not yet have been updated to reflect the new status
if (level_changed)
if (did_z_order_level_change)
NativeWindow::NotifyWindowAlwaysOnTopChanged();
}

View file

@ -794,8 +794,7 @@ bool NativeWindowViews::IsClosable() {
void NativeWindowViews::SetAlwaysOnTop(ui::ZOrderLevel z_order,
const std::string& level,
int relativeLevel,
std::string* error) {
int relativeLevel) {
bool level_changed = z_order != widget()->GetZOrderLevel();
widget()->SetZOrderLevel(z_order);

View file

@ -83,8 +83,7 @@ class NativeWindowViews : public NativeWindow,
bool IsClosable() override;
void SetAlwaysOnTop(ui::ZOrderLevel z_order,
const std::string& level,
int relativeLevel,
std::string* error) override;
int relativeLevel) override;
ui::ZOrderLevel GetZOrderLevel() override;
void Center() override;
void Invalidate() override;

View file

@ -163,7 +163,7 @@ using TitleBarStyle = electron::NativeWindowMac::TitleBarStyle;
// store the current status window level to be restored in
// windowDidDeminiaturize
level_ = [window level];
[window setLevel:NSNormalWindowLevel];
shell_->SetWindowLevel(NSNormalWindowLevel);
}
- (void)windowDidMiniaturize:(NSNotification*)notification {
@ -173,7 +173,7 @@ using TitleBarStyle = electron::NativeWindowMac::TitleBarStyle;
- (void)windowDidDeminiaturize:(NSNotification*)notification {
[super windowDidDeminiaturize:notification];
[shell_->GetNativeWindow().GetNativeNSWindow() setLevel:level_];
shell_->SetWindowLevel(level_);
shell_->NotifyWindowRestore();
}

View file

@ -42,6 +42,7 @@
#include "shell/browser/ui/inspectable_web_contents_view_delegate.h"
#include "shell/common/platform_util.h"
#include "third_party/blink/public/common/logging/logging_utils.h"
#include "third_party/blink/public/common/page/page_zoom.h"
#include "ui/display/display.h"
#include "ui/display/screen.h"
@ -122,15 +123,15 @@ void SetZoomLevelForWebContents(content::WebContents* web_contents,
}
double GetNextZoomLevel(double level, bool out) {
double factor = content::ZoomLevelToZoomFactor(level);
double factor = blink::PageZoomLevelToZoomFactor(level);
size_t size = base::size(kPresetZoomFactors);
for (size_t i = 0; i < size; ++i) {
if (!content::ZoomValuesEqual(kPresetZoomFactors[i], factor))
if (!blink::PageZoomValuesEqual(kPresetZoomFactors[i], factor))
continue;
if (out && i > 0)
return content::ZoomFactorToZoomLevel(kPresetZoomFactors[i - 1]);
return blink::PageZoomFactorToZoomLevel(kPresetZoomFactors[i - 1]);
if (!out && i != size - 1)
return content::ZoomFactorToZoomLevel(kPresetZoomFactors[i + 1]);
return blink::PageZoomFactorToZoomLevel(kPresetZoomFactors[i + 1]);
}
return level;
}

View file

@ -6,10 +6,10 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/ui/views/status_icons/status_icon_linux_dbus.h"
#include "shell/browser/browser.h"
#include "shell/common/application_info.h"
#include "ui/gfx/image/image.h"
#include "ui/views/linux_ui/linux_ui.h"
namespace electron {
@ -18,38 +18,40 @@ TrayIconGtk::TrayIconGtk() = default;
TrayIconGtk::~TrayIconGtk() = default;
void TrayIconGtk::SetImage(const gfx::Image& image) {
image_ = image.AsImageSkia();
if (icon_) {
icon_->SetIcon(image.AsImageSkia());
icon_->SetIcon(image_);
return;
}
const auto toolTip = base::UTF8ToUTF16(GetApplicationName());
icon_ = views::LinuxUI::instance()->CreateLinuxStatusIcon(
image.AsImageSkia(), toolTip, Browser::Get()->GetName().c_str());
tool_tip_ = base::UTF8ToUTF16(GetApplicationName());
icon_ = base::MakeRefCounted<StatusIconLinuxDbus>();
icon_->SetIcon(image_);
icon_->SetToolTip(tool_tip_);
icon_->SetDelegate(this);
}
void TrayIconGtk::SetToolTip(const std::string& tool_tip) {
icon_->SetToolTip(base::UTF8ToUTF16(tool_tip));
tool_tip_ = base::UTF8ToUTF16(tool_tip);
icon_->SetToolTip(tool_tip_);
}
void TrayIconGtk::SetContextMenu(AtomMenuModel* menu_model) {
icon_->UpdatePlatformContextMenu(menu_model);
icon_->UpdatePlatformContextMenu(menu_model_);
menu_model_ = menu_model;
}
const gfx::ImageSkia& TrayIconGtk::GetImage() const {
NOTREACHED();
return dummy_image_;
return image_;
}
const base::string16& TrayIconGtk::GetToolTip() const {
NOTREACHED();
return dummy_string_;
return tool_tip_;
}
ui::MenuModel* TrayIconGtk::GetMenuModel() const {
NOTREACHED();
return nullptr;
return menu_model_;
}
void TrayIconGtk::OnImplInitializationFailed() {}

View file

@ -8,6 +8,7 @@
#include <memory>
#include <string>
#include "chrome/browser/ui/views/status_icons/status_icon_linux_dbus.h"
#include "shell/browser/ui/tray_icon.h"
#include "ui/views/linux_ui/status_icon_linux.h"
@ -38,10 +39,10 @@ class TrayIconGtk : public TrayIcon, public views::StatusIconLinux::Delegate {
void OnImplInitializationFailed() override;
private:
std::unique_ptr<views::StatusIconLinux> icon_;
gfx::ImageSkia dummy_image_;
base::string16 dummy_string_;
scoped_refptr<StatusIconLinuxDbus> icon_;
gfx::ImageSkia image_;
base::string16 tool_tip_;
ui::MenuModel* menu_model_;
DISALLOW_COPY_AND_ASSIGN(TrayIconGtk);
};

View file

@ -12,15 +12,15 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/page_type.h"
#include "content/public/common/page_zoom.h"
#include "net/base/url_util.h"
#include "third_party/blink/public/common/page/page_zoom.h"
namespace electron {
WebContentsZoomController::WebContentsZoomController(
content::WebContents* web_contents)
: content::WebContentsObserver(web_contents) {
default_zoom_factor_ = content::kEpsilon;
default_zoom_factor_ = kPageZoomEpsilon;
host_zoom_map_ = content::HostZoomMap::GetForWebContents(web_contents);
}
@ -43,7 +43,7 @@ void WebContentsZoomController::SetEmbedderZoomController(
void WebContentsZoomController::SetZoomLevel(double level) {
if (!web_contents()->GetRenderViewHost()->IsRenderViewLive() ||
content::ZoomValuesEqual(GetZoomLevel(), level) ||
blink::PageZoomValuesEqual(GetZoomLevel(), level) ||
zoom_mode_ == ZoomMode::DISABLED)
return;
@ -247,7 +247,7 @@ void WebContentsZoomController::RenderFrameHostChanged(
void WebContentsZoomController::SetZoomFactorOnNavigationIfNeeded(
const GURL& url) {
if (content::ZoomValuesEqual(GetDefaultZoomFactor(), content::kEpsilon))
if (blink::PageZoomValuesEqual(GetDefaultZoomFactor(), kPageZoomEpsilon))
return;
if (host_zoom_map_->UsesTemporaryZoomLevel(old_process_id_, old_view_id_)) {
@ -268,11 +268,11 @@ void WebContentsZoomController::SetZoomFactorOnNavigationIfNeeded(
std::string host = net::GetHostOrSpecFromURL(url);
std::string scheme = url.scheme();
double zoom_factor = GetDefaultZoomFactor();
double zoom_level = content::ZoomFactorToZoomLevel(zoom_factor);
double zoom_level = blink::PageZoomFactorToZoomLevel(zoom_factor);
if (host_zoom_map_->HasZoomLevel(scheme, host)) {
zoom_level = host_zoom_map_->GetZoomLevelForHostAndScheme(scheme, host);
}
if (content::ZoomValuesEqual(zoom_level, GetZoomLevel()))
if (blink::PageZoomValuesEqual(zoom_level, GetZoomLevel()))
return;
SetZoomLevel(zoom_level);

View file

@ -103,6 +103,8 @@ class WebContentsZoomController
// kZoomFactor.
double default_zoom_factor_ = 0;
const double kPageZoomEpsilon = 0.001;
int old_process_id_ = -1;
int old_view_id_ = -1;

View file

@ -15,6 +15,7 @@
#include "content/public/browser/render_widget_host_view.h"
#include "shell/browser/api/atom_api_web_contents.h"
#include "shell/common/native_mate_converters/gurl_converter.h"
#include "third_party/blink/public/common/page/page_zoom.h"
namespace electron {
@ -76,7 +77,7 @@ void WebViewGuestDelegate::OnZoomLevelChanged(
api_web_contents_->GetZoomController()->SetZoomLevel(level);
}
// Change the default zoom factor to match the embedders' new zoom level.
double zoom_factor = content::ZoomLevelToZoomFactor(level);
double zoom_factor = blink::PageZoomFactorToZoomLevel(level);
api_web_contents_->GetZoomController()->SetDefaultZoomFactor(zoom_factor);
}
}

View file

@ -17,7 +17,7 @@
#include "components/prefs/pref_service_factory.h"
#include "components/prefs/scoped_user_pref_update.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/common/page_zoom.h"
#include "third_party/blink/public/common/page/page_zoom.h"
namespace electron {
@ -53,7 +53,7 @@ ZoomLevelDelegate::ZoomLevelDelegate(PrefService* pref_service,
ZoomLevelDelegate::~ZoomLevelDelegate() = default;
void ZoomLevelDelegate::SetDefaultZoomLevelPref(double level) {
if (content::ZoomValuesEqual(level, host_zoom_map_->GetDefaultZoomLevel()))
if (blink::PageZoomValuesEqual(level, host_zoom_map_->GetDefaultZoomLevel()))
return;
DictionaryPrefUpdate update(pref_service_, kPartitionDefaultZoomLevel);
@ -83,7 +83,7 @@ void ZoomLevelDelegate::OnZoomLevelChanged(
DCHECK(host_zoom_dictionaries);
bool modification_is_removal =
content::ZoomValuesEqual(level, host_zoom_map_->GetDefaultZoomLevel());
blink::PageZoomValuesEqual(level, host_zoom_map_->GetDefaultZoomLevel());
base::DictionaryValue* host_zoom_dictionary = nullptr;
if (!host_zoom_dictionaries->GetDictionary(partition_key_,
@ -117,8 +117,8 @@ void ZoomLevelDelegate::ExtractPerHostZoomLevels(
// will ignore type B values, thus, to have consistency with HostZoomMap's
// internal state, these values must also be removed from Prefs.
if (host.empty() || !has_valid_zoom_level ||
content::ZoomValuesEqual(zoom_level,
host_zoom_map_->GetDefaultZoomLevel())) {
blink::PageZoomValuesEqual(zoom_level,
host_zoom_map_->GetDefaultZoomLevel())) {
keys_to_remove.push_back(host);
continue;
}

View file

@ -90,6 +90,8 @@ interface ElectronBrowser {
SetTemporaryZoomLevel(double zoom_level);
SetZoomLimits(double min_zoom, double max_zoom);
[Sync]
DoGetZoomLevel() => (double result);
};

View file

@ -337,7 +337,7 @@ void FillRequestDetails(base::DictionaryValue* details,
void GetUploadData(base::ListValue* upload_data_list,
const net::URLRequest* request) {
const net::UploadDataStream* upload_data = request->get_upload();
const net::UploadDataStream* upload_data = request->get_upload_for_testing();
if (!upload_data)
return;
const std::vector<std::unique_ptr<net::UploadElementReader>>* readers =

View file

@ -454,9 +454,9 @@ v8::Local<v8::Value> MediaFlagsToV8(v8::Isolate* isolate, int mediaFlags) {
return mate::ConvertToV8(isolate, dict);
}
v8::Local<v8::Value> Converter<blink::WebCache::ResourceTypeStat>::ToV8(
v8::Local<v8::Value> Converter<blink::WebCacheResourceTypeStat>::ToV8(
v8::Isolate* isolate,
const blink::WebCache::ResourceTypeStat& stat) {
const blink::WebCacheResourceTypeStat& stat) {
mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
dict.Set("count", static_cast<uint32_t>(stat.count));
dict.Set("size", static_cast<double>(stat.size));
@ -464,9 +464,9 @@ v8::Local<v8::Value> Converter<blink::WebCache::ResourceTypeStat>::ToV8(
return dict.GetHandle();
}
v8::Local<v8::Value> Converter<blink::WebCache::ResourceTypeStats>::ToV8(
v8::Local<v8::Value> Converter<blink::WebCacheResourceTypeStats>::ToV8(
v8::Isolate* isolate,
const blink::WebCache::ResourceTypeStats& stats) {
const blink::WebCacheResourceTypeStats& stats) {
mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
dict.Set("images", stats.images);
dict.Set("scripts", stats.scripts);

View file

@ -7,7 +7,7 @@
#include "native_mate/converter.h"
#include "third_party/blink/public/common/messaging/cloneable_message.h"
#include "third_party/blink/public/platform/web_cache.h"
#include "third_party/blink/public/common/web_cache/web_cache_resource_type_stats.h"
#include "third_party/blink/public/platform/web_input_event.h"
#include "third_party/blink/public/web/web_context_menu_data.h"
@ -110,17 +110,16 @@ struct Converter<blink::WebContextMenuData::InputFieldType> {
};
template <>
struct Converter<blink::WebCache::ResourceTypeStat> {
static v8::Local<v8::Value> ToV8(
v8::Isolate* isolate,
const blink::WebCache::ResourceTypeStat& stat);
struct Converter<blink::WebCacheResourceTypeStat> {
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
const blink::WebCacheResourceTypeStat& stat);
};
template <>
struct Converter<blink::WebCache::ResourceTypeStats> {
struct Converter<blink::WebCacheResourceTypeStats> {
static v8::Local<v8::Value> ToV8(
v8::Isolate* isolate,
const blink::WebCache::ResourceTypeStats& stats);
const blink::WebCacheResourceTypeStats& stats);
};
template <>

View file

@ -21,6 +21,8 @@
#include "shell/common/node_includes.h"
#include "shell/common/promise_util.h"
#include "shell/renderer/api/atom_api_spell_check_client.h"
#include "third_party/blink/public/common/page/page_zoom.h"
#include "third_party/blink/public/common/web_cache/web_cache_resource_type_stats.h"
#include "third_party/blink/public/platform/web_cache.h"
#include "third_party/blink/public/platform/web_isolated_world_info.h"
#include "third_party/blink/public/web/web_custom_element.h"
@ -249,11 +251,11 @@ double GetZoomLevel(v8::Local<v8::Value> window) {
}
void SetZoomFactor(v8::Local<v8::Value> window, double factor) {
SetZoomLevel(window, blink::WebView::ZoomFactorToZoomLevel(factor));
SetZoomLevel(window, blink::PageZoomFactorToZoomLevel(factor));
}
double GetZoomFactor(v8::Local<v8::Value> window) {
return blink::WebView::ZoomLevelToZoomFactor(GetZoomLevel(window));
return blink::PageZoomLevelToZoomFactor(GetZoomLevel(window));
}
void SetVisualZoomLevelLimits(v8::Local<v8::Value> window,
@ -267,8 +269,12 @@ void SetVisualZoomLevelLimits(v8::Local<v8::Value> window,
void SetLayoutZoomLevelLimits(v8::Local<v8::Value> window,
double min_level,
double max_level) {
blink::WebFrame* web_frame = GetRenderFrame(window)->GetWebFrame();
web_frame->View()->ZoomLimitsChanged(min_level, max_level);
content::RenderFrame* render_frame = GetRenderFrame(window);
mojom::ElectronBrowserPtr browser_ptr;
render_frame->GetRemoteInterfaces()->GetInterface(
mojo::MakeRequest(&browser_ptr));
browser_ptr->SetZoomLimits(min_level, max_level);
}
void AllowGuestViewElementDefinition(v8::Isolate* isolate,
@ -455,8 +461,8 @@ void SetIsolatedWorldInfo(v8::Local<v8::Value> window,
GetRenderFrame(window)->GetWebFrame()->SetIsolatedWorldInfo(world_id, info);
}
blink::WebCache::ResourceTypeStats GetResourceUsage(v8::Isolate* isolate) {
blink::WebCache::ResourceTypeStats stats;
blink::WebCacheResourceTypeStats GetResourceUsage(v8::Isolate* isolate) {
blink::WebCacheResourceTypeStats stats;
blink::WebCache::GetResourceTypeStats(&stats);
return stats;
}

View file

@ -1105,16 +1105,6 @@ describe('BrowserWindow module', () => {
expect(w.isAlwaysOnTop()).to.be.true('is not alwaysOnTop')
})
ifit(process.platform === 'darwin')('raises an error when relativeLevel is out of bounds', () => {
expect(() => {
w.setAlwaysOnTop(true, 'normal', -2147483644)
}).to.throw()
expect(() => {
w.setAlwaysOnTop(true, 'normal', 2147483632)
}).to.throw()
})
ifit(process.platform === 'darwin')('resets the windows level on minimize', () => {
expect(w.isAlwaysOnTop()).to.be.false('is alwaysOnTop')
w.setAlwaysOnTop(true, 'screen-saver')
@ -2476,7 +2466,8 @@ describe('BrowserWindow module', () => {
expect(hidden).to.be.false('hidden')
})
it('visibilityState changes when window is hidden', async () => {
// TODO(nornagon): figure out why this is failing on windows
ifit(process.platform !== 'win32')('visibilityState changes when window is hidden', async () => {
const w = new BrowserWindow({
width: 100,
height: 100,
@ -2502,7 +2493,8 @@ describe('BrowserWindow module', () => {
}
})
it('visibilityState changes when window is shown', async () => {
// TODO(nornagon): figure out why this is failing on windows
ifit(process.platform !== 'win32')('visibilityState changes when window is shown', async () => {
const w = new BrowserWindow({
width: 100,
height: 100,
@ -2541,7 +2533,8 @@ describe('BrowserWindow module', () => {
expect(visibilityState).to.equal('visible')
})
ifit(!(isCI && process.platform === 'linux'))('visibilityState changes when window is minimized', async () => {
// TODO(nornagon): figure out why this is failing on windows
ifit(process.platform === 'darwin')('visibilityState changes when window is minimized', async () => {
const w = new BrowserWindow({
width: 100,
height: 100,

View file

@ -20,17 +20,19 @@ ifdescribe(features.isDesktopCapturerEnabled() && !process.arch.includes('arm')
`)
}
it('should return a non-empty array of sources', async () => {
// TODO(nornagon): figure out why this test is failing on Linux and re-enable it.
ifit(process.platform !== 'linux')('should return a non-empty array of sources', async () => {
const sources = await getSources({ types: ['window', 'screen'] })
expect(sources).to.be.an('array').that.is.not.empty()
})
it('throws an error for invalid options', async () => {
const promise = getSources(['window', 'screen'] as any)
expect(promise).to.be.eventually.rejectedWith(Error, 'Invalid options')
await expect(promise).to.be.eventually.rejectedWith(Error, 'Invalid options')
})
it('does not throw an error when called more than once (regression)', async () => {
// TODO(nornagon): figure out why this test is failing on Linux and re-enable it.
ifit(process.platform !== 'linux')('does not throw an error when called more than once (regression)', async () => {
const sources1 = await getSources({ types: ['window', 'screen'] })
expect(sources1).to.be.an('array').that.is.not.empty()
@ -38,12 +40,12 @@ ifdescribe(features.isDesktopCapturerEnabled() && !process.arch.includes('arm')
expect(sources2).to.be.an('array').that.is.not.empty()
})
it('responds to subsequent calls of different options', async () => {
ifit(process.platform !== 'linux')('responds to subsequent calls of different options', async () => {
const promise1 = getSources({ types: ['window'] })
expect(promise1).to.not.eventually.be.rejected()
await expect(promise1).to.eventually.be.fulfilled()
const promise2 = getSources({ types: ['screen'] })
expect(promise2).to.not.eventually.be.rejected()
await expect(promise2).to.eventually.be.fulfilled()
})
// Linux doesn't return any window sources.

View file

@ -28,11 +28,12 @@ ifdescribe(!skip)('Notification module (dbus)', () => {
// init app
app.name = appName
app.setDesktopName(`${appName}.desktop`)
// init dbus
// init DBus
const path = '/org/freedesktop/Notifications'
const iface = 'org.freedesktop.DBus.Mock'
const bus = dbus.sessionBus()
console.log(`session bus: ${process.env.DBUS_SESSION_BUS_ADDRESS}`)
const bus = dbus.sessionBus()
const service = bus.getService(serviceName)
const getInterface = promisify(service.getInterface.bind(service))
mock = await getInterface(path, iface)
@ -42,7 +43,7 @@ ifdescribe(!skip)('Notification module (dbus)', () => {
after(async () => {
// cleanup dbus
await reset()
if (reset) await reset()
// cleanup app
app.setName(realAppName)
app.setVersion(realAppVersion)

View file

@ -40,3 +40,16 @@ export const emittedNTimes = async (emitter: NodeJS.EventEmitter, eventName: str
}
return p
}
export const emittedUntil = async (emitter: NodeJS.EventEmitter, eventName: string, untilFn: Function) => {
const p = new Promise<any[][]>(resolve => {
const handler = (...args: any[]) => {
if (untilFn(...args)) {
emitter.removeListener(eventName, handler)
resolve(args)
}
}
emitter.on(eventName, handler)
})
return p
}

View file

@ -8,7 +8,15 @@ import { BrowserWindow, WebPreferences } from 'electron'
import { closeWindow } from './window-helpers'
import { AddressInfo } from 'net';
import { emittedOnce } from './events-helpers';
import { emittedUntil } from './events-helpers';
const messageContainsSecurityWarning = (event: Event, level: number, message: string) => {
return message.indexOf('Electron Security Warning') > -1
}
const isLoaded = (event: Event, level: number, message: string) => {
return (message === 'loaded')
}
describe('security warnings', () => {
let server: http.Server
@ -73,26 +81,21 @@ describe('security warnings', () => {
})
w.loadURL(`${serverUrl}/base-page-security.html`)
const [,, message] = await emittedOnce(w.webContents, 'console-message')
const [,, message] = await emittedUntil(w.webContents, 'console-message', messageContainsSecurityWarning)
expect(message).to.include('Node.js Integration with Remote Content')
})
it('should not warn about Node.js integration with remote content from localhost', (done) => {
it('should not warn about Node.js integration with remote content from localhost', async () => {
w = new BrowserWindow({
show: false,
webPreferences: {
nodeIntegration: true
}
})
w.webContents.once('console-message', (e, level, message) => {
expect(message).to.not.include('Node.js Integration with Remote Content')
if (message === 'loaded') {
done()
}
})
w.loadURL(`${serverUrl}/base-page-security-onload-message.html`)
const [,, message] = await emittedUntil(w.webContents, 'console-message', isLoaded)
expect(message).to.not.include('Node.js Integration with Remote Content')
})
const generateSpecs = (description: string, webPreferences: WebPreferences) => {
@ -107,7 +110,7 @@ describe('security warnings', () => {
})
w.loadURL(`${serverUrl}/base-page-security.html`)
const [,, message] = await emittedOnce(w.webContents, 'console-message')
const [,, message] = await emittedUntil(w.webContents, 'console-message', messageContainsSecurityWarning)
expect(message).to.include('Disabled webSecurity')
})
@ -122,7 +125,7 @@ describe('security warnings', () => {
useCsp = false
w.loadURL(`${serverUrl}/base-page-security.html`)
const [,, message] = await emittedOnce(w.webContents, 'console-message')
const [,, message] = await emittedUntil(w.webContents, 'console-message', messageContainsSecurityWarning)
expect(message).to.include('Insecure Content-Security-Policy')
})
@ -136,7 +139,7 @@ describe('security warnings', () => {
})
w.loadURL(`${serverUrl}/base-page-security.html`)
const [,, message] = await emittedOnce(w.webContents, 'console-message')
const [,, message] = await emittedUntil(w.webContents, 'console-message', messageContainsSecurityWarning)
expect(message).to.include('allowRunningInsecureContent')
})
@ -150,7 +153,7 @@ describe('security warnings', () => {
})
w.loadURL(`${serverUrl}/base-page-security.html`)
const [,, message] = await emittedOnce(w.webContents, 'console-message')
const [,, message] = await emittedUntil(w.webContents, 'console-message', messageContainsSecurityWarning)
expect(message).to.include('experimentalFeatures')
})
@ -164,7 +167,7 @@ describe('security warnings', () => {
})
w.loadURL(`${serverUrl}/base-page-security.html`)
const [,, message] = await emittedOnce(w.webContents, 'console-message')
const [,, message] = await emittedUntil(w.webContents, 'console-message', messageContainsSecurityWarning)
expect(message).to.include('enableBlinkFeatures')
})
@ -175,7 +178,7 @@ describe('security warnings', () => {
})
w.loadURL(`${serverUrl}/webview-allowpopups.html`)
const [,, message] = await emittedOnce(w.webContents, 'console-message')
const [,, message] = await emittedUntil(w.webContents, 'console-message', messageContainsSecurityWarning)
expect(message).to.include('allowpopups')
})
@ -186,7 +189,7 @@ describe('security warnings', () => {
})
w.loadURL(`${serverUrl}/insecure-resources.html`)
const [,, message] = await emittedOnce(w.webContents, 'console-message')
const [,, message] = await emittedUntil(w.webContents, 'console-message', messageContainsSecurityWarning)
expect(message).to.include('Insecure Resources')
})
@ -197,7 +200,7 @@ describe('security warnings', () => {
})
w.loadURL(`${serverUrl}/insecure-resources.html`)
const [,, message] = await emittedOnce(w.webContents, 'console-message')
const [,, message] = await emittedUntil(w.webContents, 'console-message', messageContainsSecurityWarning)
expect(message).to.not.include('insecure-resources.html')
})
@ -208,24 +211,18 @@ describe('security warnings', () => {
})
w.loadURL(`${serverUrl}/base-page-security.html`)
const [,, message] = await emittedOnce(w.webContents, 'console-message')
const [,, message] = await emittedUntil(w.webContents, 'console-message', messageContainsSecurityWarning)
expect(message).to.include('enableRemoteModule')
})
it('should not warn about enabled remote module with remote content from localhost', (done) => {
it('should not warn about enabled remote module with remote content from localhost', async () => {
w = new BrowserWindow({
show: false,
webPreferences
})
w.webContents.once('console-message', (e, level, message) => {
expect(message).to.not.include('enableRemoteModule')
if (message === 'loaded') {
done()
}
})
w.loadURL(`${serverUrl}/base-page-security-onload-message.html`)
const [,, message] = await emittedUntil(w.webContents, 'console-message', isLoaded)
expect(message).to.not.include('enableRemoteModule')
})
})
}

View file

@ -11,7 +11,7 @@
"chai": "^4.2.0",
"chai-as-promised": "^7.1.1",
"coffeescript": "^2.4.1",
"dbus-native": "github:nornagon/dbus-native#master",
"dbus-native": "github:jkleinsc/dbus-native#master",
"dirty-chai": "^2.0.1",
"graceful-fs": "^4.1.15",
"is-valid-window": "0.0.5",
@ -28,10 +28,6 @@
"ws": "^6.1.4",
"yargs": "^12.0.5"
},
"optionalDependencies": {
"abstract-socket": "github:nornagon/node-abstractsocket#v8-compat",
"robotjs": "github:octalmage/robotjs#d870ddb486e893361e10d23d32c95c9d2b4710c9"
},
"dependencies": {
"mocha-appveyor-reporter": "^0.4.2"
}

View file

@ -7,17 +7,9 @@
resolved "https://registry.yarnpkg.com/@nornagon/put/-/put-0.0.8.tgz#9d497ec46c9364acc3f8b59aa3cf8ee4134ae337"
integrity sha512-ugvXJjwF5ldtUpa7D95kruNJ41yFQDEKyF5CW4TgKJnh+W/zmlBzXXeKTyqIgwMFrkePN2JqOBqcF0M0oOunow==
abstract-socket@^2.0.0:
"abstract-socket@github:saghul/node-abstractsocket#35b1b1491fabc04899bde5be3428abf5cf9cd528":
version "2.1.0"
resolved "https://registry.yarnpkg.com/abstract-socket/-/abstract-socket-2.1.0.tgz#a57193dbbf585991b0dc811d7b18e053ff846f8a"
integrity sha512-rZ3G6Eqkdi/9PzYu03Xt1QEZ9aHYTnUpxLyV5EtjM/06BCDzYORTAfmCRAL6jIj98YqVviKGgt1qXcFUsM4e0w==
dependencies:
bindings "^1.2.1"
nan "^2.12.1"
"abstract-socket@github:nornagon/node-abstractsocket#v8-compat":
version "2.1.0"
resolved "https://codeload.github.com/nornagon/node-abstractsocket/tar.gz/10c40472a0132c14451d1d8e4fdf534b00dc3797"
resolved "https://codeload.github.com/saghul/node-abstractsocket/tar.gz/35b1b1491fabc04899bde5be3428abf5cf9cd528"
dependencies:
bindings "^1.2.1"
nan "^2.12.1"
@ -197,9 +189,9 @@ check-error@^1.0.2:
integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
chownr@^1.0.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
version "1.1.3"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142"
integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==
cliui@^4.0.0:
version "4.1.0"
@ -270,9 +262,9 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
"dbus-native@github:nornagon/dbus-native#master":
"dbus-native@github:jkleinsc/dbus-native#master":
version "0.4.0"
resolved "https://codeload.github.com/nornagon/dbus-native/tar.gz/b90ed62d0b5cb93909173c3e0551d9bff0602a90"
resolved "https://codeload.github.com/jkleinsc/dbus-native/tar.gz/bb7cba24533fac70f81b92f8357211a84f6e0c1f"
dependencies:
"@nornagon/put" "0.0.8"
event-stream "^4.0.0"
@ -282,7 +274,7 @@ dashdash@^1.12.0:
safe-buffer "^5.1.1"
xml2js "^0.4.17"
optionalDependencies:
abstract-socket "^2.0.0"
abstract-socket "github:saghul/node-abstractsocket#35b1b1491fabc04899bde5be3428abf5cf9cd528"
debug@2.6.9, debug@^2.2.0:
version "2.6.9"
@ -387,7 +379,14 @@ encodeurl@~1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
end-of-stream@^1.0.0:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
end-of-stream@^1.1.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
@ -666,11 +665,16 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@2.0.3, inherits@~2.0.3:
inherits@2, inherits@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
@ -945,9 +949,9 @@ nice-try@^1.0.4:
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
node-abi@^2.2.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.8.0.tgz#bd2e88dbe6a6871e6dd08553e0605779325737ec"
integrity sha512-1/aa2clS0pue0HjckL62CsbhWWU35HARvBDXcJtYKbYR7LnIutmpxmXbuDMV9kEviD2lP/wACOgWmmwljghHyQ==
version "2.11.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.11.0.tgz#b7dce18815057544a049be5ae75cd1fdc2e9ea59"
integrity sha512-kuy/aEg75u40v378WRllQ4ZexaXJiCvB68D2scDXclp/I4cRq6togpbOoKhmN07tns9Zldu51NNERo0wehfX9g==
dependencies:
semver "^5.4.1"
@ -1117,9 +1121,9 @@ prebuild-install@^2.1.1:
which-pm-runs "^1.0.0"
process-nextick-args@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
psl@^1.1.24:
version "1.2.0"
@ -1249,13 +1253,6 @@ rimraf@~2.6.2:
dependencies:
glob "^7.1.3"
"robotjs@github:octalmage/robotjs#d870ddb486e893361e10d23d32c95c9d2b4710c9":
version "0.5.1"
resolved "https://codeload.github.com/octalmage/robotjs/tar.gz/d870ddb486e893361e10d23d32c95c9d2b4710c9"
dependencies:
nan "^2.2.1"
prebuild-install "^2.1.1"
safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@ -1276,7 +1273,12 @@ sax@>=0.6.0:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
semver@^5.4.1, semver@^5.5.0:
semver@^5.4.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
semver@^5.5.0:
version "5.7.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
@ -1622,9 +1624,9 @@ xmlbuilder@~9.0.1:
integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
xtend@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
"y18n@^3.2.1 || ^4.0.0":
version "4.0.0"