From 7116c108d7ae6dd4f7e473eb5c86aa7818f5d4bd Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Thu, 21 Mar 2019 15:14:39 -0700 Subject: [PATCH 01/37] chore: update to chromium 75.0.3740.3 --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 1ea4b2df9d37..b4c2e14b1d76 100644 --- a/DEPS +++ b/DEPS @@ -10,7 +10,7 @@ gclient_gn_args = [ vars = { 'chromium_version': - '74.0.3729.58', + '75.0.3740.3', 'node_version': '2dc0f8811b2b295c08d797b8a11b030234c98502', From 0f990c3bdd7b15c8dd6c3b469b86e435acbcd846 Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Thu, 21 Mar 2019 15:28:59 -0700 Subject: [PATCH 02/37] update boringssl patches --- patches/common/boringssl/.patches | 1 - ...ub_key_null_in_ec_key_set_public_key.patch | 19 ------------------- 2 files changed, 20 deletions(-) delete mode 100644 patches/common/boringssl/handle_pub_key_null_in_ec_key_set_public_key.patch diff --git a/patches/common/boringssl/.patches b/patches/common/boringssl/.patches index 7af3d9819bb3..07c69fae2e1b 100644 --- a/patches/common/boringssl/.patches +++ b/patches/common/boringssl/.patches @@ -1,3 +1,2 @@ expose_ripemd160.patch expose_aes-cfb.patch -handle_pub_key_null_in_ec_key_set_public_key.patch diff --git a/patches/common/boringssl/handle_pub_key_null_in_ec_key_set_public_key.patch b/patches/common/boringssl/handle_pub_key_null_in_ec_key_set_public_key.patch deleted file mode 100644 index 711687aaa868..000000000000 --- a/patches/common/boringssl/handle_pub_key_null_in_ec_key_set_public_key.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jeremy Apthorp -Date: Mon, 4 Mar 2019 10:59:35 -0800 -Subject: handle pub_key == null in EC_KEY_set_public_key - - -diff --git a/crypto/fipsmodule/ec/ec_key.c b/crypto/fipsmodule/ec/ec_key.c -index 4bc12a073650f66f5ae8ba2beabb9a6fb2b21878..7e86ccb0d76c66f32fc05c7093c870d5da7b9994 100644 ---- a/crypto/fipsmodule/ec/ec_key.c -+++ b/crypto/fipsmodule/ec/ec_key.c -@@ -267,7 +267,7 @@ int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub_key) { - return 0; - } - -- if (EC_GROUP_cmp(key->group, pub_key->group, NULL) != 0) { -+ if (pub_key != NULL && EC_GROUP_cmp(key->group, pub_key->group, NULL) != 0) { - OPENSSL_PUT_ERROR(EC, EC_R_GROUP_MISMATCH); - return 0; - } From 2dc422234a984538ce026d0a34e550e012cdc554 Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Thu, 21 Mar 2019 15:45:52 -0700 Subject: [PATCH 03/37] update chromium patches --- patches/common/chromium/.patches | 1 - patches/common/chromium/add_realloc.patch | 2 +- .../chromium/allow_webview_file_url.patch | 4 +- ...ink-worker-enable-csp-in-file-scheme.patch | 2 +- patches/common/chromium/blink_file_path.patch | 4 +- .../common/chromium/blink_local_frame.patch | 2 +- .../common/chromium/blink_world_context.patch | 10 +- .../chromium/browser_compositor_mac.patch | 2 +- .../common/chromium/command-ismediakey.patch | 4 +- .../common/chromium/compositor_delegate.patch | 4 +- ...r_to_prevent_locking_scheme_registry.patch | 2 +- .../chromium/content_browser_main_loop.patch | 4 +- patches/common/chromium/dcheck.patch | 2 +- .../common/chromium/disable-redraw-lock.patch | 14 +-- .../disable_detach_webview_frame.patch | 2 +- .../exclude-a-few-test-files-from-build.patch | 4 +- ...chdir_np_and_pthread_chdir_np_in_mas.patch | 6 +- ..._usage_of_setapplicationisdaemon_and.patch | 4 +- .../chromium/gritsettings_resource_ids.patch | 4 +- patches/common/chromium/ignore_rc_check.patch | 4 +- patches/common/chromium/mas-cfisobjc.patch | 6 +- .../chromium/mas_blink_no_private_api.patch | 6 +- .../chromium/no_cache_storage_check.patch | 4 +- .../chromium/notification_provenance.patch | 24 ++-- patches/common/chromium/printing.patch | 26 ++-- .../render_widget_host_view_base.patch | 12 +- .../render_widget_host_view_mac.patch | 12 +- .../chromium/resource_file_conflict.patch | 6 +- .../ssl_security_state_tab_helper.patch | 53 +++----- .../chromium/webgl_context_attributes.patch | 117 ------------------ .../common/chromium/webview_cross_drag.patch | 6 +- .../worker_context_will_destroy.patch | 24 ++-- 32 files changed, 119 insertions(+), 258 deletions(-) delete mode 100644 patches/common/chromium/webgl_context_attributes.patch diff --git a/patches/common/chromium/.patches b/patches/common/chromium/.patches index 28fccec27b9f..b5ccb10a5f58 100644 --- a/patches/common/chromium/.patches +++ b/patches/common/chromium/.patches @@ -17,7 +17,6 @@ render_widget_host_view_mac.patch stream_resource_handler.patch thread_capabilities.patch web_contents.patch -webgl_context_attributes.patch webview_cross_drag.patch worker_context_will_destroy.patch disable_user_gesture_requirement_for_beforeunload_dialogs.patch diff --git a/patches/common/chromium/add_realloc.patch b/patches/common/chromium/add_realloc.patch index 873c26b01ccf..475e35cb8687 100644 --- a/patches/common/chromium/add_realloc.patch +++ b/patches/common/chromium/add_realloc.patch @@ -39,7 +39,7 @@ 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 061543362fa67972d79d651432a0b3223eb9a559..bbf403607369dccb115f681e09cc1070d80ba35c 100644 +index 0fdf8ba729f7fabcc2779299bc591ee2dd1fa9ba..611b44c5b70166665b132cfde79d0b2f0ea5ddad 100644 --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc @@ -650,6 +650,10 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { diff --git a/patches/common/chromium/allow_webview_file_url.patch b/patches/common/chromium/allow_webview_file_url.patch index cf0007e1aa0a..5bbf724d2335 100644 --- a/patches/common/chromium/allow_webview_file_url.patch +++ b/patches/common/chromium/allow_webview_file_url.patch @@ -6,10 +6,10 @@ Subject: allow_webview_file_url.patch Allow webview to load non-web URLs. diff --git a/content/browser/loader/resource_dispatcher_host_impl.cc b/content/browser/loader/resource_dispatcher_host_impl.cc -index f6d8cf0e1b7373498739d6821a4b6b2725cf3c5c..3144e81cdb79b0b235385701c2eb81b6b9017213 100644 +index e06d2a5e9da5bd0218102636b5e8a0e981db31bc..af8db86dde165c087302d8bc5802e3dafde6a577 100644 --- a/content/browser/loader/resource_dispatcher_host_impl.cc +++ b/content/browser/loader/resource_dispatcher_host_impl.cc -@@ -1536,6 +1536,8 @@ void ResourceDispatcherHostImpl::BeginNavigationRequest( +@@ -1522,6 +1522,8 @@ void ResourceDispatcherHostImpl::BeginNavigationRequest( !policy->IsWebSafeScheme(info.common_params.url.scheme()) && !is_external_protocol; diff --git a/patches/common/chromium/blink-worker-enable-csp-in-file-scheme.patch b/patches/common/chromium/blink-worker-enable-csp-in-file-scheme.patch index 67fe29b39a6c..f3907198abc3 100644 --- a/patches/common/chromium/blink-worker-enable-csp-in-file-scheme.patch +++ b/patches/common/chromium/blink-worker-enable-csp-in-file-scheme.patch @@ -5,7 +5,7 @@ Subject: blink-worker-enable-csp-in-file-scheme.patch diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc -index 6575793a7df4eed2b1cc1cd59c559c591648c478..bf00aeb1df1dea4668a2d6645aefb578d1fc86e2 100644 +index 6e5842541701f0d094164914e5a53e60d7526d1e..9696f24f0f3edfbe9d9f78376956f0602e3a12aa 100644 --- a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc +++ b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc @@ -307,7 +307,6 @@ void WorkerClassicScriptLoader::ProcessContentSecurityPolicy( diff --git a/patches/common/chromium/blink_file_path.patch b/patches/common/chromium/blink_file_path.patch index 5c18e642ebe2..d15809b8019d 100644 --- a/patches/common/chromium/blink_file_path.patch +++ b/patches/common/chromium/blink_file_path.patch @@ -7,7 +7,7 @@ This is used by editors to obtain the filesystem path from a dragged file. See documentation at https://electronjs.org/docs/api/file-object diff --git a/third_party/blink/renderer/core/fileapi/file.h b/third_party/blink/renderer/core/fileapi/file.h -index 6ae1e8ed179717d630518eeddd1a6c453139605d..a7167220fa0bc93ee845bb1a48a65c49f137e6fe 100644 +index 3abff1a1e4de7978e01587cc1bf2b3deb4318161..5213d1c46dcc25de84c4b882454b1f7d079f237f 100644 --- a/third_party/blink/renderer/core/fileapi/file.h +++ b/third_party/blink/renderer/core/fileapi/file.h @@ -202,6 +202,9 @@ class CORE_EXPORT File final : public Blob { @@ -19,7 +19,7 @@ index 6ae1e8ed179717d630518eeddd1a6c453139605d..a7167220fa0bc93ee845bb1a48a65c49 + // Getter for the lastModified IDL attribute, // http://dev.w3.org/2006/webapi/FileAPI/#file-attrs - long long lastModified() const; + int64_t lastModified() const; diff --git a/third_party/blink/renderer/core/fileapi/file.idl b/third_party/blink/renderer/core/fileapi/file.idl index 940f8e62ce228beaf71f5a4be88539a431415ab1..0cf315636afe0e5e1533b3372cdfe2c09ec581e1 100644 --- a/third_party/blink/renderer/core/fileapi/file.idl diff --git a/patches/common/chromium/blink_local_frame.patch b/patches/common/chromium/blink_local_frame.patch index e3198ed0311f..b2cd000ba8b9 100644 --- a/patches/common/chromium/blink_local_frame.patch +++ b/patches/common/chromium/blink_local_frame.patch @@ -14,7 +14,7 @@ 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 a7b483e821fe73f4d725ae21b3182778024c5bed..aed4b5e3c72857173868b20a85cd341bcc990d2b 100644 +index 7bb3906762dbfe73e3c57d7c416168a2df8c99e4..64ef55ab3aa93c71fd58816ef2983e797f8dd75c 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc @@ -409,10 +409,6 @@ void LocalFrame::DetachImpl(FrameDetachType type) { diff --git a/patches/common/chromium/blink_world_context.patch b/patches/common/chromium/blink_world_context.patch index 45ea83bae907..c89aba070a7a 100644 --- a/patches/common/chromium/blink_world_context.patch +++ b/patches/common/chromium/blink_world_context.patch @@ -5,10 +5,10 @@ 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 fa0fca68d181f6783bb88e99f42697d5efbd3a49..93630884c3a3a4441645d76742796322f39653c3 100644 +index 611a2f6443a954f984e11c4cf84991c60f1ea08a..60afd4d8805da3d9fcb9f2a0fc0b857b550615eb 100644 --- a/third_party/blink/public/web/web_local_frame.h +++ b/third_party/blink/public/web/web_local_frame.h -@@ -348,6 +348,9 @@ class WebLocalFrame : public WebFrame { +@@ -350,6 +350,9 @@ class WebLocalFrame : public WebFrame { // be calling this API. virtual v8::Local MainWorldScriptContext() const = 0; @@ -19,10 +19,10 @@ index fa0fca68d181f6783bb88e99f42697d5efbd3a49..93630884c3a3a4441645d76742796322 // 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 6f19b08f41cf815e17d1d97870f5936771b8794c..9bc16c70f52e03e7f1c277c60f4aac802856d226 100644 +index 3ae069323d53af44a8c061ee3dd0efe558e20692..818f91e2744f1d8c7c02c665d17136c6cf992f89 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 -@@ -864,6 +864,13 @@ v8::Local WebLocalFrameImpl::GlobalProxy() const { +@@ -865,6 +865,13 @@ v8::Local WebLocalFrameImpl::GlobalProxy() const { return MainWorldScriptContext()->Global(); } @@ -37,7 +37,7 @@ index 6f19b08f41cf815e17d1d97870f5936771b8794c..9bc16c70f52e03e7f1c277c60f4aac80 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 1d365801c7094a1ea091b1ecfea7ab3d3527bcec..b0df9b3ca6d33fd187a3cbcd750603e4a7db98d3 100644 +index 84d256cad315d93a434a5878805c7114175df3a7..165ba0f0081755a3ece4aa6fdcfb653508bd6df4 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 @@ -148,6 +148,8 @@ class CORE_EXPORT WebLocalFrameImpl final diff --git a/patches/common/chromium/browser_compositor_mac.patch b/patches/common/chromium/browser_compositor_mac.patch index a8af0c2dc7dd..e8917c620b55 100644 --- a/patches/common/chromium/browser_compositor_mac.patch +++ b/patches/common/chromium/browser_compositor_mac.patch @@ -29,7 +29,7 @@ diff --git a/content/browser/renderer_host/browser_compositor_view_mac.mm b/cont index 0817b4eca4f4e6f7f5d250589c1e4dbcc068237c..dcc2340e59771e8d73de7e97fa2371d8bec7b149 100644 --- a/content/browser/renderer_host/browser_compositor_view_mac.mm +++ b/content/browser/renderer_host/browser_compositor_view_mac.mm -@@ -79,6 +79,12 @@ +@@ -79,6 +79,12 @@ BrowserCompositorMac::~BrowserCompositorMac() { DCHECK_EQ(1u, num_erased); } diff --git a/patches/common/chromium/command-ismediakey.patch b/patches/common/chromium/command-ismediakey.patch index 9eaf39e283d1..59eb8955feee 100644 --- a/patches/common/chromium/command-ismediakey.patch +++ b/patches/common/chromium/command-ismediakey.patch @@ -18,7 +18,7 @@ diff --git a/chrome/browser/extensions/global_shortcut_listener_mac.mm b/chrome/ index befe726af9c10b1563a7fc0bb77cc55f65943d5c..46c6fe08bab8471007f78d3ef227e5195bfdf0e1 100644 --- a/chrome/browser/extensions/global_shortcut_listener_mac.mm +++ b/chrome/browser/extensions/global_shortcut_listener_mac.mm -@@ -21,6 +21,26 @@ +@@ -21,6 +21,26 @@ using extensions::GlobalShortcutListenerMac; namespace extensions { @@ -104,7 +104,7 @@ index 71b417ee8b64aa2ff7f1b2390851668ec1dcd7cf..1768af408d4cc3075e5bae046649e495 } return VKEY_UNKNOWN; } -@@ -192,7 +198,10 @@ static CGEventRef EventTapCallback(CGEventTapProxy proxy, +@@ -192,7 +198,10 @@ CGEventRef MediaKeysListenerImpl::EventTapCallback(CGEventTapProxy proxy, int key_code = (data1 & 0xFFFF0000) >> 16; if (key_code != NX_KEYTYPE_PLAY && key_code != NX_KEYTYPE_NEXT && key_code != NX_KEYTYPE_PREVIOUS && key_code != NX_KEYTYPE_FAST && diff --git a/patches/common/chromium/compositor_delegate.patch b/patches/common/chromium/compositor_delegate.patch index f6708881efa1..94db91b26abb 100644 --- a/patches/common/chromium/compositor_delegate.patch +++ b/patches/common/chromium/compositor_delegate.patch @@ -5,10 +5,10 @@ Subject: compositor_delegate.patch diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc -index 4768ac1a3bac8dee0b146d2ad30a50c6aee330c4..531c862a7a01bd74775621115fade56025cd15c6 100644 +index ff4e3109b11fea4e0a732ebf9ac9c17e4b5d5e8e..09eee0aae0306545af49258a8f11813c06655023 100644 --- a/content/browser/compositor/gpu_process_transport_factory.cc +++ b/content/browser/compositor/gpu_process_transport_factory.cc -@@ -452,11 +452,20 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( +@@ -451,11 +451,20 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( // surfaces as they are not following the correct mode. DisableGpuCompositing(compositor.get()); } diff --git a/patches/common/chromium/content_allow_embedder_to_prevent_locking_scheme_registry.patch b/patches/common/chromium/content_allow_embedder_to_prevent_locking_scheme_registry.patch index ff45b07d2b6f..922639e3679b 100644 --- a/patches/common/chromium/content_allow_embedder_to_prevent_locking_scheme_registry.patch +++ b/patches/common/chromium/content_allow_embedder_to_prevent_locking_scheme_registry.patch @@ -12,7 +12,7 @@ Without this patch, calling `registerStandardSchemes` during initialization when in debug mode will cause a DCHECK to fire. diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc -index f006f0992df5b8192849799c2d3d546779d87a08..a63b9d5a95960cca15cde5e392cbe06a0325f517 100644 +index 010ecd6f98489d0945f0998bed2a3c6ff1ff7137..793004d877394bb89447db275cc8d0d8660d263a 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc @@ -757,7 +757,7 @@ int ContentMainRunnerImpl::Initialize(const ContentMainParams& params) { diff --git a/patches/common/chromium/content_browser_main_loop.patch b/patches/common/chromium/content_browser_main_loop.patch index 866d1333be5b..2ec100d889ac 100644 --- a/patches/common/chromium/content_browser_main_loop.patch +++ b/patches/common/chromium/content_browser_main_loop.patch @@ -8,10 +8,10 @@ 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 c964fa664130a1a1694cbe876df0d47d17f5818c..d9711114839e7b68ee4fe71590854833d8302b28 100644 +index f79b1a629779af2b991a1c95ad4e0d4a8ec6d217..28f2aaf4ef55e505e278719956277f1aefe0146a 100644 --- a/content/browser/browser_main_loop.cc +++ b/content/browser/browser_main_loop.cc -@@ -1547,7 +1547,7 @@ void BrowserMainLoop::MainMessageLoopRun() { +@@ -1548,7 +1548,7 @@ void BrowserMainLoop::MainMessageLoopRun() { } base::RunLoop run_loop; diff --git a/patches/common/chromium/dcheck.patch b/patches/common/chromium/dcheck.patch index 49734b818ebd..6383ab0dd71b 100644 --- a/patches/common/chromium/dcheck.patch +++ b/patches/common/chromium/dcheck.patch @@ -17,7 +17,7 @@ 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 90cfe806ba0bef2182f7a1cc7ad02c0010dc2136..e702bf2151aa9f6c3b1981ad9725d1d814494a31 100644 +index 922b03f6e0e529adde410a7b90a549613d47136e..a7845665caf99292b8179bb9ea6440710a9abe2d 100644 --- a/content/browser/frame_host/navigation_controller_impl.cc +++ b/content/browser/frame_host/navigation_controller_impl.cc @@ -1201,8 +1201,10 @@ NavigationType NavigationControllerImpl::ClassifyNavigation( diff --git a/patches/common/chromium/disable-redraw-lock.patch b/patches/common/chromium/disable-redraw-lock.patch index 9d32d1554860..08b41b4b0fa4 100644 --- a/patches/common/chromium/disable-redraw-lock.patch +++ b/patches/common/chromium/disable-redraw-lock.patch @@ -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 3703f163d2370292912d969395eccf372284db73..bedfaf0ebfefc5dcca530b8aaab4a829017f3fb9 100644 +index 3046987d5e26d38f3098a21af48e3b115bdadaf7..b484e4b4c1a7872e0c9ae9622370d9a71c5d96c8 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -290,6 +290,10 @@ const int kSynthesizedMouseMessagesTimeDifference = 500; +@@ -284,6 +284,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500; } // namespace @@ -29,7 +29,7 @@ index 3703f163d2370292912d969395eccf372284db73..bedfaf0ebfefc5dcca530b8aaab4a829 // 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. // -@@ -341,6 +345,7 @@ class HWNDMessageHandler::ScopedRedrawLock { +@@ -335,6 +339,7 @@ class HWNDMessageHandler::ScopedRedrawLock { cancel_unlock_(false), should_lock_(owner_->IsVisible() && !owner->HasChildRenderingWindow() && ::IsWindow(hwnd_) && @@ -37,7 +37,7 @@ index 3703f163d2370292912d969395eccf372284db73..bedfaf0ebfefc5dcca530b8aaab4a829 (!(GetWindowLong(hwnd_, GWL_STYLE) & WS_CAPTION) || !ui::win::IsAeroGlassEnabled())) { if (should_lock_) -@@ -942,6 +947,10 @@ bool HWNDMessageHandler::HasChildRenderingWindow() { +@@ -936,6 +941,10 @@ bool HWNDMessageHandler::HasChildRenderingWindow() { hwnd()); } @@ -49,11 +49,11 @@ index 3703f163d2370292912d969395eccf372284db73..bedfaf0ebfefc5dcca530b8aaab4a829 // HWNDMessageHandler, gfx::WindowImpl overrides: diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h -index 925996e356994bf27939565beb9663c4416de1bc..8c2b5fc09da64a4766c1918eee34d4cfe651958d 100644 +index 3f0c9e26627f9dcda04418a6551f4c815aeb4972..b66321d0e2d93dc436fe24d93e65fad00bf3f42a 100644 --- a/ui/views/win/hwnd_message_handler.h +++ b/ui/views/win/hwnd_message_handler.h @@ -183,6 +183,8 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl, - typedef std::set TouchIDs; + using TouchIDs = std::set; enum class DwmFrameState { OFF, ON }; + bool HasNativeFrame(); @@ -62,7 +62,7 @@ index 925996e356994bf27939565beb9663c4416de1bc..8c2b5fc09da64a4766c1918eee34d4cf HICON GetDefaultWindowIcon() const override; HICON GetSmallWindowIcon() const override; diff --git a/ui/views/win/hwnd_message_handler_delegate.h b/ui/views/win/hwnd_message_handler_delegate.h -index a3c4e34bd26891e1bb98bc47038700da7e5a6b94..a919147ef1d46fe562ac74cdf515ae2d3ff8e2c4 100644 +index 3b06661ed6d694a6209f8584065391e074e3e6b3..c8d2583db0b102628f53f554785e5282d8008830 100644 --- a/ui/views/win/hwnd_message_handler_delegate.h +++ b/ui/views/win/hwnd_message_handler_delegate.h @@ -46,6 +46,8 @@ class VIEWS_EXPORT HWNDMessageHandlerDelegate { diff --git a/patches/common/chromium/disable_detach_webview_frame.patch b/patches/common/chromium/disable_detach_webview_frame.patch index 7801999c6c85..2a46a56bff52 100644 --- a/patches/common/chromium/disable_detach_webview_frame.patch +++ b/patches/common/chromium/disable_detach_webview_frame.patch @@ -12,7 +12,7 @@ this patch was introduced in Chrome 66. Update(zcbenz): The bug is still in Chrome 72. diff --git a/content/browser/frame_host/render_frame_proxy_host.cc b/content/browser/frame_host/render_frame_proxy_host.cc -index 59ce8f3cbb143f97371bba507dc851bcf0fbfe00..5101f19660f3519e74dde7fa6d9533666a2629df 100644 +index 3260ea62afa77c902580869dd6b7a652f8b69c34..152de4b65d9140f2d0ada72d2a22b2a7cfe97681 100644 --- a/content/browser/frame_host/render_frame_proxy_host.cc +++ b/content/browser/frame_host/render_frame_proxy_host.cc @@ -270,6 +270,12 @@ void RenderFrameProxyHost::SetDestructionCallback( diff --git a/patches/common/chromium/exclude-a-few-test-files-from-build.patch b/patches/common/chromium/exclude-a-few-test-files-from-build.patch index ae8503353ca9..bd50a3e22f4a 100644 --- a/patches/common/chromium/exclude-a-few-test-files-from-build.patch +++ b/patches/common/chromium/exclude-a-few-test-files-from-build.patch @@ -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 77b4b56becc7a0d6b2cc056f08adbe3459dae131..38f42acf2b7e97a4867b9b1064b3782eaf80a0c6 100644 +index 256f726a20a030d2b4ab7b528270669b8952cd10..38c68c1a8db0ec6fe57f8a74f62b1c5bd0620f95 100644 --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -1734,7 +1734,7 @@ jumbo_source_set("blink_platform_unittests_sources") { +@@ -1738,7 +1738,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", diff --git a/patches/common/chromium/fix_disable_usage_of_pthread_fchdir_np_and_pthread_chdir_np_in_mas.patch b/patches/common/chromium/fix_disable_usage_of_pthread_fchdir_np_and_pthread_chdir_np_in_mas.patch index 5a475f4a7ef4..e8d309cc93c5 100644 --- a/patches/common/chromium/fix_disable_usage_of_pthread_fchdir_np_and_pthread_chdir_np_in_mas.patch +++ b/patches/common/chromium/fix_disable_usage_of_pthread_fchdir_np_and_pthread_chdir_np_in_mas.patch @@ -5,10 +5,10 @@ Subject: fix: disable usage of pthread_fchdir_np and pthread_chdir_np in MAS builds diff --git a/base/process/launch_mac.cc b/base/process/launch_mac.cc -index a72c9f18f60293ba33a2007f28def704bc3c2f1b..b397584be8b518bd9800f63fd3a523298911b122 100644 +index c6d5cbbd5417a1b18a6cf94a681de6c671089e35..92d683619e8de505d5172a8ae09e6e67f28da96f 100644 --- a/base/process/launch_mac.cc +++ b/base/process/launch_mac.cc -@@ -24,10 +24,12 @@ +@@ -25,10 +25,12 @@ // descriptor. libpthread only exposes a syscall wrapper starting in // macOS 10.12, but the system call dates back to macOS 10.5. On older OSes, // the syscall is issued directly. @@ -21,7 +21,7 @@ index a72c9f18f60293ba33a2007f28def704bc3c2f1b..b397584be8b518bd9800f63fd3a52329 namespace base { -@@ -94,21 +96,29 @@ class PosixSpawnFileActions { +@@ -95,21 +97,29 @@ class PosixSpawnFileActions { }; int ChangeCurrentThreadDirectory(const char* path) { diff --git a/patches/common/chromium/fix_disable_usage_of_setapplicationisdaemon_and.patch b/patches/common/chromium/fix_disable_usage_of_setapplicationisdaemon_and.patch index 9a18c9c19d13..6d8cad870f7c 100644 --- a/patches/common/chromium/fix_disable_usage_of_setapplicationisdaemon_and.patch +++ b/patches/common/chromium/fix_disable_usage_of_setapplicationisdaemon_and.patch @@ -5,10 +5,10 @@ Subject: fix: disable usage of SetApplicationIsDaemon and _LSSetApplicationLaunchServicesServerConnectionStatus in MAS builds diff --git a/content/utility/utility_service_factory.cc b/content/utility/utility_service_factory.cc -index b8bc22e665f803aa455a8d3f270e3fd2141b2a9c..79c92be87aedf605803501d98a5a1952fa36e586 100644 +index a122c033798110b715c4c2b18d809ec360c06419..2d65f284d9e68f13e0ecb5bf5d9a3276e2a62686 100644 --- a/content/utility/utility_service_factory.cc +++ b/content/utility/utility_service_factory.cc -@@ -202,7 +202,7 @@ void UtilityServiceFactory::RunNetworkServiceOnIOThread( +@@ -205,7 +205,7 @@ void UtilityServiceFactory::RunNetworkServiceOnIOThread( std::unique_ptr UtilityServiceFactory::CreateAudioService( service_manager::mojom::ServiceRequest request) { diff --git a/patches/common/chromium/gritsettings_resource_ids.patch b/patches/common/chromium/gritsettings_resource_ids.patch index bcf90cab7de2..5b88c3b89d87 100644 --- a/patches/common/chromium/gritsettings_resource_ids.patch +++ b/patches/common/chromium/gritsettings_resource_ids.patch @@ -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 e823c9b9edfd1aaac4909d8926e729ef79f25d70..2810e6b743507257f23a797c67ee23911c5745cf 100644 +index e271342ea2458afe618543a8ff475cf265fb1aca..8ef1d7c83a49ed6144898e045d8e195a0c658af4 100644 --- a/tools/gritsettings/resource_ids +++ b/tools/gritsettings/resource_ids -@@ -424,6 +424,11 @@ +@@ -427,6 +427,11 @@ "includes": [28880], }, diff --git a/patches/common/chromium/ignore_rc_check.patch b/patches/common/chromium/ignore_rc_check.patch index 903f711006b3..73474597cd2b 100644 --- a/patches/common/chromium/ignore_rc_check.patch +++ b/patches/common/chromium/ignore_rc_check.patch @@ -7,10 +7,10 @@ Dont compare RC.exe and RC.py output. FIXME: It has to be reverted once the script is fixed. diff --git a/build/toolchain/win/tool_wrapper.py b/build/toolchain/win/tool_wrapper.py -index 6f01ebf4026444d405cb3b837b21a6370c357180..d03be4244bfa37953b55783f2e245df76b634522 100644 +index f173adb20333998e22c5b937a3e7ce1b62e7ef1e..1b884b7a4badf9096a92068261f3e132181785f9 100644 --- a/build/toolchain/win/tool_wrapper.py +++ b/build/toolchain/win/tool_wrapper.py -@@ -220,7 +220,11 @@ class WinTool(object): +@@ -224,7 +224,11 @@ class WinTool(object): if rc_exe_exit_code == 0: import filecmp # Strip "/fo" prefix. diff --git a/patches/common/chromium/mas-cfisobjc.patch b/patches/common/chromium/mas-cfisobjc.patch index b20bd6f7530a..0aecb9c209a5 100644 --- a/patches/common/chromium/mas-cfisobjc.patch +++ b/patches/common/chromium/mas-cfisobjc.patch @@ -9,7 +9,7 @@ diff --git a/base/mac/foundation_util.mm b/base/mac/foundation_util.mm index 26a40417ae92c2e12c3901c50e1f101d9b0f57e9..810fbeae866a1507762703296fdd836dd3c9e4ba 100644 --- a/base/mac/foundation_util.mm +++ b/base/mac/foundation_util.mm -@@ -26,7 +26,6 @@ +@@ -26,7 +26,6 @@ CFTypeID SecKeyGetTypeID(); #if !defined(OS_IOS) CFTypeID SecACLGetTypeID(); CFTypeID SecTrustedApplicationGetTypeID(); @@ -17,7 +17,7 @@ index 26a40417ae92c2e12c3901c50e1f101d9b0f57e9..810fbeae866a1507762703296fdd836d #endif } // extern "C" -@@ -315,8 +314,7 @@ void SetBaseBundleID(const char* new_base_bundle_id) { +@@ -315,8 +314,7 @@ NSFont* CFToNSCast(CTFontRef cf_val) { const_cast(reinterpret_cast(cf_val)); DCHECK(!cf_val || CTFontGetTypeID() == CFGetTypeID(cf_val) || @@ -27,7 +27,7 @@ index 26a40417ae92c2e12c3901c50e1f101d9b0f57e9..810fbeae866a1507762703296fdd836d return ns_val; } -@@ -384,9 +382,6 @@ CTFontRef NSToCFCast(NSFont* ns_val) { +@@ -384,9 +382,6 @@ CFCast(const CFTypeRef& cf_val) { return (CTFontRef)(cf_val); } diff --git a/patches/common/chromium/mas_blink_no_private_api.patch b/patches/common/chromium/mas_blink_no_private_api.patch index 3870d2481d5d..d687746c3ece 100644 --- a/patches/common/chromium/mas_blink_no_private_api.patch +++ b/patches/common/chromium/mas_blink_no_private_api.patch @@ -18,7 +18,7 @@ index 94afefcee81b87c05bf9b1199d90d3d4b5ea84a6..2ec7f04c71824b47de1ddbf1f0e8625d extern "C" { // Kill ring calls. Would be better to use NSKillRing.h, but that's not -@@ -39,38 +40,53 @@ +@@ -39,38 +40,53 @@ NSString* _NSYankFromKillRing(); void _NSNewKillRingSequence(); void _NSSetKillRingToYankedState(); } @@ -92,7 +92,7 @@ index 7a1260db0a139f9f3f8a823af2c220f36162812a..bf9cf7046e2fc9cdfee5b92f2a348185 namespace blink { -@@ -73,10 +75,12 @@ void _NSDrawCarbonThemeListBox(NSRect frame, +@@ -73,10 +75,12 @@ bool ThemePainterMac::PaintTextField(const Node* node, // behavior change while remaining a fragile solution. // https://bugs.chromium.org/p/chromium/issues/detail?id=658085#c3 if (!use_ns_text_field_cell) { @@ -105,7 +105,7 @@ index 7a1260db0a139f9f3f8a823af2c220f36162812a..bf9cf7046e2fc9cdfee5b92f2a348185 return false; } -@@ -162,10 +166,12 @@ void _NSDrawCarbonThemeListBox(NSRect frame, +@@ -162,10 +166,12 @@ bool ThemePainterMac::PaintTextArea(const Node* node, const PaintInfo& paint_info, const IntRect& r) { LocalCurrentGraphicsContext local_context(paint_info.context, r); diff --git a/patches/common/chromium/no_cache_storage_check.patch b/patches/common/chromium/no_cache_storage_check.patch index c832023fdd18..3ee51d95a3d9 100644 --- a/patches/common/chromium/no_cache_storage_check.patch +++ b/patches/common/chromium/no_cache_storage_check.patch @@ -7,10 +7,10 @@ Do not check for unique origin in CacheStorage, in Electron we may have scripts running without an origin. diff --git a/content/browser/cache_storage/cache_storage.cc b/content/browser/cache_storage/cache_storage.cc -index 9e0249a6060b4d84cd8a99db2e40d96b4e715148..2e8e12de9778eeb2bc45e293b6653feeb5b6f779 100644 +index 8ccf3c92c3edd453e0ff3a314d344187056d818b..25e78ca803256ea0115e72c2a3f583c466e2b944 100644 --- a/content/browser/cache_storage/cache_storage.cc +++ b/content/browser/cache_storage/cache_storage.cc -@@ -103,7 +103,7 @@ class CacheStorage::CacheLoader { +@@ -106,7 +106,7 @@ class CacheStorage::CacheLoader { cache_storage_(cache_storage), origin_(origin), owner_(owner) { diff --git a/patches/common/chromium/notification_provenance.patch b/patches/common/chromium/notification_provenance.patch index 5a30ecd30d79..bf3e3f442c68 100644 --- a/patches/common/chromium/notification_provenance.patch +++ b/patches/common/chromium/notification_provenance.patch @@ -31,7 +31,7 @@ index f251139f5976d4ff52ac4d0f89a2c627c1809c8a..457890dcb49ca59c61326c633d74eabc } diff --git a/content/browser/notifications/blink_notification_service_impl.h b/content/browser/notifications/blink_notification_service_impl.h -index 088637b68b1fb40fb8a32bb72781b425077e668a..ec2cce6b644e6cc8fd899a761fb55d9a01b65f98 100644 +index cc5f8d1e673962cb435ad9c9547c336ad5542c84..c340739dc78519606081e4190d4538a74e72501a 100644 --- a/content/browser/notifications/blink_notification_service_impl.h +++ b/content/browser/notifications/blink_notification_service_impl.h @@ -36,6 +36,7 @@ class CONTENT_EXPORT BlinkNotificationServiceImpl @@ -51,7 +51,7 @@ index 088637b68b1fb40fb8a32bb72781b425077e668a..ec2cce6b644e6cc8fd899a761fb55d9a scoped_refptr service_worker_context_; diff --git a/content/browser/notifications/blink_notification_service_impl_unittest.cc b/content/browser/notifications/blink_notification_service_impl_unittest.cc -index a2fb2bbd8761b0c0078fbde0999f4f8f434c4a35..e68613c4a4c6b05694514071c7dc2e0c4419d141 100644 +index 8beb9e516bcf636e95f7481837e67e197422d830..d9fc224db4704057e8cb1596173310d8392bc7d7 100644 --- a/content/browser/notifications/blink_notification_service_impl_unittest.cc +++ b/content/browser/notifications/blink_notification_service_impl_unittest.cc @@ -130,7 +130,7 @@ class BlinkNotificationServiceImplTest : public ::testing::Test { @@ -64,10 +64,10 @@ index a2fb2bbd8761b0c0078fbde0999f4f8f434c4a35..e68613c4a4c6b05694514071c7dc2e0c mojo::MakeRequest(¬ification_service_ptr_)); diff --git a/content/browser/notifications/platform_notification_context_impl.cc b/content/browser/notifications/platform_notification_context_impl.cc -index 9d43b4e8cbd0238fdcde03e31537a68c4edb9471..ba5a87e8fca4680e7acd173111d5882a8f0667f9 100644 +index 739a98f2846f0e680e5b175c19692edf754a2bc7..2e9e406e066c750d7fb80ab719265df3e2dba38e 100644 --- a/content/browser/notifications/platform_notification_context_impl.cc +++ b/content/browser/notifications/platform_notification_context_impl.cc -@@ -178,12 +178,13 @@ void PlatformNotificationContextImpl::Shutdown() { +@@ -182,12 +182,13 @@ void PlatformNotificationContextImpl::Shutdown() { } void PlatformNotificationContextImpl::CreateService( @@ -84,10 +84,10 @@ index 9d43b4e8cbd0238fdcde03e31537a68c4edb9471..ba5a87e8fca4680e7acd173111d5882a void PlatformNotificationContextImpl::RemoveService( diff --git a/content/browser/notifications/platform_notification_context_impl.h b/content/browser/notifications/platform_notification_context_impl.h -index c7c9bc8fb304697bb1802d04e26038c65b8facdc..e73d2b0a276d4a0a7d1a484d11d5ac43d963cc77 100644 +index 24918cede3f2894627c7aaa29e68fa3834bea108..b31583d13a73c72f5a27587add92855472f30dc8 100644 --- a/content/browser/notifications/platform_notification_context_impl.h +++ b/content/browser/notifications/platform_notification_context_impl.h -@@ -25,6 +25,7 @@ +@@ -24,6 +24,7 @@ #include "content/common/content_export.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/platform_notification_context.h" @@ -95,7 +95,7 @@ index c7c9bc8fb304697bb1802d04e26038c65b8facdc..e73d2b0a276d4a0a7d1a484d11d5ac43 #include "third_party/blink/public/platform/modules/notifications/notification_service.mojom.h" class GURL; -@@ -66,7 +67,8 @@ class CONTENT_EXPORT PlatformNotificationContextImpl +@@ -65,7 +66,8 @@ class CONTENT_EXPORT PlatformNotificationContextImpl void Shutdown(); // Creates a BlinkNotificationServiceImpl that is owned by this context. @@ -119,10 +119,10 @@ index b317a37b4fa12be4e737a91948110fd16308c221..b3968f52c478ce051370e543b2fb9043 parameterized_binder_registry_.AddInterface( base::BindRepeating(&BackgroundFetchServiceImpl::CreateForWorker)); diff --git a/content/public/browser/platform_notification_service.h b/content/public/browser/platform_notification_service.h -index c7209a74a84ae4a284170ba882ee537cb732d467..4960a11bc922fd79c00bf418e1468f09f0457407 100644 +index b8aaa76d1ffcf92251fd7f229a8e075aba5b2ce3..ab1151f63ff0f21cad5747f5f96afe89d9207107 100644 --- a/content/public/browser/platform_notification_service.h +++ b/content/public/browser/platform_notification_service.h -@@ -27,6 +27,7 @@ struct PlatformNotificationData; +@@ -28,6 +28,7 @@ struct PlatformNotificationData; namespace content { class BrowserContext; @@ -130,7 +130,7 @@ index c7209a74a84ae4a284170ba882ee537cb732d467..4960a11bc922fd79c00bf418e1468f09 // The service using which notifications can be presented to the user. There // should be a unique instance of the PlatformNotificationService depending -@@ -42,6 +43,7 @@ class CONTENT_EXPORT PlatformNotificationService { +@@ -43,6 +44,7 @@ class CONTENT_EXPORT PlatformNotificationService { // Displays the notification described in |notification_data| to the user. // This method must be called on the UI thread. virtual void DisplayNotification( @@ -139,7 +139,7 @@ index c7209a74a84ae4a284170ba882ee537cb732d467..4960a11bc922fd79c00bf418e1468f09 const std::string& notification_id, const GURL& origin, diff --git a/content/test/mock_platform_notification_service.cc b/content/test/mock_platform_notification_service.cc -index 7d16ee63cd349c107a0a0c35446cef557be1aed1..ac9860af1234d2c451525bbd924b79fb32f99015 100644 +index a313cb378e5623b9e55786829e0043974c0cb294..26deae4aa831e050035afb294673d7861c4c7578 100644 --- a/content/test/mock_platform_notification_service.cc +++ b/content/test/mock_platform_notification_service.cc @@ -26,6 +26,7 @@ MockPlatformNotificationService::MockPlatformNotificationService() = default; @@ -151,7 +151,7 @@ index 7d16ee63cd349c107a0a0c35446cef557be1aed1..ac9860af1234d2c451525bbd924b79fb const std::string& notification_id, const GURL& origin, diff --git a/content/test/mock_platform_notification_service.h b/content/test/mock_platform_notification_service.h -index 89aad27b34da99fc90e2d0352994eb3baa64fae4..0c8b8dbdacc83006c53fd85894d95c8fa01166d8 100644 +index 9488023df808cfd6633b3ab9b02d66a1bd929d29..d16e9394d1eea6bc657d1a07a1d09c52a7692bdd 100644 --- a/content/test/mock_platform_notification_service.h +++ b/content/test/mock_platform_notification_service.h @@ -45,6 +45,7 @@ class MockPlatformNotificationService : public PlatformNotificationService { diff --git a/patches/common/chromium/printing.patch b/patches/common/chromium/printing.patch index 9d986a0c0a55..260dde1d5f25 100644 --- a/patches/common/chromium/printing.patch +++ b/patches/common/chromium/printing.patch @@ -283,10 +283,10 @@ index 1802034a6e15a6ad8b0d9591cfb79ba5873dc982..a827091facdb4f6b1d74ce826c3492ce // 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 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de899d90965 100644 +index 222db5c6b09900001fa835c6dcbd0b200b467a0a..dd85f247d6267aa97fced685991cd2efa617638c 100644 --- a/components/printing/renderer/print_render_frame_helper.cc +++ b/components/printing/renderer/print_render_frame_helper.cc -@@ -1108,7 +1108,9 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { +@@ -1109,7 +1109,9 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { web_frame->DispatchBeforePrintEvent(); if (!weak_this) return; @@ -297,7 +297,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 if (weak_this) web_frame->DispatchAfterPrintEvent(); } -@@ -1156,7 +1158,10 @@ void PrintRenderFrameHelper::OnDestruct() { +@@ -1157,7 +1159,10 @@ void PrintRenderFrameHelper::OnDestruct() { delete this; } @@ -309,7 +309,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 if (ipc_nesting_level_ > 1) return; -@@ -1169,7 +1174,8 @@ void PrintRenderFrameHelper::OnPrintPages() { +@@ -1170,7 +1175,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); @@ -319,7 +319,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 if (weak_this) frame->DispatchAfterPrintEvent(); // WARNING: |this| may be gone at this point. Do not do any more work here and -@@ -1186,7 +1192,7 @@ void PrintRenderFrameHelper::OnPrintForSystemDialog() { +@@ -1187,7 +1193,7 @@ void PrintRenderFrameHelper::OnPrintForSystemDialog() { } auto weak_this = weak_ptr_factory_.GetWeakPtr(); Print(frame, print_preview_context_.source_node(), @@ -328,7 +328,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 if (weak_this) frame->DispatchAfterPrintEvent(); // WARNING: |this| may be gone at this point. Do not do any more work here and -@@ -1222,6 +1228,8 @@ void PrintRenderFrameHelper::OnPrintPreview( +@@ -1223,6 +1229,8 @@ void PrintRenderFrameHelper::OnPrintPreview( if (ipc_nesting_level_ > 1) return; @@ -337,7 +337,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 print_preview_context_.OnPrintPreview(); UMA_HISTOGRAM_ENUMERATION("PrintPreview.PreviewEvent", -@@ -1615,7 +1623,10 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1616,7 +1624,10 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { auto self = weak_ptr_factory_.GetWeakPtr(); Print(duplicate_node.GetDocument().GetFrame(), duplicate_node, @@ -349,7 +349,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 // Check if |this| is still valid. if (!self) return; -@@ -1626,7 +1637,10 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1627,7 +1638,10 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, const blink::WebNode& node, @@ -361,7 +361,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 // If still not finished with earlier print request simply ignore. if (prep_frame_view_) return; -@@ -1634,7 +1648,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1635,7 +1649,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, FrameReference frame_ref(frame); int expected_page_count = 0; @@ -370,7 +370,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 DidFinishPrinting(FAIL_PRINT_INIT); return; // Failed to init print page settings. } -@@ -1654,8 +1668,9 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1655,8 +1669,9 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, PrintMsg_PrintPages_Params print_settings; auto self = weak_ptr_factory_.GetWeakPtr(); @@ -382,7 +382,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 // Check if |this| is still valid. if (!self) return; -@@ -1665,6 +1680,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1666,6 +1681,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, ? blink::kWebPrintScalingOptionSourceSize : scaling_option; SetPrintPagesParams(print_settings); @@ -390,7 +390,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 if (print_settings.params.dpi.IsEmpty() || !print_settings.params.document_cookie) { DidFinishPrinting(OK); // Release resources and fail silently on failure. -@@ -1853,10 +1869,24 @@ std::vector PrintRenderFrameHelper::GetPrintedPages( +@@ -1854,10 +1870,24 @@ std::vector PrintRenderFrameHelper::GetPrintedPages( return printed_pages; } @@ -418,7 +418,7 @@ index 40ea9d21b07a04fc9b32adf4c24106506afb3e2e..1ba13510f24659040e8a99c5399e6de8 // 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. -@@ -1876,12 +1906,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) { +@@ -1877,12 +1907,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) { return result; } diff --git a/patches/common/chromium/render_widget_host_view_base.patch b/patches/common/chromium/render_widget_host_view_base.patch index 342847ba501a..f22822d3e692 100644 --- a/patches/common/chromium/render_widget_host_view_base.patch +++ b/patches/common/chromium/render_widget_host_view_base.patch @@ -5,10 +5,10 @@ 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 2672a26d934d082d4c12c4c40db191963d5b789a..b25dada44e04f0299e11919e02c84d5c3a596668 100644 +index be38173457a659fb4b9d1922e416fe3e27420af2..95205c9eaabfdce44b66525c94aacf0b5cdefcc6 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.cc +++ b/content/browser/renderer_host/render_widget_host_view_base.cc -@@ -652,6 +652,15 @@ viz::FrameSinkId RenderWidgetHostViewBase::FrameSinkIdAtPoint( +@@ -658,6 +658,15 @@ viz::FrameSinkId RenderWidgetHostViewBase::FrameSinkIdAtPoint( return frame_sink_id.is_valid() ? frame_sink_id : GetFrameSinkId(); } @@ -25,7 +25,7 @@ index 2672a26d934d082d4c12c4c40db191963d5b789a..b25dada44e04f0299e11919e02c84d5c 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 8cdb72afa1bce774414fc494c1403630961611f2..1887ec9995909f9883fe06af4a9bbe65aca80958 100644 +index 6aa5e70a3e14064172182907a62007f9b4da38b8..b7419cc69eb0380461060d0ee6a2aac990643aef 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h @@ -23,8 +23,10 @@ @@ -52,9 +52,9 @@ index 8cdb72afa1bce774414fc494c1403630961611f2..1887ec9995909f9883fe06af4a9bbe65 class WebCursor; class DelegatedFrameHost; struct TextInputState; -@@ -142,6 +146,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase - TouchSelectionControllerClientManager* +@@ -143,6 +147,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase GetTouchSelectionControllerClientManager() override; + void SetLastTabChangeStartTime(base::TimeTicks start_time) final; + virtual void InitAsGuest(RenderWidgetHostView* parent_host_view, + RenderWidgetHostViewGuest* guest_view) {} @@ -62,7 +62,7 @@ index 8cdb72afa1bce774414fc494c1403630961611f2..1887ec9995909f9883fe06af4a9bbe65 // This only needs to be overridden by RenderWidgetHostViewBase subclasses // that handle content embedded within other RenderWidgetHostViews. gfx::PointF TransformPointToRootCoordSpaceF( -@@ -352,6 +359,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -362,6 +369,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase virtual void ProcessGestureEvent(const blink::WebGestureEvent& event, const ui::LatencyInfo& latency); diff --git a/patches/common/chromium/render_widget_host_view_mac.patch b/patches/common/chromium/render_widget_host_view_mac.patch index 481001c6e04b..6e2f583378af 100644 --- a/patches/common/chromium/render_widget_host_view_mac.patch +++ b/patches/common/chromium/render_widget_host_view_mac.patch @@ -5,7 +5,7 @@ Subject: render_widget_host_view_mac.patch diff --git a/content/browser/renderer_host/render_widget_host_view_cocoa.mm b/content/browser/renderer_host/render_widget_host_view_cocoa.mm -index ed18a0a46c22620850d4384e6bb82dba80a3b6d8..c940999eeec8fcf2a2a4514d0edd67f844979b41 100644 +index d04130dcb387a985c57fd0d94c10a8c327afe6f3..8d2ed9af59a8e9bbd242ab098cba7f75fc1e6a3e 100644 --- a/content/browser/renderer_host/render_widget_host_view_cocoa.mm +++ b/content/browser/renderer_host/render_widget_host_view_cocoa.mm @@ -142,6 +142,11 @@ void ExtractUnderlines(NSAttributedString* string, @@ -20,7 +20,7 @@ index ed18a0a46c22620850d4384e6bb82dba80a3b6d8..c940999eeec8fcf2a2a4514d0edd67f8 // These are not documented, so use only after checking -respondsToSelector:. @interface NSApplication (UndocumentedSpeechMethods) - (void)speakString:(NSString*)string; -@@ -403,6 +408,9 @@ - (BOOL)acceptsMouseEventsWhenInactive { +@@ -403,6 +408,9 @@ void ExtractUnderlines(NSAttributedString* string, } - (BOOL)acceptsFirstMouse:(NSEvent*)theEvent { @@ -30,7 +30,7 @@ index ed18a0a46c22620850d4384e6bb82dba80a3b6d8..c940999eeec8fcf2a2a4514d0edd67f8 return [self acceptsMouseEventsWhenInactive]; } -@@ -765,6 +773,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv { +@@ -786,6 +794,10 @@ void ExtractUnderlines(NSAttributedString* string, eventType == NSKeyDown && !(modifierFlags & NSCommandKeyMask); @@ -41,7 +41,7 @@ index ed18a0a46c22620850d4384e6bb82dba80a3b6d8..c940999eeec8fcf2a2a4514d0edd67f8 // We only handle key down events and just simply forward other events. if (eventType != NSKeyDown) { clientHelper_->ForwardKeyboardEvent(event, latency_info); -@@ -1513,9 +1525,11 @@ - (id)accessibilityFocusedUIElement { +@@ -1534,9 +1546,11 @@ void ExtractUnderlines(NSAttributedString* string, // Since this implementation doesn't have to wait any IPC calls, this doesn't // make any key-typing jank. --hbono 7/23/09 // @@ -53,7 +53,7 @@ index ed18a0a46c22620850d4384e6bb82dba80a3b6d8..c940999eeec8fcf2a2a4514d0edd67f8 - (NSArray*)validAttributesForMarkedText { // This code is just copied from WebKit except renaming variables. -@@ -1524,7 +1538,10 @@ - (NSArray*)validAttributesForMarkedText { +@@ -1545,7 +1559,10 @@ extern NSString* NSTextInputReplacementRangeAttributeName; initWithObjects:NSUnderlineStyleAttributeName, NSUnderlineColorAttributeName, NSMarkedClauseSegmentAttributeName, @@ -66,7 +66,7 @@ index ed18a0a46c22620850d4384e6bb82dba80a3b6d8..c940999eeec8fcf2a2a4514d0edd67f8 return validAttributesForMarkedText_.get(); } diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm -index f6937e35b3e4421a5584d6046ba824ac7e0d0847..b150724b7bee7ffe171a3095519ecd2ca9a38826 100644 +index cb067c08a07b2fafb056f0d1cfa3d6b39c521a88..74d4ddbf24a2441a4eaafcde932ad67df9c7c913 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -61,6 +61,7 @@ diff --git a/patches/common/chromium/resource_file_conflict.patch b/patches/common/chromium/resource_file_conflict.patch index beb77c36691d..5d972a3b3baf 100644 --- a/patches/common/chromium/resource_file_conflict.patch +++ b/patches/common/chromium/resource_file_conflict.patch @@ -52,10 +52,10 @@ 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 3bd3fb2b18fb6309b22d2ffff5b3372afd6e486d..523faaa6df78cac1b758f49f8180583c7682c85a 100644 +index 7e918a479736690e375182b8baf9de44af23aa43..f43097d5983ffabd58824da6a3005255635d4176 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -1650,7 +1650,7 @@ if (is_chrome_branded && !is_android) { +@@ -1646,7 +1646,7 @@ if (is_chrome_branded && !is_android) { } } @@ -64,7 +64,7 @@ index 3bd3fb2b18fb6309b22d2ffff5b3372afd6e486d..523faaa6df78cac1b758f49f8180583c chrome_paks("packed_resources") { if (is_mac) { output_dir = "$root_gen_dir/repack" -@@ -1674,6 +1674,12 @@ if (!is_android) { +@@ -1670,6 +1670,12 @@ if (!is_android) { } } diff --git a/patches/common/chromium/ssl_security_state_tab_helper.patch b/patches/common/chromium/ssl_security_state_tab_helper.patch index 4c8ae943d332..2185ee0d760a 100644 --- a/patches/common/chromium/ssl_security_state_tab_helper.patch +++ b/patches/common/chromium/ssl_security_state_tab_helper.patch @@ -6,7 +6,7 @@ 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 4c1b8bda5a8dbd52d0047e8945490d25c21a3164..2fcc2f9a2b233223b99d67df0f2ecaf02b464ae7 100644 +index 1ca339cf487763237d45b7ce2cead2459ecd7e93..754821b54f7c8e6b1653e201ca36bd26db842329 100644 --- a/chrome/browser/ssl/security_state_tab_helper.cc +++ b/chrome/browser/ssl/security_state_tab_helper.cc @@ -12,10 +12,12 @@ @@ -22,16 +22,18 @@ index 4c1b8bda5a8dbd52d0047e8945490d25c21a3164..2fcc2f9a2b233223b99d67df0f2ecaf0 #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" #include "chrome/common/secure_origin_whitelist.h" -@@ -42,7 +44,7 @@ - #include "chrome/browser/chromeos/policy/policy_cert_service_factory.h" +@@ -45,8 +47,10 @@ #endif // defined(OS_CHROMEOS) --#if defined(SAFE_BROWSING_DB_LOCAL) + #if defined(FULL_SAFE_BROWSING) +#if 0 #include "chrome/browser/safe_browsing/chrome_password_protection_service.h" #endif ++#endif -@@ -78,7 +80,9 @@ bool IsOriginSecureWithWhitelist( + namespace { + +@@ -82,7 +86,9 @@ bool IsOriginSecureWithWhitelist( } // namespace @@ -41,7 +43,7 @@ index 4c1b8bda5a8dbd52d0047e8945490d25c21a3164..2fcc2f9a2b233223b99d67df0f2ecaf0 SecurityStateTabHelper::SecurityStateTabHelper( content::WebContents* web_contents) -@@ -138,6 +142,7 @@ void SecurityStateTabHelper::DidFinishNavigation( +@@ -161,6 +167,7 @@ void SecurityStateTabHelper::DidFinishNavigation( UMA_HISTOGRAM_BOOLEAN("interstitial.ssl.visited_site_after_warning", true); } @@ -49,7 +51,7 @@ index 4c1b8bda5a8dbd52d0047e8945490d25c21a3164..2fcc2f9a2b233223b99d67df0f2ecaf0 // Security indicator UI study (https://crbug.com/803501): Show a message in // the console to reduce developer confusion about the experimental UI // treatments for HTTPS pages with EV certificates. -@@ -165,6 +170,7 @@ void SecurityStateTabHelper::DidFinishNavigation( +@@ -188,6 +195,7 @@ void SecurityStateTabHelper::DidFinishNavigation( "Validation is still valid."); } } @@ -57,7 +59,7 @@ index 4c1b8bda5a8dbd52d0047e8945490d25c21a3164..2fcc2f9a2b233223b99d67df0f2ecaf0 } void SecurityStateTabHelper::DidChangeVisibleSecurityState() { -@@ -190,6 +196,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const { +@@ -211,6 +219,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const { web_contents()->GetController().GetVisibleEntry(); if (!entry) return security_state::MALICIOUS_CONTENT_STATUS_NONE; @@ -65,7 +67,7 @@ index 4c1b8bda5a8dbd52d0047e8945490d25c21a3164..2fcc2f9a2b233223b99d67df0f2ecaf0 safe_browsing::SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service(); if (!sb_service) -@@ -257,6 +264,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const { +@@ -278,6 +287,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const { break; } } @@ -73,7 +75,7 @@ index 4c1b8bda5a8dbd52d0047e8945490d25c21a3164..2fcc2f9a2b233223b99d67df0f2ecaf0 return security_state::MALICIOUS_CONTENT_STATUS_NONE; } -@@ -275,15 +283,19 @@ std::vector SecurityStateTabHelper::GetSecureOriginsAndPatterns() +@@ -285,16 +295,20 @@ std::vector SecurityStateTabHelper::GetSecureOriginsAndPatterns() const { const base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); @@ -83,37 +85,14 @@ index 4c1b8bda5a8dbd52d0047e8945490d25c21a3164..2fcc2f9a2b233223b99d67df0f2ecaf0 PrefService* prefs = profile->GetPrefs(); +#endif std::string origins_str = ""; - if (command_line.HasSwitch(switches::kUnsafelyTreatInsecureOriginAsSecure)) { + if (command_line.HasSwitch( + network::switches::kUnsafelyTreatInsecureOriginAsSecure)) { origins_str = command_line.GetSwitchValueASCII( - switches::kUnsafelyTreatInsecureOriginAsSecure); + network::switches::kUnsafelyTreatInsecureOriginAsSecure); +#if 0 } else if (prefs->HasPrefPath(prefs::kUnsafelyTreatInsecureOriginAsSecure)) { origins_str = prefs->GetString(prefs::kUnsafelyTreatInsecureOriginAsSecure); +#endif } - return secure_origin_whitelist::ParseWhitelist(origins_str); + return network::ParseSecureOriginAllowlist(origins_str); } -diff --git a/chrome/common/secure_origin_whitelist.cc b/chrome/common/secure_origin_whitelist.cc -index b70d6ced887d2a2ecb576b20d79e7fc4272e2054..5a75fe115c3c77f4a9edf7913b47341a757d1b42 100644 ---- a/chrome/common/secure_origin_whitelist.cc -+++ b/chrome/common/secure_origin_whitelist.cc -@@ -13,7 +13,9 @@ - #include "chrome/common/chrome_switches.h" - #include "chrome/common/pref_names.h" - #include "components/prefs/pref_registry_simple.h" -+#if 0 - #include "extensions/common/constants.h" -+#endif - #include "net/base/registry_controlled_domains/registry_controlled_domain.h" - #include "url/gurl.h" - #include "url/origin.h" -@@ -163,7 +165,9 @@ std::vector GetWhitelist() { - - std::set GetSchemesBypassingSecureContextCheck() { - std::set schemes; -+#if 0 - schemes.insert(extensions::kExtensionScheme); -+#endif - return schemes; - } - diff --git a/patches/common/chromium/webgl_context_attributes.patch b/patches/common/chromium/webgl_context_attributes.patch deleted file mode 100644 index 9d77c900fd41..000000000000 --- a/patches/common/chromium/webgl_context_attributes.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Milan Burda -Date: Thu, 20 Sep 2018 17:47:01 -0700 -Subject: webgl_context_attributes.patch - - -diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc -index 1277a3b2c1e4d9ff61d7e4968831e03e57395c51..b9f3d081a6ff0309aa4f2133e42bc097addaaf4e 100644 ---- a/content/renderer/renderer_blink_platform_impl.cc -+++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -916,8 +916,10 @@ RendererBlinkPlatformImpl::CreateOffscreenGraphicsContext3DProvider( - attributes.sample_buffers = 0; - attributes.bind_generates_resource = false; - attributes.enable_raster_interface = web_attributes.enable_raster_interface; -- // Prefer discrete GPU for WebGL. -- attributes.gpu_preference = gl::PreferDiscreteGpu; -+ -+ attributes.gpu_preference = web_attributes.prefer_integrated_gpu -+ ? gl::PreferIntegratedGpu -+ : gl::PreferDiscreteGpu; - - attributes.fail_if_major_perf_caveat = - web_attributes.fail_if_major_performance_caveat; -diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h -index e89fff83c1c7795bc26831565d1bf25eda4195ae..d7ac7d96ad5c3e20075948c329a6d5ede0ae7a38 100644 ---- a/third_party/blink/public/platform/platform.h -+++ b/third_party/blink/public/platform/platform.h -@@ -538,6 +538,7 @@ class BLINK_PLATFORM_EXPORT Platform { - kWebGPUContextType, // WebGPU context - }; - struct ContextAttributes { -+ bool prefer_integrated_gpu = false; - bool fail_if_major_performance_caveat = false; - ContextType context_type = kGLES2ContextType; - // Offscreen contexts usually share a surface for the default frame buffer -diff --git a/third_party/blink/renderer/core/html/canvas/canvas_context_creation_attributes_core.h b/third_party/blink/renderer/core/html/canvas/canvas_context_creation_attributes_core.h -index 614e4e3a8737c1149baac1aedb985c6be62c9a84..3ae0b2a809532707ca9c8b3964737a1a5941e132 100644 ---- a/third_party/blink/renderer/core/html/canvas/canvas_context_creation_attributes_core.h -+++ b/third_party/blink/renderer/core/html/canvas/canvas_context_creation_attributes_core.h -@@ -30,6 +30,7 @@ class CORE_EXPORT CanvasContextCreationAttributesCore { - String pixel_format = "uint8"; - bool premultiplied_alpha = true; - bool preserve_drawing_buffer = false; -+ String power_preference = "default"; - bool stencil = false; - bool xr_compatible = false; - }; -diff --git a/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl b/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl -index ad9f867f46be2c652da9fd328517de6d87de31a7..b4f97a0fdc658a23d5d021172e32d68f68a7c38f 100644 ---- a/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl -+++ b/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl -@@ -28,6 +28,12 @@ enum CanvasPixelFormat { - "float16", - }; - -+enum CanvasPowerPreference { -+ "default", -+ "low-power", -+ "high-performance", -+}; -+ - [PermissiveDictionaryConversion] - dictionary CanvasContextCreationAttributesModule { - // This is an experimental feature, but it is not hidden behind a flag in -@@ -47,6 +53,7 @@ dictionary CanvasContextCreationAttributesModule { - boolean antialias = true; - boolean premultipliedAlpha = true; - boolean preserveDrawingBuffer = false; -+ CanvasPowerPreference powerPreference = "default"; - boolean failIfMajorPerformanceCaveat = false; - [OriginTrialEnabled=WebXR] boolean xrCompatible = false; - }; -diff --git a/third_party/blink/renderer/modules/webgl/webgl_context_attribute_helpers.cc b/third_party/blink/renderer/modules/webgl/webgl_context_attribute_helpers.cc -index 7a74942ab1f4495956d8e96ecd98b8028a20efa3..9a868cdb36ce468d3116379cfc04da28acfe010b 100644 ---- a/third_party/blink/renderer/modules/webgl/webgl_context_attribute_helpers.cc -+++ b/third_party/blink/renderer/modules/webgl/webgl_context_attribute_helpers.cc -@@ -17,6 +17,7 @@ WebGLContextAttributes* ToWebGLContextAttributes( - result->setAntialias(attrs.antialias); - result->setPremultipliedAlpha(attrs.premultiplied_alpha); - result->setPreserveDrawingBuffer(attrs.preserve_drawing_buffer); -+ result->setPowerPreference(attrs.power_preference); - result->setFailIfMajorPerformanceCaveat( - attrs.fail_if_major_performance_caveat); - result->setXrCompatible(attrs.xr_compatible); -@@ -29,6 +30,7 @@ Platform::ContextAttributes ToPlatformContextAttributes( - Platform::ContextType context_type, - bool support_own_offscreen_surface) { - Platform::ContextAttributes result; -+ result.prefer_integrated_gpu = attrs.power_preference == "low-power"; - result.fail_if_major_performance_caveat = - attrs.fail_if_major_performance_caveat; - result.context_type = context_type; -diff --git a/third_party/blink/renderer/modules/webgl/webgl_context_attributes.idl b/third_party/blink/renderer/modules/webgl/webgl_context_attributes.idl -index 725dbfb351e7556e137750d95104648c879dffc1..2e4df15a8dfe1a8ea504205e951a3d270e23ed46 100644 ---- a/third_party/blink/renderer/modules/webgl/webgl_context_attributes.idl -+++ b/third_party/blink/renderer/modules/webgl/webgl_context_attributes.idl -@@ -26,6 +26,12 @@ - - // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2 - -+enum WebGLPowerPreference { -+ "default", -+ "low-power", -+ "high-performance", -+}; -+ - dictionary WebGLContextAttributes { - boolean alpha = true; - boolean depth = true; -@@ -33,6 +39,7 @@ dictionary WebGLContextAttributes { - boolean antialias = true; - boolean premultipliedAlpha = true; - boolean preserveDrawingBuffer = false; -+ WebGLPowerPreference powerPreference = "default"; - boolean failIfMajorPerformanceCaveat = false; - [OriginTrialEnabled=WebXR] boolean xrCompatible = false; - // TODO(crbug.com/788439): remove OriginTrialEnabled. diff --git a/patches/common/chromium/webview_cross_drag.patch b/patches/common/chromium/webview_cross_drag.patch index 72ae5642d5c3..9ed2eef35d8f 100644 --- a/patches/common/chromium/webview_cross_drag.patch +++ b/patches/common/chromium/webview_cross_drag.patch @@ -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 3ae2cd85d98ebde08361b4dce810456b43b8cd1c..d8d1b975d0d88db8cf147e57763e30ce58d1eb17 100644 +index 0c15633445d75373cd6e2e7da773d6c318758e4e..0c1c53947153497d33fdf9b6841abe1fcbcf0fd8 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc -@@ -676,6 +676,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const { +@@ -575,6 +575,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const { bool WebContentsViewAura::IsValidDragTarget( RenderWidgetHostImpl* target_rwh) const { @@ -20,7 +20,7 @@ diff --git a/content/browser/web_contents/web_drag_dest_mac.mm b/content/browser index 9423f9c8a225f9d18f6dcd0b9f7de033cbe495df..e7fe311327f698a760c09db2c7677a10c59f5224 100644 --- a/content/browser/web_contents/web_drag_dest_mac.mm +++ b/content/browser/web_contents/web_drag_dest_mac.mm -@@ -336,6 +336,7 @@ - (void)setDragStartTrackersForProcess:(int)processID { +@@ -336,6 +336,7 @@ content::GlobalRoutingID GetRenderViewHostID(content::RenderViewHost* rvh) { } - (bool)isValidDragTarget:(content::RenderWidgetHostImpl*)targetRWH { diff --git a/patches/common/chromium/worker_context_will_destroy.patch b/patches/common/chromium/worker_context_will_destroy.patch index c9461b77d2cb..abab3a0bcb48 100644 --- a/patches/common/chromium/worker_context_will_destroy.patch +++ b/patches/common/chromium/worker_context_will_destroy.patch @@ -5,10 +5,10 @@ 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 3b5c53a10c8d6aa2e173a7e7788e8955c7299d4f..614f5f8296c13f127cb081d1b05c908a52c92daf 100644 +index b8da0451f5857d9bffa7dc913dcf0304da2325b4..566faeff313c1f23a209ddb4ee6194efb8fc11fb 100644 --- a/content/public/renderer/content_renderer_client.h +++ b/content/public/renderer/content_renderer_client.h -@@ -384,6 +384,11 @@ class CONTENT_EXPORT ContentRendererClient { +@@ -383,6 +383,11 @@ class CONTENT_EXPORT ContentRendererClient { virtual void DidInitializeWorkerContextOnWorkerThread( v8::Local context) {} @@ -21,10 +21,10 @@ index 3b5c53a10c8d6aa2e173a7e7788e8955c7299d4f..614f5f8296c13f127cb081d1b05c908a // 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 b9f3d081a6ff0309aa4f2133e42bc097addaaf4e..276a52e903658748d373e61be9b084a1f44519d1 100644 +index 84554504ddbcccf9bd85d8eea2f0d42b3ba5a1f6..9d756c084eb31ee4d74ba5f0fa5ca9294c15a66b 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -1064,6 +1064,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { +@@ -1083,6 +1083,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread(); } @@ -38,22 +38,22 @@ index b9f3d081a6ff0309aa4f2133e42bc097addaaf4e..276a52e903658748d373e61be9b084a1 const v8::Local& worker) { GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread( diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h -index 38ff3be9084334641d5537dda5b5fe5e8f9f8417..93c4dc904fd4f539faf48adc3c8770d052855050 100644 +index a1f782b108b160dc5837a225f313f4c056728471..001a84fdc47591e09730ba49bb7d3219a2961bba 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h -@@ -210,6 +210,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -211,6 +211,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { void DidStartWorkerThread() override; void WillStopWorkerThread() override; void WorkerContextCreated(const v8::Local& worker) override; + void WorkerContextWillDestroy(const v8::Local& worker) override; - // Disables the WebSandboxSupport implementation for testing. - // Tests that do not set up a full sandbox environment should call + void RecordMetricsForBackgroundedRendererPurge() override; + diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h -index d7ac7d96ad5c3e20075948c329a6d5ede0ae7a38..66881ba9b2511ef39e58c983907ec1894c046c2a 100644 +index c6c49fcbe38b9a4e892c50e68a2cbc3e2bbeb30b..45d2c3dde539ef61d190f13c1964d0127e435c9b 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -687,6 +687,7 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -681,6 +681,7 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} @@ -62,10 +62,10 @@ index d7ac7d96ad5c3e20075948c329a6d5ede0ae7a38..66881ba9b2511ef39e58c983907ec189 const WebSecurityOrigin& script_origin) { return false; diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc -index e55b99843fa42056197875b883a944f6de4ad79d..eb1508065eee7235816e2d6047220291007324e4 100644 +index 96dacc97cac57a039f2506ab4d4e3ca2664e18ef..5a31664f44ec87d87e1500b00ec4732918ede625 100644 --- a/third_party/blink/renderer/core/workers/worker_thread.cc +++ b/third_party/blink/renderer/core/workers/worker_thread.cc -@@ -559,6 +559,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { +@@ -558,6 +558,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { SetExitCode(ExitCode::kGracefullyTerminated); } From 9cc4cb293452816e3440cd4ce47b4db7e9ac70a7 Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Thu, 21 Mar 2019 16:35:29 -0700 Subject: [PATCH 04/37] download gn from cipd instead of GCS https://chromium-review.googlesource.com/c/chromium/src/+/1519726 --- .circleci/config.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 74c9b383c730..98e22a98af0e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -505,12 +505,16 @@ steps-lint: &steps-lint name: Download GN Binary command: | chromium_revision="$(grep -A1 chromium_version src/electron/DEPS | tr -d '\n' | cut -d\' -f4)" + gn_version="$(curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/DEPS?format=TEXT" | base64 -d | grep gn_version | head -n1 | cut -d\' -f4)" mkdir -p "buildtools/linux64" - curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/buildtools/linux64/gn.sha1?format=TEXT" | base64 -d > "buildtools/linux64/gn.sha1" - echo 'export CHROMIUM_BUILDTOOLS_PATH="'"$PWD"'/buildtools"' >> $BASH_ENV + cipd ensure -ensure-file - -root . <<-CIPD + $ServiceURL https://chrome-infra-packages.appspot.com/ + @Subdir buildtools/linux64 + gn/gn/linux-amd64 $GN_VERSION + CIPD - download_from_google_storage --bucket chromium-gn -s "buildtools/linux64/gn.sha1" + echo 'export CHROMIUM_BUILDTOOLS_PATH="'"$PWD"'/buildtools"' >> $BASH_ENV - run: name: Run Lint command: | From e2f0852c303304b2f9417a56c71349f3982146b8 Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Thu, 21 Mar 2019 16:41:30 -0700 Subject: [PATCH 05/37] fixup! download gn from cipd instead of GCS --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 98e22a98af0e..ada2f1ab8c63 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -509,7 +509,7 @@ steps-lint: &steps-lint mkdir -p "buildtools/linux64" cipd ensure -ensure-file - -root . <<-CIPD - $ServiceURL https://chrome-infra-packages.appspot.com/ + \$ServiceURL https://chrome-infra-packages.appspot.com/ @Subdir buildtools/linux64 gn/gn/linux-amd64 $GN_VERSION CIPD From 9819433e8876efe0a934cd3122698188ffbbf851 Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Thu, 21 Mar 2019 16:48:39 -0700 Subject: [PATCH 06/37] fixup! download gn from cipd instead of GCS --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ada2f1ab8c63..ba28cd227538 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -507,11 +507,10 @@ steps-lint: &steps-lint chromium_revision="$(grep -A1 chromium_version src/electron/DEPS | tr -d '\n' | cut -d\' -f4)" gn_version="$(curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/DEPS?format=TEXT" | base64 -d | grep gn_version | head -n1 | cut -d\' -f4)" - mkdir -p "buildtools/linux64" cipd ensure -ensure-file - -root . <<-CIPD \$ServiceURL https://chrome-infra-packages.appspot.com/ @Subdir buildtools/linux64 - gn/gn/linux-amd64 $GN_VERSION + gn/gn/linux-amd64 $gn_version CIPD echo 'export CHROMIUM_BUILDTOOLS_PATH="'"$PWD"'/buildtools"' >> $BASH_ENV From 47d5f9f90161653574ded63a403917c912b0db0c Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Thu, 21 Mar 2019 18:07:21 -0700 Subject: [PATCH 07/37] add //ui/base/idle dep --- BUILD.gn | 1 + 1 file changed, 1 insertion(+) diff --git a/BUILD.gn b/BUILD.gn index f3e57e0f8de7..a7eb96b247be 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -427,6 +427,7 @@ static_library("electron_lib") { "//third_party/libyuv", "//third_party/webrtc_overrides:init_webrtc", "//third_party/widevine/cdm:headers", + "//ui/base/idle", "//ui/events:dom_keycode_converter", "//ui/gl", "//ui/native_theme", From e44b5263a163528301bb8fd13485513cfbf5e3d8 Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Thu, 21 Mar 2019 18:19:16 -0700 Subject: [PATCH 08/37] add extra arguments to HandleExternalProtocol https://chromium-review.googlesource.com/c/chromium/src/+/1491812 --- atom/browser/atom_browser_client.cc | 4 +++- atom/browser/atom_browser_client.h | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/atom/browser/atom_browser_client.cc b/atom/browser/atom_browser_client.cc index 64c1e522d0aa..60ef875c4dd3 100644 --- a/atom/browser/atom_browser_client.cc +++ b/atom/browser/atom_browser_client.cc @@ -830,7 +830,9 @@ bool AtomBrowserClient::HandleExternalProtocol( ui::PageTransition page_transition, bool has_user_gesture, const std::string& method, - const net::HttpRequestHeaders& headers) { + const net::HttpRequestHeaders& headers, + network::mojom::URLLoaderFactoryRequest* factory_request, + network::mojom::URLLoaderFactory*& out_factory) { base::PostTaskWithTraits( FROM_HERE, {BrowserThread::UI}, base::BindOnce(&HandleExternalProtocolInUI, url, web_contents_getter, diff --git a/atom/browser/atom_browser_client.h b/atom/browser/atom_browser_client.h index 0adafc31ed4a..dce0ac3da3d0 100644 --- a/atom/browser/atom_browser_client.h +++ b/atom/browser/atom_browser_client.h @@ -172,7 +172,9 @@ class AtomBrowserClient : public content::ContentBrowserClient, ui::PageTransition page_transition, bool has_user_gesture, const std::string& method, - const net::HttpRequestHeaders& headers) override; + const net::HttpRequestHeaders& headers, + network::mojom::URLLoaderFactoryRequest* factory_request, + network::mojom::URLLoaderFactory*& out_factory) override; private: struct ProcessPreferences { From 50b99337054028bf3789a7c1b173f101d7b9b6f4 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 18:31:28 -0700 Subject: [PATCH 09/37] build: update circle base image and mac docs for 10.13 SDK --- docs/development/build-instructions-macos.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/development/build-instructions-macos.md b/docs/development/build-instructions-macos.md index 0b3380de60c2..b4bdbfbd64b4 100644 --- a/docs/development/build-instructions-macos.md +++ b/docs/development/build-instructions-macos.md @@ -5,7 +5,7 @@ Follow the guidelines below for building Electron on macOS. ## Prerequisites * macOS >= 10.11.6 -* [Xcode](https://developer.apple.com/technologies/tools/) >= 8.2.1 +* [Xcode](https://developer.apple.com/technologies/tools/) >= 9.0.0 * [node.js](https://nodejs.org) (external) * Python 2.7 with support for TLS 1.2 @@ -36,7 +36,7 @@ the following Python modules: If you're developing Electron and don't plan to redistribute your custom Electron build, you may skip this section. -Official Electron builds are built with [Xcode 8.3.3](http://adcdownload.apple.com/Developer_Tools/Xcode_8.3.3/Xcode_8.3.3.xip), and the MacOS 10.12 SDK. Building with a newer SDK works too, but the releases currently use the 10.12 SDK. +Official Electron builds are built with [Xcode 9.4.1](http://adcdownload.apple.com/Developer_Tools/Xcode_9.4.1/Xcode_9.4.1.xip), and the MacOS 10.13 SDK. Building with a newer SDK works too, but the releases currently use the 10.13 SDK. ## Building Electron From 406ceaabd12219e6862329640230d48579702b96 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 19:53:21 -0700 Subject: [PATCH 10/37] chore: update permission_status.h include for new path --- atom/common/native_mate_converters/content_converter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/common/native_mate_converters/content_converter.h b/atom/common/native_mate_converters/content_converter.h index f02c0a976b91..f25dfd4327f8 100644 --- a/atom/common/native_mate_converters/content_converter.h +++ b/atom/common/native_mate_converters/content_converter.h @@ -12,7 +12,7 @@ #include "content/public/common/referrer.h" #include "content/public/common/stop_find_action.h" #include "native_mate/converter.h" -#include "third_party/blink/public/platform/modules/permissions/permission_status.mojom.h" +#include "third_party/blink/public/mojom/permissions/permission_status.mojom.h" namespace content { struct ContextMenuParams; From 2bf740d2fe0daed2ea6ef1f449f267a4bfb212db Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 19:53:33 -0700 Subject: [PATCH 11/37] fix: remove enable_data_url_support from OnNetworkServiceCreated data URLs are _always_ enabled in the network service now and this is enforced in the Content layer. Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1512337 --- atom/browser/net/system_network_context_manager.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/atom/browser/net/system_network_context_manager.cc b/atom/browser/net/system_network_context_manager.cc index f9d1a1267932..eac424117fcc 100644 --- a/atom/browser/net/system_network_context_manager.cc +++ b/atom/browser/net/system_network_context_manager.cc @@ -249,9 +249,6 @@ SystemNetworkContextManager::CreateNetworkContextParams() { network_context_params->http_cache_enabled = false; - // These are needed for PAC scripts that use file or data URLs (Or FTP URLs?). - // TODO(crbug.com/839566): remove file support for all cases. - network_context_params->enable_data_url_support = true; if (!base::FeatureList::IsEnabled(network::features::kNetworkService)) network_context_params->enable_file_url_support = true; #if !BUILDFLAG(DISABLE_FTP_SUPPORT) From f95de3d6f3dc4a5e8dd4d0f16df48faf05e50fe5 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 20:04:24 -0700 Subject: [PATCH 12/37] fix: RFH->ExecuteJavascript now requires a callback Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1492042 --- atom/browser/ui/inspectable_web_contents_impl.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/atom/browser/ui/inspectable_web_contents_impl.cc b/atom/browser/ui/inspectable_web_contents_impl.cc index cdea0da4560b..ed6dc741a911 100644 --- a/atom/browser/ui/inspectable_web_contents_impl.cc +++ b/atom/browser/ui/inspectable_web_contents_impl.cc @@ -429,7 +429,7 @@ void InspectableWebContentsImpl::CallClientFunction( } javascript.append(");"); GetDevToolsWebContents()->GetMainFrame()->ExecuteJavaScript( - base::UTF8ToUTF16(javascript)); + base::UTF8ToUTF16(javascript), base::NullCallback()); } gfx::Rect InspectableWebContentsImpl::GetDevToolsBounds() const { @@ -476,7 +476,8 @@ void InspectableWebContentsImpl::LoadCompleted() { } base::string16 javascript = base::UTF8ToUTF16( "Components.dockController.setDockSide(\"" + dock_state_ + "\");"); - GetDevToolsWebContents()->GetMainFrame()->ExecuteJavaScript(javascript); + GetDevToolsWebContents()->GetMainFrame()->ExecuteJavaScript( + javascript, base::NullCallback()); } if (view_->GetDelegate()) @@ -738,7 +739,8 @@ void InspectableWebContentsImpl::DispatchProtocolMessage( if (message.length() < kMaxMessageChunkSize) { base::string16 javascript = base::UTF8ToUTF16("DevToolsAPI.dispatchMessage(" + message + ");"); - GetDevToolsWebContents()->GetMainFrame()->ExecuteJavaScript(javascript); + GetDevToolsWebContents()->GetMainFrame()->ExecuteJavaScript( + javascript, base::NullCallback()); return; } From ab92cfd17487655d2960140cb94a795cead55eed Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 20:08:58 -0700 Subject: [PATCH 13/37] fix: enable_file_url_support and enable_data_url_support have been removed Unsure how the change in default of file_url_support affects us Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1512337 --- atom/browser/net/system_network_context_manager.cc | 2 -- atom/browser/net/url_request_context_getter.cc | 2 -- 2 files changed, 4 deletions(-) diff --git a/atom/browser/net/system_network_context_manager.cc b/atom/browser/net/system_network_context_manager.cc index eac424117fcc..3882a213ad2d 100644 --- a/atom/browser/net/system_network_context_manager.cc +++ b/atom/browser/net/system_network_context_manager.cc @@ -249,8 +249,6 @@ SystemNetworkContextManager::CreateNetworkContextParams() { network_context_params->http_cache_enabled = false; - if (!base::FeatureList::IsEnabled(network::features::kNetworkService)) - network_context_params->enable_file_url_support = true; #if !BUILDFLAG(DISABLE_FTP_SUPPORT) network_context_params->enable_ftp_url_support = true; #endif diff --git a/atom/browser/net/url_request_context_getter.cc b/atom/browser/net/url_request_context_getter.cc index d36b1cc9ef37..3c582562178c 100644 --- a/atom/browser/net/url_request_context_getter.cc +++ b/atom/browser/net/url_request_context_getter.cc @@ -156,8 +156,6 @@ URLRequestContextGetter::Handle::CreateNetworkContextParams() { net::HttpUtil::GenerateAcceptLanguageHeader( AtomBrowserClient::Get()->GetApplicationLocale()); - network_context_params->enable_data_url_support = false; - if (!browser_context_->IsOffTheRecord()) { auto base_path = browser_context_->GetPath(); network_context_params->http_cache_path = From 74ac80e218bb4e9b00a798c727aa8c5b42328367 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 20:13:23 -0700 Subject: [PATCH 14/37] fix: ViewHierarchyChangedDetails moved to the views namespace Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1531481 --- atom/browser/ui/cocoa/delayed_native_view_host.cc | 2 +- atom/browser/ui/cocoa/delayed_native_view_host.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/atom/browser/ui/cocoa/delayed_native_view_host.cc b/atom/browser/ui/cocoa/delayed_native_view_host.cc index 95d369bfd82c..4a6870186238 100644 --- a/atom/browser/ui/cocoa/delayed_native_view_host.cc +++ b/atom/browser/ui/cocoa/delayed_native_view_host.cc @@ -12,7 +12,7 @@ DelayedNativeViewHost::DelayedNativeViewHost(gfx::NativeView native_view) DelayedNativeViewHost::~DelayedNativeViewHost() {} void DelayedNativeViewHost::ViewHierarchyChanged( - const ViewHierarchyChangedDetails& details) { + const views::ViewHierarchyChangedDetails& details) { NativeViewHost::ViewHierarchyChanged(details); if (details.is_add && GetWidget()) Attach(native_view_); diff --git a/atom/browser/ui/cocoa/delayed_native_view_host.h b/atom/browser/ui/cocoa/delayed_native_view_host.h index 2dfca1f964e2..5e2a0a8e8d61 100644 --- a/atom/browser/ui/cocoa/delayed_native_view_host.h +++ b/atom/browser/ui/cocoa/delayed_native_view_host.h @@ -18,7 +18,7 @@ class DelayedNativeViewHost : public views::NativeViewHost { // views::View: void ViewHierarchyChanged( - const ViewHierarchyChangedDetails& details) override; + const views::ViewHierarchyChangedDetails& details) override; private: gfx::NativeView native_view_; From 7467e918801b9f7038e4c7220ab1839e148be378 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 20:15:31 -0700 Subject: [PATCH 15/37] fix: RFH->ExecuteJavascriptForTesting now requires a callback Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1492042 --- atom/browser/ui/inspectable_web_contents_impl.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/atom/browser/ui/inspectable_web_contents_impl.cc b/atom/browser/ui/inspectable_web_contents_impl.cc index ed6dc741a911..fa690427313e 100644 --- a/atom/browser/ui/inspectable_web_contents_impl.cc +++ b/atom/browser/ui/inspectable_web_contents_impl.cc @@ -889,7 +889,8 @@ void InspectableWebContentsImpl::DidFinishNavigation( base::GenerateGUID().c_str()); // Invoking content::DevToolsFrontendHost::SetupExtensionsAPI(frame, script); // should be enough, but it seems to be a noop currently. - frame->ExecuteJavaScriptForTests(base::UTF8ToUTF16(script)); + frame->ExecuteJavaScriptForTests(base::UTF8ToUTF16(script), + base::NullCallback()); } void InspectableWebContentsImpl::SendMessageAck(int request_id, From 866cbb01478cd77b7f27e96e1f3e03eb2f9929fc Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 20:21:36 -0700 Subject: [PATCH 16/37] fix: SetCanonicalCookieAsync now takes the full CookieOptions Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1471244 --- atom/browser/api/atom_api_cookies.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/atom/browser/api/atom_api_cookies.cc b/atom/browser/api/atom_api_cookies.cc index 2be84fd1cc85..09a33ce203a7 100644 --- a/atom/browser/api/atom_api_cookies.cc +++ b/atom/browser/api/atom_api_cookies.cc @@ -303,8 +303,12 @@ void SetCookieOnIO(scoped_refptr getter, EXCLUDE_FAILURE_TO_STORE); return; } + net::CookieOptions options; + if (http_only) { + options.set_include_httponly(); + } GetCookieStore(getter)->SetCanonicalCookieAsync( - std::move(canonical_cookie), url.scheme(), http_only, + std::move(canonical_cookie), url.scheme(), options, std::move(completion_callback)); } From 7382c519c9f8cdfd608908e020f0da99b158e8b3 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 20:25:48 -0700 Subject: [PATCH 17/37] fix: Add stub implementations for ScheduleTrigger and ReadNextTriggerTimestamp Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1479330 --- .../notifications/platform_notification_service.cc | 9 +++++++++ .../notifications/platform_notification_service.h | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/atom/browser/notifications/platform_notification_service.cc b/atom/browser/notifications/platform_notification_service.cc index 410315591ccd..447b1c697b40 100644 --- a/atom/browser/notifications/platform_notification_service.cc +++ b/atom/browser/notifications/platform_notification_service.cc @@ -134,4 +134,13 @@ void PlatformNotificationService::RecordNotificationUkmEvent( content::BrowserContext* browser_context, const content::NotificationDatabaseData& data) {} +void PlatformNotificationService::ScheduleTrigger( + BrowserContext* browser_context, + base::Time timestamp) {} + +base::Time PlatformNotificationService::ReadNextTriggerTimestamp( + BrowserContext* browser_context) { + return base::Time::Max(); +} + } // namespace atom diff --git a/atom/browser/notifications/platform_notification_service.h b/atom/browser/notifications/platform_notification_service.h index 758eaf2c7f6a..e27021cae368 100644 --- a/atom/browser/notifications/platform_notification_service.h +++ b/atom/browser/notifications/platform_notification_service.h @@ -49,6 +49,10 @@ class PlatformNotificationService void RecordNotificationUkmEvent( content::BrowserContext* browser_context, const content::NotificationDatabaseData& data) override; + void ScheduleTrigger(content::BrowserContext* browser_context, + base::Time timestamp) override; + base::Time ReadNextTriggerTimestamp( + content::BrowserContext* browser_context) override; private: AtomBrowserClient* browser_client_; From 158e41e578b8b3ed3a8c672a01b6dac7bd60f506 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 20:30:59 -0700 Subject: [PATCH 18/37] chore: add missing content:: namespace for BrowserContext in PlatformNotificationService --- atom/browser/notifications/platform_notification_service.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/atom/browser/notifications/platform_notification_service.cc b/atom/browser/notifications/platform_notification_service.cc index 447b1c697b40..68aba4d3fb1f 100644 --- a/atom/browser/notifications/platform_notification_service.cc +++ b/atom/browser/notifications/platform_notification_service.cc @@ -135,11 +135,11 @@ void PlatformNotificationService::RecordNotificationUkmEvent( const content::NotificationDatabaseData& data) {} void PlatformNotificationService::ScheduleTrigger( - BrowserContext* browser_context, + content::BrowserContext* browser_context, base::Time timestamp) {} base::Time PlatformNotificationService::ReadNextTriggerTimestamp( - BrowserContext* browser_context) { + content::BrowserContext* browser_context) { return base::Time::Max(); } From 126639875d9e71f114dfb4a5c999e24b4b373e6e Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 20:40:01 -0700 Subject: [PATCH 19/37] Revert "device/fido/mac: add more specific check for TouchID availability" This reverts commit 457ff0687c60d7f964a5fb6c0599fc3b6bc3c1e4. The change in Chromium that required this removal was itself reverted. Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1504308 --- atom/browser/mac/atom_application.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/atom/browser/mac/atom_application.h b/atom/browser/mac/atom_application.h index 249652d4cea4..ad513dadb3e5 100644 --- a/atom/browser/mac/atom_application.h +++ b/atom/browser/mac/atom_application.h @@ -17,6 +17,22 @@ - (void)setAppearance:(NSAppearance*)appearance API_AVAILABLE(macosx(10.14)); @end +#if !defined(MAC_OS_X_VERSION_10_13_2) + +// forward declare Touch ID APIs +typedef NS_ENUM(NSInteger, LABiometryType) { + LABiometryTypeNone = 0, + LABiometryTypeFaceID = 1, + LABiometryTypeTouchID = 2, +} API_AVAILABLE(macosx(10.13.2)); + +@interface LAContext (HighSierraPointTwoSDK) +@property(nonatomic, readonly) + LABiometryType biometryType API_AVAILABLE(macosx(10.13.2)); +@end + +#endif + // forward declare Access APIs typedef NSString* AVMediaType NS_EXTENSIBLE_STRING_ENUM; From b429e6e2df5c25933ccd6ddc3d2e903be831ff2f Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 21:02:40 -0700 Subject: [PATCH 20/37] chore: disable clang-format and cpplint for impl of HandleExternalProtocol NOLINT disables the linting error that we can't fix because its just implementing a content API. We also disable clang-format because it tries to format the // NOLINT onto a new line which doesn't exactly work --- atom/browser/atom_browser_client.cc | 4 +++- atom/browser/atom_browser_client.h | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/atom/browser/atom_browser_client.cc b/atom/browser/atom_browser_client.cc index 60ef875c4dd3..1006bb9d451f 100644 --- a/atom/browser/atom_browser_client.cc +++ b/atom/browser/atom_browser_client.cc @@ -832,7 +832,9 @@ bool AtomBrowserClient::HandleExternalProtocol( const std::string& method, const net::HttpRequestHeaders& headers, network::mojom::URLLoaderFactoryRequest* factory_request, - network::mojom::URLLoaderFactory*& out_factory) { + // clang-format off + network::mojom::URLLoaderFactory*& out_factory) { // NOLINT + // clang-format on base::PostTaskWithTraits( FROM_HERE, {BrowserThread::UI}, base::BindOnce(&HandleExternalProtocolInUI, url, web_contents_getter, diff --git a/atom/browser/atom_browser_client.h b/atom/browser/atom_browser_client.h index dce0ac3da3d0..9fe2c8185495 100644 --- a/atom/browser/atom_browser_client.h +++ b/atom/browser/atom_browser_client.h @@ -174,7 +174,10 @@ class AtomBrowserClient : public content::ContentBrowserClient, const std::string& method, const net::HttpRequestHeaders& headers, network::mojom::URLLoaderFactoryRequest* factory_request, - network::mojom::URLLoaderFactory*& out_factory) override; + // clang-format off + network::mojom::URLLoaderFactory*& out_factory) // NOLINT + // clang-format on + override; private: struct ProcessPreferences { From 04a8b9fe5cf2810ce723fdbf6289df50c31fed0b Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 21:36:39 -0700 Subject: [PATCH 21/37] fix: base::LaunchOptions environ is now environment Just a rename Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1509795 --- atom/common/platform_util_linux.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/common/platform_util_linux.cc b/atom/common/platform_util_linux.cc index 098e62a80158..9c061208ef40 100644 --- a/atom/common/platform_util_linux.cc +++ b/atom/common/platform_util_linux.cc @@ -27,7 +27,7 @@ bool XDGUtilV(const std::vector& argv, const bool wait_for_exit) { // to a command that needs a terminal. Set the environment variable telling // it that we definitely don't have a terminal available and that it should // bring up a new terminal if necessary. See "man mailcap". - options.environ["MM_NOTTTY"] = "1"; + options.environment["MM_NOTTTY"] = "1"; base::Process process = base::LaunchProcess(argv, options); if (!process.IsValid()) From ab66c4b7f97d050d2c1aaa7a9ba472d49b3210a0 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 22:31:30 -0700 Subject: [PATCH 22/37] fixme: IsNearDeath has been removed upstream Adds a patch that reverts https://chromium-review.googlesource.com/c/v8/v8/+/1526195 in order to let native modules build. nan has a strong dependency on the IsNearDeath method. This needs to be solved upstream in nan or V8. --- patches/common/v8/.patches | 1 + patches/common/v8/add_realloc.patch | 6 +- patches/common/v8/build_gn.patch | 6 +- patches/common/v8/dcheck.patch | 8 +- ..._detailed_line_info_for_cpu_profiler.patch | 4 +- ...vide_more_v8_backwards_compatibility.patch | 50 ++-- patches/common/v8/expose_mksnapshot.patch | 4 +- ...vert_heap_api_remove_deprecated_apis.patch | 261 ++++++++++++++++++ 8 files changed, 301 insertions(+), 39 deletions(-) create mode 100644 patches/common/v8/fixme_revert_heap_api_remove_deprecated_apis.patch diff --git a/patches/common/v8/.patches b/patches/common/v8/.patches index af2396167fd3..2de4290febde 100644 --- a/patches/common/v8/.patches +++ b/patches/common/v8/.patches @@ -4,3 +4,4 @@ build_gn.patch expose_mksnapshot.patch deps_provide_more_v8_backwards_compatibility.patch dcheck.patch +fixme_revert_heap_api_remove_deprecated_apis.patch diff --git a/patches/common/v8/add_realloc.patch b/patches/common/v8/add_realloc.patch index 45350d13fa7f..099aba80b543 100644 --- a/patches/common/v8/add_realloc.patch +++ b/patches/common/v8/add_realloc.patch @@ -12,10 +12,10 @@ when we override ReallocateBufferMemory, so we therefore need to implement Realloc on the v8 side. diff --git a/include/v8.h b/include/v8.h -index 6ecc48af33288c1d5b8a8d847581c1edd8c173f9..ea203a23a945a03e4494a1b3d615381dd5699e2c 100644 +index 6dee8ca634900af699ac1a54e10fc2a1ec4a7319..fd4e4f95022cb8e7332f9371ab478b8063cf048c 100644 --- a/include/v8.h +++ b/include/v8.h -@@ -4695,6 +4695,13 @@ class V8_EXPORT ArrayBuffer : public Object { +@@ -4694,6 +4694,13 @@ class V8_EXPORT ArrayBuffer : public Object { */ virtual void* AllocateUninitialized(size_t length) = 0; @@ -30,7 +30,7 @@ index 6ecc48af33288c1d5b8a8d847581c1edd8c173f9..ea203a23a945a03e4494a1b3d615381d * Free the memory block of size |length|, pointed to by |data|. * That memory is guaranteed to be previously allocated by |Allocate|. diff --git a/src/api.cc b/src/api.cc -index 168522f8c36b4385479ebba7f06f8a5261ab7a85..b87dfac21d26177128f7c434bc2577e18ab905c6 100644 +index a5bb14f935a0a96380cbaf9839a5063dbd420a16..b6071ee70e1f5f8c308118fc21fbab387129d07f 100644 --- a/src/api.cc +++ b/src/api.cc @@ -516,6 +516,10 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) { diff --git a/patches/common/v8/build_gn.patch b/patches/common/v8/build_gn.patch index a17338c5c11b..f111d9a719ad 100644 --- a/patches/common/v8/build_gn.patch +++ b/patches/common/v8/build_gn.patch @@ -5,10 +5,10 @@ Subject: build_gn.patch diff --git a/BUILD.gn b/BUILD.gn -index fddd525297773e843cbd7a8b11a72c3e094b06d8..d8a2b8e11a3e0e9820dca061a00dbf1a6859bcf4 100644 +index b843e32765a93fe50ccc78427558daeb3447c2a8..1eefb5b89c8a91ee3a9eb9f4a5b22cc499d97539 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -240,7 +240,7 @@ config("internal_config") { +@@ -246,7 +246,7 @@ config("internal_config") { ":v8_header_features", ] @@ -17,7 +17,7 @@ index fddd525297773e843cbd7a8b11a72c3e094b06d8..d8a2b8e11a3e0e9820dca061a00dbf1a defines += [ "BUILDING_V8_SHARED" ] } } -@@ -3530,6 +3530,8 @@ if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) { +@@ -3558,6 +3558,8 @@ if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) { configs = [ ":internal_config" ] diff --git a/patches/common/v8/dcheck.patch b/patches/common/v8/dcheck.patch index e46538764c9b..c9f4983c8b5b 100644 --- a/patches/common/v8/dcheck.patch +++ b/patches/common/v8/dcheck.patch @@ -5,10 +5,10 @@ Subject: dcheck.patch diff --git a/src/api.cc b/src/api.cc -index 16b3d6d6d29ff6c79245e8f69132d7367708024e..3b5c0a8efa502cf0caf1dae9b426bab1c86d16b6 100644 +index a6c14a5be90679ed4d17fa04bb9feb30a05d42f9..8532ad08999316427add386696326b43dc1994d8 100644 --- a/src/api.cc +++ b/src/api.cc -@@ -8620,7 +8620,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) { +@@ -8617,7 +8617,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) { void Isolate::RunMicrotasks() { @@ -18,10 +18,10 @@ index 16b3d6d6d29ff6c79245e8f69132d7367708024e..3b5c0a8efa502cf0caf1dae9b426bab1 isolate->default_microtask_queue()->RunMicrotasks(isolate); } diff --git a/src/heap/heap.cc b/src/heap/heap.cc -index e72269d40a369f2e9ae9f12b54fe8f828e252a9a..1192c1ee6cc19eac3dff7ce36e364aa1403eafbc 100644 +index 18e357712e10060c70875a1c2e69b754a521efe1..eec4b79ead7c9cc980c7eaf100f103acc81b96f7 100644 --- a/src/heap/heap.cc +++ b/src/heap/heap.cc -@@ -4855,9 +4855,9 @@ void Heap::TearDown() { +@@ -4881,9 +4881,9 @@ void Heap::TearDown() { void Heap::AddGCPrologueCallback(v8::Isolate::GCCallbackWithData callback, GCType gc_type, void* data) { DCHECK_NOT_NULL(callback); diff --git a/patches/common/v8/deps_backport_detailed_line_info_for_cpu_profiler.patch b/patches/common/v8/deps_backport_detailed_line_info_for_cpu_profiler.patch index d34ac72c82aa..4d9adf7ba22e 100644 --- a/patches/common/v8/deps_backport_detailed_line_info_for_cpu_profiler.patch +++ b/patches/common/v8/deps_backport_detailed_line_info_for_cpu_profiler.patch @@ -20,10 +20,10 @@ Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater diff --git a/src/flag-definitions.h b/src/flag-definitions.h -index c7dc7520ebc17f63dbba74225000c84f6d3d0152..07d965d39ad08c9f0aa9af199ac4f0124c233bcd 100644 +index 75d8167ca3dc5728de8a0901996794da6acf6d19..c2c3db1dc683085d33a754c401bfec31b9ac08d7 100644 --- a/src/flag-definitions.h +++ b/src/flag-definitions.h -@@ -1321,7 +1321,7 @@ DEFINE_BOOL(log_function_events, false, +@@ -1337,7 +1337,7 @@ DEFINE_BOOL(log_function_events, false, DEFINE_BOOL(prof, false, "Log statistical profiling information (implies --log-code).") diff --git a/patches/common/v8/deps_provide_more_v8_backwards_compatibility.patch b/patches/common/v8/deps_provide_more_v8_backwards_compatibility.patch index e9d37b36ce74..37cce6512f8f 100644 --- a/patches/common/v8/deps_provide_more_v8_backwards_compatibility.patch +++ b/patches/common/v8/deps_provide_more_v8_backwards_compatibility.patch @@ -22,10 +22,10 @@ Reviewed-By: Yang Guo Reviewed-By: Michaël Zasso diff --git a/include/v8.h b/include/v8.h -index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a571594098 100644 +index fd4e4f95022cb8e7332f9371ab478b8063cf048c..6a91f2571d1c0c7e92bff288da90a9550e5568ba 100644 --- a/include/v8.h +++ b/include/v8.h -@@ -1144,6 +1144,10 @@ class V8_EXPORT PrimitiveArray { +@@ -1141,6 +1141,10 @@ class V8_EXPORT PrimitiveArray { public: static Local New(Isolate* isolate, int length); int Length() const; @@ -36,7 +36,7 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 void Set(Isolate* isolate, int index, Local item); Local Get(Isolate* isolate, int index); }; -@@ -1847,6 +1851,8 @@ class V8_EXPORT StackTrace { +@@ -1849,6 +1853,8 @@ class V8_EXPORT StackTrace { /** * Returns a StackFrame at a particular index. */ @@ -45,7 +45,7 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 Local GetFrame(Isolate* isolate, uint32_t index) const; /** -@@ -2547,6 +2553,13 @@ class V8_EXPORT Value : public Data { +@@ -2549,6 +2555,13 @@ class V8_EXPORT Value : public Data { V8_DEPRECATE_SOON("Use maybe version", Local ToInt32(Isolate* isolate) const); @@ -59,7 +59,7 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 /** * Attempts to convert a string to an array index. * Returns an empty handle if the conversion fails. -@@ -2566,7 +2579,14 @@ class V8_EXPORT Value : public Data { +@@ -2568,7 +2581,14 @@ class V8_EXPORT Value : public Data { Local context) const; V8_WARN_UNUSED_RESULT Maybe Int32Value(Local context) const; @@ -74,7 +74,7 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 V8_WARN_UNUSED_RESULT Maybe Equals(Local context, Local that) const; bool StrictEquals(Local that) const; -@@ -2673,6 +2693,8 @@ class V8_EXPORT String : public Name { +@@ -2675,6 +2695,8 @@ class V8_EXPORT String : public Name { * Returns the number of bytes in the UTF-8 encoded * representation of this string. */ @@ -83,7 +83,7 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 int Utf8Length(Isolate* isolate) const; /** -@@ -2729,12 +2751,23 @@ class V8_EXPORT String : public Name { +@@ -2731,12 +2753,23 @@ class V8_EXPORT String : public Name { // 16-bit character codes. int Write(Isolate* isolate, uint16_t* buffer, int start = 0, int length = -1, int options = NO_OPTIONS) const; @@ -107,7 +107,7 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 /** * A zero length string. -@@ -2922,6 +2955,9 @@ class V8_EXPORT String : public Name { +@@ -2924,6 +2957,9 @@ class V8_EXPORT String : public Name { */ static Local Concat(Isolate* isolate, Local left, Local right); @@ -117,7 +117,7 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 /** * Creates a new external string using the data defined in the given -@@ -2990,6 +3026,8 @@ class V8_EXPORT String : public Name { +@@ -2992,6 +3028,8 @@ class V8_EXPORT String : public Name { */ class V8_EXPORT Utf8Value { public: @@ -126,7 +126,7 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 Utf8Value(Isolate* isolate, Local obj); ~Utf8Value(); char* operator*() { return str_; } -@@ -3013,6 +3051,7 @@ class V8_EXPORT String : public Name { +@@ -3015,6 +3053,7 @@ class V8_EXPORT String : public Name { */ class V8_EXPORT Value { public: @@ -134,7 +134,7 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 Value(Isolate* isolate, Local obj); ~Value(); uint16_t* operator*() { return str_; } -@@ -5386,6 +5425,8 @@ class V8_EXPORT BooleanObject : public Object { +@@ -5385,6 +5424,8 @@ class V8_EXPORT BooleanObject : public Object { class V8_EXPORT StringObject : public Object { public: static Local New(Isolate* isolate, Local value); @@ -143,7 +143,7 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 Local ValueOf() const; -@@ -10493,6 +10534,30 @@ template Value* Value::Cast(T* value) { +@@ -10476,6 +10517,30 @@ template Value* Value::Cast(T* value) { } @@ -175,10 +175,10 @@ index ea203a23a945a03e4494a1b3d615381dd5699e2c..6145cbca82fa30d42ef9e5ecf2caf7a5 #ifdef V8_ENABLE_CHECKS CheckCast(value); diff --git a/src/api.cc b/src/api.cc -index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d7367708024e 100644 +index b6071ee70e1f5f8c308118fc21fbab387129d07f..a6c14a5be90679ed4d17fa04bb9feb30a05d42f9 100644 --- a/src/api.cc +++ b/src/api.cc -@@ -2227,6 +2227,10 @@ int PrimitiveArray::Length() const { +@@ -2220,6 +2220,10 @@ int PrimitiveArray::Length() const { return array->length(); } @@ -189,7 +189,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 void PrimitiveArray::Set(Isolate* v8_isolate, int index, Local item) { i::Isolate* isolate = reinterpret_cast(v8_isolate); -@@ -2240,6 +2244,10 @@ void PrimitiveArray::Set(Isolate* v8_isolate, int index, +@@ -2233,6 +2237,10 @@ void PrimitiveArray::Set(Isolate* v8_isolate, int index, array->set(index, *i_item); } @@ -200,7 +200,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 Local PrimitiveArray::Get(Isolate* v8_isolate, int index) { i::Isolate* isolate = reinterpret_cast(v8_isolate); i::Handle array = Utils::OpenHandle(this); -@@ -2945,6 +2953,10 @@ void Message::PrintCurrentStackTrace(Isolate* isolate, FILE* out) { +@@ -2938,6 +2946,10 @@ void Message::PrintCurrentStackTrace(Isolate* isolate, FILE* out) { // --- S t a c k T r a c e --- @@ -211,7 +211,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 Local StackTrace::GetFrame(Isolate* v8_isolate, uint32_t index) const { i::Isolate* isolate = reinterpret_cast(v8_isolate); -@@ -3909,6 +3921,36 @@ void v8::RegExp::CheckCast(v8::Value* that) { +@@ -3902,6 +3914,36 @@ void v8::RegExp::CheckCast(v8::Value* that) { } @@ -248,7 +248,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 Maybe Value::BooleanValue(Local context) const { i::Isolate* isolate = reinterpret_cast(context->GetIsolate()); return Just(Utils::OpenHandle(this)->BooleanValue(isolate)); -@@ -3997,6 +4039,12 @@ MaybeLocal Value::ToArrayIndex(Local context) const { +@@ -3990,6 +4032,12 @@ MaybeLocal Value::ToArrayIndex(Local context) const { } @@ -261,7 +261,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 Maybe Value::Equals(Local context, Local that) const { i::Isolate* isolate = Utils::OpenHandle(*context)->GetIsolate(); auto self = Utils::OpenHandle(this); -@@ -5275,6 +5323,10 @@ bool String::ContainsOnlyOneByte() const { +@@ -5268,6 +5316,10 @@ bool String::ContainsOnlyOneByte() const { return helper.Check(*str); } @@ -272,7 +272,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 int String::Utf8Length(Isolate* isolate) const { i::Handle str = Utils::OpenHandle(this); str = i::String::Flatten(reinterpret_cast(isolate), str); -@@ -5427,6 +5479,14 @@ static int WriteUtf8Impl(i::Vector string, char* write_start, +@@ -5420,6 +5472,14 @@ static int WriteUtf8Impl(i::Vector string, char* write_start, } } // anonymous namespace @@ -287,7 +287,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 int String::WriteUtf8(Isolate* v8_isolate, char* buffer, int capacity, int* nchars_ref, int options) const { i::Handle str = Utils::OpenHandle(this); -@@ -5467,6 +5527,18 @@ static inline int WriteHelper(i::Isolate* isolate, const String* string, +@@ -5460,6 +5520,18 @@ static inline int WriteHelper(i::Isolate* isolate, const String* string, } @@ -306,7 +306,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 int String::WriteOneByte(Isolate* isolate, uint8_t* buffer, int start, int length, int options) const { return WriteHelper(reinterpret_cast(isolate), this, buffer, -@@ -6423,6 +6495,11 @@ MaybeLocal String::NewFromTwoByte(Isolate* isolate, +@@ -6414,6 +6486,11 @@ MaybeLocal String::NewFromTwoByte(Isolate* isolate, return result; } @@ -318,7 +318,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 Local v8::String::Concat(Isolate* v8_isolate, Local left, Local right) { i::Isolate* isolate = reinterpret_cast(v8_isolate); -@@ -6705,6 +6782,11 @@ bool v8::BooleanObject::ValueOf() const { +@@ -6696,6 +6773,11 @@ bool v8::BooleanObject::ValueOf() const { } @@ -330,7 +330,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 Local v8::StringObject::New(Isolate* v8_isolate, Local value) { i::Handle string = Utils::OpenHandle(*value); -@@ -8970,6 +9052,9 @@ bool MicrotasksScope::IsRunningMicrotasks(Isolate* v8_isolate) { +@@ -8976,6 +9058,9 @@ bool MicrotasksScope::IsRunningMicrotasks(Isolate* v8_isolate) { return microtask_queue->IsRunningMicrotasks(); } @@ -340,7 +340,7 @@ index b87dfac21d26177128f7c434bc2577e18ab905c6..16b3d6d6d29ff6c79245e8f69132d736 String::Utf8Value::Utf8Value(v8::Isolate* isolate, v8::Local obj) : str_(nullptr), length_(0) { if (obj.IsEmpty()) return; -@@ -8989,6 +9074,9 @@ String::Utf8Value::~Utf8Value() { +@@ -8995,6 +9080,9 @@ String::Utf8Value::~Utf8Value() { i::DeleteArray(str_); } diff --git a/patches/common/v8/expose_mksnapshot.patch b/patches/common/v8/expose_mksnapshot.patch index 5a4b67754b1e..65eebb6fd097 100644 --- a/patches/common/v8/expose_mksnapshot.patch +++ b/patches/common/v8/expose_mksnapshot.patch @@ -6,10 +6,10 @@ Subject: expose_mksnapshot.patch Needed in order to target mksnapshot for mksnapshot zip. diff --git a/BUILD.gn b/BUILD.gn -index d8a2b8e11a3e0e9820dca061a00dbf1a6859bcf4..d3dbe37d0a145921dddaea72e394c87826d6d5fe 100644 +index 1eefb5b89c8a91ee3a9eb9f4a5b22cc499d97539..c2ec29b916155f36d8d181d82090afd857f4d041 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -3520,8 +3520,6 @@ if (current_toolchain == v8_generator_toolchain) { +@@ -3548,8 +3548,6 @@ if (current_toolchain == v8_generator_toolchain) { if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) { v8_executable("mksnapshot") { diff --git a/patches/common/v8/fixme_revert_heap_api_remove_deprecated_apis.patch b/patches/common/v8/fixme_revert_heap_api_remove_deprecated_apis.patch new file mode 100644 index 000000000000..d9f107d8178a --- /dev/null +++ b/patches/common/v8/fixme_revert_heap_api_remove_deprecated_apis.patch @@ -0,0 +1,261 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Samuel Attard +Date: Thu, 21 Mar 2019 22:29:55 -0700 +Subject: fixme: Revert "[heap,api] Remove deprecated APIs" + +This reverts commit f4b860d9b81956fb9d6815932522f4043fef56fa. + +This commit removes deprecated APIs that nan relies on, temporarily +reverting but we need to solve this with nan upstream + +diff --git a/include/v8-internal.h b/include/v8-internal.h +index cbdce1c3f60eed53f67968e6b89755f418aecc3f..9254f7c9a2f3cf7dc92421e2863109b410a09da0 100644 +--- a/include/v8-internal.h ++++ b/include/v8-internal.h +@@ -165,6 +165,7 @@ class Internals { + static const int kNodeStateMask = 0x7; + static const int kNodeStateIsWeakValue = 2; + static const int kNodeStateIsPendingValue = 3; ++ static const int kNodeStateIsNearDeathValue = 4; + static const int kNodeIsIndependentShift = 3; + static const int kNodeIsActiveShift = 4; + +diff --git a/include/v8.h b/include/v8.h +index 6a91f2571d1c0c7e92bff288da90a9550e5568ba..caafc04a404ba96a2669ddcaf4e5b1bb91984c1a 100644 +--- a/include/v8.h ++++ b/include/v8.h +@@ -577,6 +577,10 @@ template class PersistentBase { + + V8_DEPRECATED("See MarkIndependent.", V8_INLINE bool IsIndependent() const); + ++ /** Checks if the handle holds the only reference to an object. */ ++ V8_DEPRECATED("Garbage collection internal state should not be relied on.", ++ V8_INLINE bool IsNearDeath() const); ++ + /** Returns true if the handle's reference is weak. */ + V8_INLINE bool IsWeak() const; + +@@ -8565,6 +8569,17 @@ class V8_EXPORT Isolate { + */ + void VisitHandlesWithClassIds(PersistentHandleVisitor* visitor); + ++ /** ++ * Iterates through all the persistent handles in the current isolate's heap ++ * that have class_ids and are candidates to be marked as partially dependent ++ * handles. This will visit handles to young objects created since the last ++ * garbage collection but is free to visit an arbitrary superset of these ++ * objects. ++ */ ++ V8_DEPRECATED( ++ "Use VisitHandlesWithClassIds", ++ void VisitHandlesForPartialDependence(PersistentHandleVisitor* visitor)); ++ + /** + * Iterates through all the persistent handles in the current isolate's heap + * that have class_ids and are weak to be marked as inactive if there is no +@@ -9818,6 +9833,17 @@ bool PersistentBase::IsIndependent() const { + I::kNodeIsIndependentShift); + } + ++template ++bool PersistentBase::IsNearDeath() const { ++ typedef internal::Internals I; ++ if (this->IsEmpty()) return false; ++ uint8_t node_state = ++ I::GetNodeState(reinterpret_cast(this->val_)); ++ return node_state == I::kNodeStateIsNearDeathValue || ++ node_state == I::kNodeStateIsPendingValue; ++} ++ ++ + template + bool PersistentBase::IsWeak() const { + typedef internal::Internals I; +diff --git a/src/api.cc b/src/api.cc +index 8532ad08999316427add386696326b43dc1994d8..f2d26a3e7503fe09619259578606d2bc5bd16161 100644 +--- a/src/api.cc ++++ b/src/api.cc +@@ -8967,6 +8967,15 @@ void Isolate::VisitHandlesWithClassIds(PersistentHandleVisitor* visitor) { + isolate->global_handles()->IterateAllRootsWithClassIds(visitor); + } + ++ ++void Isolate::VisitHandlesForPartialDependence( ++ PersistentHandleVisitor* visitor) { ++ i::Isolate* isolate = reinterpret_cast(this); ++ i::DisallowHeapAllocation no_allocation; ++ isolate->global_handles()->IterateAllYoungRootsWithClassIds(visitor); ++} ++ ++ + void Isolate::VisitWeakHandles(PersistentHandleVisitor* visitor) { + i::Isolate* isolate = reinterpret_cast(this); + i::DisallowHeapAllocation no_allocation; +diff --git a/src/global-handles.cc b/src/global-handles.cc +index 350380b23ce6f4fe89e628285d2e69fb1cac88ee..5eb3d93f142ea4d6ec88a4468b6390ec5387da84 100644 +--- a/src/global-handles.cc ++++ b/src/global-handles.cc +@@ -379,6 +379,7 @@ class GlobalHandles::Node final : public NodeBase { + Internals::kNodeStateMask); + STATIC_ASSERT(WEAK == Internals::kNodeStateIsWeakValue); + STATIC_ASSERT(PENDING == Internals::kNodeStateIsPendingValue); ++ STATIC_ASSERT(NEAR_DEATH == Internals::kNodeStateIsNearDeathValue); + STATIC_ASSERT(static_cast(IsIndependent::kShift) == + Internals::kNodeIsIndependentShift); + STATIC_ASSERT(static_cast(IsActive::kShift) == +@@ -426,6 +427,11 @@ class GlobalHandles::Node final : public NodeBase { + flags_ = NodeWeaknessType::update(flags_, weakness_type); + } + ++ bool IsNearDeath() const { ++ // Check for PENDING to ensure correct answer when processing callbacks. ++ return state() == PENDING || state() == NEAR_DEATH; ++ } ++ + bool IsWeak() const { return state() == WEAK; } + + bool IsInUse() const { return state() != FREE; } +@@ -813,6 +819,10 @@ void GlobalHandles::AnnotateStrongRetainer(Address* location, + Node::FromLocation(location)->AnnotateStrongRetainer(label); + } + ++bool GlobalHandles::IsNearDeath(Address* location) { ++ return Node::FromLocation(location)->IsNearDeath(); ++} ++ + bool GlobalHandles::IsWeak(Address* location) { + return Node::FromLocation(location)->IsWeak(); + } +diff --git a/src/global-handles.h b/src/global-handles.h +index 8caa3c33ce72269ecd470328ad88260b2d6cb206..3604af1d28e5a899095335b033bca044a28b7d77 100644 +--- a/src/global-handles.h ++++ b/src/global-handles.h +@@ -73,6 +73,9 @@ class GlobalHandles final { + // Clear the weakness of a global handle. + static void* ClearWeakness(Address* location); + ++ // Tells whether global handle is near death. ++ static bool IsNearDeath(Address* location); ++ + // Tells whether global handle is weak. + static bool IsWeak(Address* location); + +diff --git a/test/cctest/heap/test-heap.cc b/test/cctest/heap/test-heap.cc +index fa3d5fe163fd1477c5bfba84d558172469e827f5..aae5f2d61f1b53389c8d4c3c511893010e49b59e 100644 +--- a/test/cctest/heap/test-heap.cc ++++ b/test/cctest/heap/test-heap.cc +@@ -531,9 +531,14 @@ TEST(WeakGlobalHandlesScavenge) { + + // Scavenge treats weak pointers as normal roots. + CcTest::CollectGarbage(NEW_SPACE); ++ + CHECK((*h1)->IsString()); + CHECK((*h2)->IsHeapNumber()); ++ + CHECK(!WeakPointerCleared); ++ CHECK(!global_handles->IsNearDeath(h2.location())); ++ CHECK(!global_handles->IsNearDeath(h1.location())); ++ + GlobalHandles::Destroy(h1.location()); + GlobalHandles::Destroy(h2.location()); + } +@@ -571,8 +576,11 @@ TEST(WeakGlobalUnmodifiedApiHandlesScavenge) { + &TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter); + + CcTest::CollectGarbage(NEW_SPACE); ++ + CHECK((*h1)->IsHeapNumber()); + CHECK(WeakPointerCleared); ++ CHECK(!global_handles->IsNearDeath(h1.location())); ++ + GlobalHandles::Destroy(h1.location()); + } + +@@ -609,7 +617,10 @@ TEST(WeakGlobalApiHandleModifiedMapScavenge) { + &TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter); + + CcTest::CollectGarbage(NEW_SPACE); ++ + CHECK(!WeakPointerCleared); ++ CHECK(!global_handles->IsNearDeath(h1.location())); ++ + GlobalHandles::Destroy(h1.location()); + } + +@@ -650,7 +661,10 @@ TEST(WeakGlobalApiHandleWithElementsScavenge) { + &TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter); + + CcTest::CollectGarbage(NEW_SPACE); ++ + CHECK(!WeakPointerCleared); ++ CHECK(!global_handles->IsNearDeath(h1.location())); ++ + GlobalHandles::Destroy(h1.location()); + } + +@@ -685,11 +699,17 @@ TEST(WeakGlobalHandlesMark) { + GlobalHandles::MakeWeak( + h2.location(), reinterpret_cast(&handle_and_id), + &TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter); ++ CHECK(!GlobalHandles::IsNearDeath(h1.location())); ++ CHECK(!GlobalHandles::IsNearDeath(h2.location())); + + // Incremental marking potentially marked handles before they turned weak. + CcTest::CollectAllGarbage(); ++ + CHECK((*h1)->IsString()); ++ + CHECK(WeakPointerCleared); ++ CHECK(!GlobalHandles::IsNearDeath(h1.location())); ++ + GlobalHandles::Destroy(h1.location()); + } + +diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc +index fc74e99dd45a57e8b8b88de6c666008074cdaeea..c2d796bb770432411e660c888a189685da474a41 100644 +--- a/test/cctest/test-api.cc ++++ b/test/cctest/test-api.cc +@@ -20472,6 +20472,43 @@ TEST(WrapperClassId) { + object.Reset(); + } + ++ ++TEST(PersistentHandleInNewSpaceVisitor) { ++ LocalContext context; ++ v8::Isolate* isolate = context->GetIsolate(); ++ v8::HandleScope scope(isolate); ++ v8::Persistent object1(isolate, v8::Object::New(isolate)); ++ CHECK_EQ(0, object1.WrapperClassId()); ++ object1.SetWrapperClassId(42); ++ CHECK_EQ(42, object1.WrapperClassId()); ++ ++ CcTest::CollectAllGarbage(); ++ CcTest::CollectAllGarbage(); ++ ++ v8::Persistent object2(isolate, v8::Object::New(isolate)); ++ CHECK_EQ(0, object2.WrapperClassId()); ++ object2.SetWrapperClassId(42); ++ CHECK_EQ(42, object2.WrapperClassId()); ++ ++ Visitor42 visitor(&object2); ++#if __clang__ ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Wdeprecated" ++#endif ++ // VisitHandlesForPartialDependence is marked deprecated. This test will be ++ // removed with the API method. ++ isolate->VisitHandlesForPartialDependence(&visitor); ++#if __clang__ ++#pragma clang diagnostic pop ++#endif ++ ++ CHECK_EQ(1, visitor.counter_); ++ ++ object1.Reset(); ++ object2.Reset(); ++} ++ ++ + TEST(RegExp) { + LocalContext context; + v8::HandleScope scope(context->GetIsolate()); From 90a738a4d4d85cb92a660849301008164b9c7a89 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 22:50:33 -0700 Subject: [PATCH 23/37] fix: _ASSERT is not defined anymore, the appropriate replacement is DCHECK --- .../desktop_notification_controller.cc | 12 ++++++------ .../win/win32_desktop_notifications/toast.h | 2 +- .../win/win32_desktop_notifications/toast_uia.cc | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc b/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc index e89e374668db..6810d0fb5c6d 100644 --- a/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc +++ b/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc @@ -126,7 +126,7 @@ LRESULT CALLBACK DesktopNotificationController::WndProc(HWND hwnd, } void DesktopNotificationController::StartAnimation() { - _ASSERT(hwnd_controller_); + DCHECK(hwnd_controller_); if (!is_animating_ && hwnd_controller_) { // NOTE: 15ms is shorter than what we'd need for 60 fps, but since @@ -217,7 +217,7 @@ void DesktopNotificationController::AnimateAll() { } if (!keep_animating) { - _ASSERT(hwnd_controller_); + DCHECK(hwnd_controller_); if (hwnd_controller_) KillTimer(hwnd_controller_, TimerID_Animate); is_animating_ = false; @@ -325,7 +325,7 @@ void DesktopNotificationController::CreateToast(NotificationLink&& data) { int toast_pos = 0; if (!instances_.empty()) { auto& item = instances_.back(); - _ASSERT(item.hwnd); + DCHECK(item.hwnd); ScreenMetrics scr; auto* toast = Toast::Get(item.hwnd); @@ -379,7 +379,7 @@ DesktopNotificationController::Notification::Notification( DesktopNotificationController::Notification::Notification( const shared_ptr& data) : data_(data) { - _ASSERT(data != nullptr); + DCHECK(data != nullptr); } DesktopNotificationController::Notification::~Notification() = default; @@ -391,7 +391,7 @@ bool DesktopNotificationController::Notification::operator==( void DesktopNotificationController::Notification::Close() { // No business calling this when not pointing to a valid instance - _ASSERT(data_); + DCHECK(data_); if (data_->controller) data_->controller->CloseNotification(*this); @@ -401,7 +401,7 @@ void DesktopNotificationController::Notification::Set(std::wstring caption, std::wstring body_text, HBITMAP image) { // No business calling this when not pointing to a valid instance - _ASSERT(data_); + DCHECK(data_); // Do nothing when the notification has been closed if (!data_->controller) diff --git a/atom/browser/notifications/win/win32_desktop_notifications/toast.h b/atom/browser/notifications/win/win32_desktop_notifications/toast.h index 1d8a7b79046d..89d81f8fd148 100644 --- a/atom/browser/notifications/win/win32_desktop_notifications/toast.h +++ b/atom/browser/notifications/win/win32_desktop_notifications/toast.h @@ -42,7 +42,7 @@ class DesktopNotificationController::Toast { return ease_in_active_ || ease_out_active_ || IsStackCollapseActive(); } bool IsHighlighted() const { - _ASSERT(!(is_highlighted_ && !IsWindowVisible(hwnd_))); + DCHECK(!(is_highlighted_ && !IsWindowVisible(hwnd_))); return is_highlighted_; } diff --git a/atom/browser/notifications/win/win32_desktop_notifications/toast_uia.cc b/atom/browser/notifications/win/win32_desktop_notifications/toast_uia.cc index 349b82b73c89..5cfcef1558fd 100644 --- a/atom/browser/notifications/win/win32_desktop_notifications/toast_uia.cc +++ b/atom/browser/notifications/win/win32_desktop_notifications/toast_uia.cc @@ -31,7 +31,7 @@ ULONG DesktopNotificationController::Toast::UIAutomationInterface::Release() { delete this; return 0; } - _ASSERT(ret > 0); + DCHECK(ret > 0); return ret; } From b965abfda84d084bf2c7f6d5427a393f09fc53c5 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 22:55:48 -0700 Subject: [PATCH 24/37] chore: replace DCHECK(a > b) with DCHECK_GT --- .../notifications/win/win32_desktop_notifications/toast_uia.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/browser/notifications/win/win32_desktop_notifications/toast_uia.cc b/atom/browser/notifications/win/win32_desktop_notifications/toast_uia.cc index 5cfcef1558fd..860aaf542085 100644 --- a/atom/browser/notifications/win/win32_desktop_notifications/toast_uia.cc +++ b/atom/browser/notifications/win/win32_desktop_notifications/toast_uia.cc @@ -31,7 +31,7 @@ ULONG DesktopNotificationController::Toast::UIAutomationInterface::Release() { delete this; return 0; } - DCHECK(ret > 0); + DCHECK_GT(ret, 0); return ret; } From 515c927b14351a41da6a483fb33dfff67d9bb099 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Fri, 22 Mar 2019 12:28:13 +0530 Subject: [PATCH 25/37] fixup! enable_file_url_support and enable_data_url_support have been removed --- atom/browser/io_thread.cc | 3 +++ atom/browser/net/url_request_context_getter.cc | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/atom/browser/io_thread.cc b/atom/browser/io_thread.cc index 45fe3db3e4fb..10fac020f8a4 100644 --- a/atom/browser/io_thread.cc +++ b/atom/browser/io_thread.cc @@ -40,6 +40,9 @@ void IOThread::Init() { std::unique_ptr builder = std::make_unique(); + // Enable file:// support. + builder->set_file_enabled(true); + auto cert_verifier = std::make_unique( std::make_unique( net::CertVerifyProc::CreateDefault())); diff --git a/atom/browser/net/url_request_context_getter.cc b/atom/browser/net/url_request_context_getter.cc index 3c582562178c..84c7471d496f 100644 --- a/atom/browser/net/url_request_context_getter.cc +++ b/atom/browser/net/url_request_context_getter.cc @@ -261,6 +261,10 @@ net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { if (!url_request_context_) { std::unique_ptr builder = std::make_unique(); + + // Enable file:// support. + builder->set_file_enabled(true); + auto network_delegate = std::make_unique(); network_delegate_ = network_delegate.get(); builder->set_network_delegate(std::move(network_delegate)); From 30448bb1b845493454cc58d9661839097b08ced7 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 23:42:24 -0700 Subject: [PATCH 26/37] build: allow zip files to be created larger than 2GB --- build/zip.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/zip.py b/build/zip.py index 1c5eb9bfd913..5e72d87f6060 100644 --- a/build/zip.py +++ b/build/zip.py @@ -52,7 +52,7 @@ def main(argv): if sys.platform == 'darwin': execute(['zip', '-r', '-y', dist_zip] + list(dist_files)) else: - with zipfile.ZipFile(dist_zip, 'w', zipfile.ZIP_DEFLATED) as z: + with zipfile.ZipFile(dist_zip, 'w', zipfile.ZIP_DEFLATED, True) as z: for dep in dist_files: if skip_path(dep, dist_zip, target_cpu): continue From 0fd0b3fb4b337c678cbe452d0236fbb523aa86b0 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 21 Mar 2019 23:45:28 -0700 Subject: [PATCH 27/37] chore: make DCHECK available in win7 toast impl --- .../notifications/win/win32_desktop_notifications/toast.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/atom/browser/notifications/win/win32_desktop_notifications/toast.h b/atom/browser/notifications/win/win32_desktop_notifications/toast.h index 89d81f8fd148..9748af760144 100644 --- a/atom/browser/notifications/win/win32_desktop_notifications/toast.h +++ b/atom/browser/notifications/win/win32_desktop_notifications/toast.h @@ -9,6 +9,8 @@ #include "atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.h" +#include "base/logging.h" + namespace atom { class DesktopNotificationController::Toast { From 43dc4e8a1343dfc5c3651bf55b319484e674ba8a Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Fri, 22 Mar 2019 01:09:12 -0700 Subject: [PATCH 28/37] chore: include what we use, cmath in toast.cc --- .../notifications/win/win32_desktop_notifications/toast.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/atom/browser/notifications/win/win32_desktop_notifications/toast.cc b/atom/browser/notifications/win/win32_desktop_notifications/toast.cc index eca973277f47..8bab5553e36b 100644 --- a/atom/browser/notifications/win/win32_desktop_notifications/toast.cc +++ b/atom/browser/notifications/win/win32_desktop_notifications/toast.cc @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "atom/browser/notifications/win/win32_desktop_notifications/common.h" From e352d735f67e88e5ac426b3588a98b25801ca0a6 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Fri, 22 Mar 2019 01:19:26 -0700 Subject: [PATCH 29/37] fix: use default constructor for NotificationData struct --- .../desktop_notification_controller.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc b/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc index 6810d0fb5c6d..bb6254934637 100644 --- a/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc +++ b/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc @@ -426,7 +426,7 @@ void DesktopNotificationController::Notification::Set(std::wstring caption, DesktopNotificationController::NotificationLink::NotificationLink( DesktopNotificationController* controller) - : shared_ptr(make_shared()) { + : shared_ptr(make_shared(NotificationData())) { get()->controller = controller; } From 7e9a271852b971ccab48c9ef72a59281d93bdc6b Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Fri, 22 Mar 2019 09:54:20 -0700 Subject: [PATCH 30/37] don't copy in make_shared in win32_desktop_notifications --- .../desktop_notification_controller.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc b/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc index bb6254934637..6810d0fb5c6d 100644 --- a/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc +++ b/atom/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc @@ -426,7 +426,7 @@ void DesktopNotificationController::Notification::Set(std::wstring caption, DesktopNotificationController::NotificationLink::NotificationLink( DesktopNotificationController* controller) - : shared_ptr(make_shared(NotificationData())) { + : shared_ptr(make_shared()) { get()->controller = controller; } From fe06784a3b61d9c5ef24b42cdfc998915ec28ef4 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Mon, 25 Mar 2019 13:11:54 -0700 Subject: [PATCH 31/37] build: disable the custom libcxx on Windows --- build/args/all.gn | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build/args/all.gn b/build/args/all.gn index b9142c7540bc..06a3543ff058 100644 --- a/build/args/all.gn +++ b/build/args/all.gn @@ -13,3 +13,7 @@ ffmpeg_branding = "Chrome" enable_basic_printing = true is_cfi = false + +if (is_win) { + use_custom_libcxx = false +} From a34c47b54234237696a6630718ff74609ab7cd00 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 28 Mar 2019 17:05:53 -0700 Subject: [PATCH 32/37] build: do not use custom libcxx on windows --- build/args/all.gn | 4 ---- .../chromium/browser_compositor_mac.patch | 2 +- .../common/chromium/can_create_window.patch | 20 ++++++++-------- .../common/chromium/command-ismediakey.patch | 14 +++-------- ...cross_site_document_resource_handler.patch | 4 ++-- .../disable_color_correct_rendering.patch | 22 ++++++++--------- patches/common/chromium/disable_hidden.patch | 6 ++--- ...requirement_for_beforeunload_dialogs.patch | 4 ++-- .../common/chromium/frame_host_manager.patch | 12 +++++----- patches/common/chromium/mas-cfisobjc.patch | 6 ++--- .../chromium/mas_blink_no_private_api.patch | 6 ++--- .../common/chromium/mas_no_private_api.patch | 24 +++++++++---------- .../render_widget_host_view_mac.patch | 8 +++---- .../common/chromium/scroll_bounce_flag.patch | 2 +- .../support_mixed_sandbox_with_zygote.patch | 10 ++++---- patches/common/chromium/web_contents.patch | 6 ++--- .../common/chromium/webview_cross_drag.patch | 2 +- 17 files changed, 70 insertions(+), 82 deletions(-) diff --git a/build/args/all.gn b/build/args/all.gn index 06a3543ff058..b9142c7540bc 100644 --- a/build/args/all.gn +++ b/build/args/all.gn @@ -13,7 +13,3 @@ ffmpeg_branding = "Chrome" enable_basic_printing = true is_cfi = false - -if (is_win) { - use_custom_libcxx = false -} diff --git a/patches/common/chromium/browser_compositor_mac.patch b/patches/common/chromium/browser_compositor_mac.patch index e8917c620b55..a8af0c2dc7dd 100644 --- a/patches/common/chromium/browser_compositor_mac.patch +++ b/patches/common/chromium/browser_compositor_mac.patch @@ -29,7 +29,7 @@ diff --git a/content/browser/renderer_host/browser_compositor_view_mac.mm b/cont index 0817b4eca4f4e6f7f5d250589c1e4dbcc068237c..dcc2340e59771e8d73de7e97fa2371d8bec7b149 100644 --- a/content/browser/renderer_host/browser_compositor_view_mac.mm +++ b/content/browser/renderer_host/browser_compositor_view_mac.mm -@@ -79,6 +79,12 @@ BrowserCompositorMac::~BrowserCompositorMac() { +@@ -79,6 +79,12 @@ DCHECK_EQ(1u, num_erased); } diff --git a/patches/common/chromium/can_create_window.patch b/patches/common/chromium/can_create_window.patch index 09c51911ee9f..61ed710e1fce 100644 --- a/patches/common/chromium/can_create_window.patch +++ b/patches/common/chromium/can_create_window.patch @@ -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 ff75eeab521bf92d0ea40ef6372b229b0233f4f0..6b037a3bd5ace397e1b357498ae3c562084d38af 100644 +index f1ee6aab83bfa5557ff27bca07d69e9a3544ded6..3421d787abf08f3854a5cf21ec62b880fcbba518 100644 --- a/content/browser/frame_host/render_frame_host_impl.cc +++ b/content/browser/frame_host/render_frame_host_impl.cc -@@ -3694,6 +3694,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -3646,6 +3646,7 @@ void RenderFrameHostImpl::CreateNewWindow( last_committed_origin_, params->window_container_type, params->target_url, params->referrer.To(), params->frame_name, params->disposition, *params->features, @@ -17,10 +17,10 @@ index ff75eeab521bf92d0ea40ef6372b229b0233f4f0..6b037a3bd5ace397e1b357498ae3c562 &no_javascript_access); diff --git a/content/common/frame.mojom b/content/common/frame.mojom -index 16a30995a0e20b1a32a418be5a44f1e3c2305cee..637ed8e1ee82cf1cacfedaf142fccc7d63ae98d6 100644 +index 8406b096d6f1e3e3c4b82a02ff4efa0d97ced63e..69424cdd76d458d632e0e2ed902858a7a607b43a 100644 --- a/content/common/frame.mojom +++ b/content/common/frame.mojom -@@ -261,6 +261,10 @@ struct CreateNewWindowParams { +@@ -275,6 +275,10 @@ struct CreateNewWindowParams { // The window features to use for the new window. blink.mojom.WindowFeatures features; @@ -32,10 +32,10 @@ index 16a30995a0e20b1a32a418be5a44f1e3c2305cee..637ed8e1ee82cf1cacfedaf142fccc7d // 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 9cd2333fe0270a36e4fdc67231adec3324f2f814..4665bd481c452ff790f3626b2f5dc2ab621ebfdf 100644 +index 6a952d2c52082a0a0fe1a256babfb49014d22e0b..04c766ffe55d6c24b7aaa19e70236a7a93fb015c 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -506,6 +506,8 @@ bool ContentBrowserClient::CanCreateWindow( +@@ -513,6 +513,8 @@ bool ContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -45,7 +45,7 @@ index 9cd2333fe0270a36e4fdc67231adec3324f2f814..4665bd481c452ff790f3626b2f5dc2ab 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 009991aa57e8f543d2fdb7095b2fe2c863373d71..ef7385a2d8619b1264e4aa77629d16948bd3669a 100644 +index 42b673aea33b2831308244eb12e2670156e8f615..3f9739aa7b3a29106bc267ee9ba67dd7ebdd3099 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -175,6 +175,7 @@ class RenderFrameHost; @@ -56,7 +56,7 @@ index 009991aa57e8f543d2fdb7095b2fe2c863373d71..ef7385a2d8619b1264e4aa77629d1694 class SerialDelegate; class ServiceManagerConnection; class SiteInstance; -@@ -778,6 +779,8 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -786,6 +787,8 @@ class CONTENT_EXPORT ContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -66,7 +66,7 @@ index 009991aa57e8f543d2fdb7095b2fe2c863373d71..ef7385a2d8619b1264e4aa77629d1694 bool opener_suppressed, bool* no_javascript_access); diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc -index c748edbf5a3264c89b83a88ade3449ce472839ad..6452ef002ce63936f5321bf755f47408f59d0207 100644 +index 2002ea3db55b47c8792ad4e2fca54b08585e89ea..07126db61d6985e42628ea2e518eeda9457f0e71 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -76,6 +76,7 @@ @@ -77,7 +77,7 @@ index c748edbf5a3264c89b83a88ade3449ce472839ad..6452ef002ce63936f5321bf755f47408 #include "content/renderer/media/audio/audio_device_factory.h" #include "content/renderer/media/stream/media_stream_device_observer.h" #include "content/renderer/media/video_capture_impl_manager.h" -@@ -1354,6 +1355,8 @@ WebView* RenderViewImpl::CreateView( +@@ -1360,6 +1361,8 @@ WebView* RenderViewImpl::CreateView( } params->features = ConvertWebWindowFeaturesToMojoWindowFeatures(features); diff --git a/patches/common/chromium/command-ismediakey.patch b/patches/common/chromium/command-ismediakey.patch index 59eb8955feee..c79b3e53c157 100644 --- a/patches/common/chromium/command-ismediakey.patch +++ b/patches/common/chromium/command-ismediakey.patch @@ -18,7 +18,7 @@ diff --git a/chrome/browser/extensions/global_shortcut_listener_mac.mm b/chrome/ index befe726af9c10b1563a7fc0bb77cc55f65943d5c..46c6fe08bab8471007f78d3ef227e5195bfdf0e1 100644 --- a/chrome/browser/extensions/global_shortcut_listener_mac.mm +++ b/chrome/browser/extensions/global_shortcut_listener_mac.mm -@@ -21,6 +21,26 @@ using extensions::GlobalShortcutListenerMac; +@@ -21,6 +21,26 @@ namespace extensions { @@ -46,7 +46,7 @@ index befe726af9c10b1563a7fc0bb77cc55f65943d5c..46c6fe08bab8471007f78d3ef227e519 GlobalShortcutListener* GlobalShortcutListener::GetInstance() { CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); diff --git a/chrome/browser/extensions/global_shortcut_listener_win.cc b/chrome/browser/extensions/global_shortcut_listener_win.cc -index f5d0ac4ba826ee4f023224ce90c6d8b6614c2912..380682029d20cab485bb8b52bd5c7d9cdc424c7d 100644 +index f5d0ac4ba826ee4f023224ce90c6d8b6614c2912..2dac08bf9fb46beed57484636c9304ceaea347fc 100644 --- a/chrome/browser/extensions/global_shortcut_listener_win.cc +++ b/chrome/browser/extensions/global_shortcut_listener_win.cc @@ -62,6 +62,8 @@ void GlobalShortcutListenerWin::OnWndProc(HWND hwnd, @@ -58,14 +58,6 @@ index f5d0ac4ba826ee4f023224ce90c6d8b6614c2912..380682029d20cab485bb8b52bd5c7d9c ui::Accelerator accelerator( ui::KeyboardCodeForWindowsKeyCode(key_code), modifiers); -@@ -98,6 +100,7 @@ bool GlobalShortcutListenerWin::RegisterAcceleratorImpl( - modifiers |= accelerator.IsShiftDown() ? MOD_SHIFT : 0; - modifiers |= accelerator.IsCtrlDown() ? MOD_CONTROL : 0; - modifiers |= accelerator.IsAltDown() ? MOD_ALT : 0; -+ modifiers |= accelerator.IsCmdDown() ? MOD_WIN : 0; - - // Create an observer that registers a hot key for |accelerator|. - std::unique_ptr observer = diff --git a/chrome/browser/extensions/global_shortcut_listener_x11.cc b/chrome/browser/extensions/global_shortcut_listener_x11.cc index 392cf3d58c64c088596e8d321a2ce37b0ec60b6e..43e30f47240dc10a3a9b950255d4e48792cc4159 100644 --- a/chrome/browser/extensions/global_shortcut_listener_x11.cc @@ -104,7 +96,7 @@ index 71b417ee8b64aa2ff7f1b2390851668ec1dcd7cf..1768af408d4cc3075e5bae046649e495 } return VKEY_UNKNOWN; } -@@ -192,7 +198,10 @@ CGEventRef MediaKeysListenerImpl::EventTapCallback(CGEventTapProxy proxy, +@@ -192,7 +198,10 @@ static CGEventRef EventTapCallback(CGEventTapProxy proxy, int key_code = (data1 & 0xFFFF0000) >> 16; if (key_code != NX_KEYTYPE_PLAY && key_code != NX_KEYTYPE_NEXT && key_code != NX_KEYTYPE_PREVIOUS && key_code != NX_KEYTYPE_FAST && diff --git a/patches/common/chromium/cross_site_document_resource_handler.patch b/patches/common/chromium/cross_site_document_resource_handler.patch index fe16980b2ed7..d6e7be207f86 100644 --- a/patches/common/chromium/cross_site_document_resource_handler.patch +++ b/patches/common/chromium/cross_site_document_resource_handler.patch @@ -22,7 +22,7 @@ index f86a9167ac1ec5e7b082e474eb4b5f217d06df92..47df32ecb078a8f18e474f5c38faf2c7 } diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc -index 08fd583f43c15505fa7b8fa4947db429bb3cc595..a841e5c00e2fcc52481ffffcd62fa55892ab8109 100644 +index b41997165352e06cd6179e1d0dd3c18e4ab819a2..bab2e97e836c81ccce6f7ba874ecfcafc3a05de0 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc @@ -61,6 +61,10 @@ ContentBrowserClient::SiteInstanceForNavigationType ContentBrowserClient::Should @@ -37,7 +37,7 @@ index 08fd583f43c15505fa7b8fa4947db429bb3cc595..a841e5c00e2fcc52481ffffcd62fa558 const MainFunctionParams& parameters) { return nullptr; diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 53aeab691ae012401008162e71415e64fa204177..9161d0055ad26bd95de7f8fcad3c1587db1e54e9 100644 +index 406cca4538b978a8de41845b02f4c0d15b393cde..a5e64cf1f90b3a184e0b5ce69f5a9baedcf1a27c 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -241,6 +241,9 @@ class CONTENT_EXPORT ContentBrowserClient { diff --git a/patches/common/chromium/disable_color_correct_rendering.patch b/patches/common/chromium/disable_color_correct_rendering.patch index 82cd74cb53eb..2bdf90143e26 100644 --- a/patches/common/chromium/disable_color_correct_rendering.patch +++ b/patches/common/chromium/disable_color_correct_rendering.patch @@ -32,10 +32,10 @@ index 04e48714a6f4fcf980f91d75e319667dc0ee18a4..0ec60a0bf9f903de67f69422f22b674b // Image Decode Service and raster tiles without images until the decode is // ready. diff --git a/components/viz/common/display/renderer_settings.h b/components/viz/common/display/renderer_settings.h -index ce4fb4ca4f04c5668795c56ce536b4be292aa278..a6fec64c65f5916896e627473b0f8645a867a5ce 100644 +index 78041fcb9647f740c6a142ec65f2418712c6286c..04e75ac40c38a38bdec634d1aa645854cb1a80d6 100644 --- a/components/viz/common/display/renderer_settings.h +++ b/components/viz/common/display/renderer_settings.h -@@ -20,6 +20,7 @@ class VIZ_COMMON_EXPORT RendererSettings { +@@ -23,6 +23,7 @@ class VIZ_COMMON_EXPORT RendererSettings { RendererSettings(const RendererSettings& other); ~RendererSettings(); @@ -44,10 +44,10 @@ index ce4fb4ca4f04c5668795c56ce536b4be292aa278..a6fec64c65f5916896e627473b0f8645 bool force_antialiasing = false; bool force_blending_with_shaders = false; diff --git a/components/viz/host/renderer_settings_creation.cc b/components/viz/host/renderer_settings_creation.cc -index ee1f83f4d3db713f64c4175615be816198ea44a1..446df2e9b84565677ae63893391291877661a267 100644 +index 5d06436069bc7ecc04f3794a873e6f7f22d55042..c5176776562d3506eef384e5e2c4d5a6e89aba63 100644 --- a/components/viz/host/renderer_settings_creation.cc +++ b/components/viz/host/renderer_settings_creation.cc -@@ -11,6 +11,7 @@ +@@ -12,6 +12,7 @@ #include "components/viz/common/display/renderer_settings.h" #include "components/viz/common/features.h" #include "ui/base/ui_base_switches.h" @@ -55,7 +55,7 @@ index ee1f83f4d3db713f64c4175615be816198ea44a1..446df2e9b84565677ae6389339129187 #if defined(OS_MACOSX) #include "ui/base/cocoa/remote_layer_api.h" -@@ -43,6 +44,8 @@ bool GetSwitchValueAsInt(const base::CommandLine* command_line, +@@ -48,6 +49,8 @@ bool GetSwitchValueAsInt(const base::CommandLine* command_line, RendererSettings CreateRendererSettings() { RendererSettings renderer_settings; base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); @@ -203,7 +203,7 @@ index 9e0979a93d698665b08623ad7cbc11939d7f4ff8..93f99b09250ab1f515e13de3ac80cea1 + +#undef PATCH_CS diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc -index e43e5f6bb667a62e7e1205e8da6073de6179e79f..027a552cfbfce3f4f8fe5670bec7db45ad19e57a 100644 +index 6a288270e96b2288a1c7a53bba94f21ee41e0707..e7010b8cd6d3dc4c6479fbbabff131fb59a9d3c4 100644 --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc @@ -192,6 +192,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus( @@ -215,10 +215,10 @@ index e43e5f6bb667a62e7e1205e8da6073de6179e79f..027a552cfbfce3f4f8fe5670bec7db45 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 b5a8bc48d92a6b2f7fc031ca7ee662db26941008..7805ce82b11be1eaed59aae1fe76f6fd13e901a5 100644 +index e600dd4b1599d7aa0e02c2bab2644c6ee8703140..6b188f8d94a6f372f59ef6a0f6438ef63dfd541f 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -220,6 +220,7 @@ +@@ -219,6 +219,7 @@ #include "ui/base/ui_base_switches.h" #include "ui/base/ui_base_switches_util.h" #include "ui/display/display_switches.h" @@ -226,7 +226,7 @@ index b5a8bc48d92a6b2f7fc031ca7ee662db26941008..7805ce82b11be1eaed59aae1fe76f6fd #include "ui/gl/gl_switches.h" #include "ui/native_theme/native_theme_features.h" -@@ -2953,6 +2954,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -2939,6 +2940,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[] = { @@ -235,10 +235,10 @@ index b5a8bc48d92a6b2f7fc031ca7ee662db26941008..7805ce82b11be1eaed59aae1fe76f6fd network::switches::kExplicitlyAllowedPorts, service_manager::switches::kDisableInProcessStackTraces, diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc -index e4e8117be4b425e82b58e7e58ce0008a353e4fba..ede9225f944796d4375a704b944b79c47750f8f2 100644 +index dd7a1cb4d0c303ac03e612b6702c8731882ca88d..22939ad3934b64ac8018663b56d788eeacde61f7 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc -@@ -2771,6 +2771,9 @@ cc::LayerTreeSettings RenderWidget::GenerateLayerTreeSettings( +@@ -2805,6 +2805,9 @@ cc::LayerTreeSettings RenderWidget::GenerateLayerTreeSettings( settings.main_frame_before_activation_enabled = cmd.HasSwitch(cc::switches::kEnableMainFrameBeforeActivation); diff --git a/patches/common/chromium/disable_hidden.patch b/patches/common/chromium/disable_hidden.patch index f3fa238c3470..ea6e68c54d1b 100644 --- a/patches/common/chromium/disable_hidden.patch +++ b/patches/common/chromium/disable_hidden.patch @@ -5,10 +5,10 @@ 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 5be3603a8100f731e70dd1ea47205c3e213af413..bf9dc541d3e8889f512fe287e48b67210bc5c2b8 100644 +index a69f7599680cf91340429df922ab503e86be8adf..091a2a140f2f12dabbecad412a20e44f66829a2f 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -765,6 +765,9 @@ void RenderWidgetHostImpl::WasHidden() { +@@ -764,6 +764,9 @@ void RenderWidgetHostImpl::WasHidden() { if (is_hidden_) return; @@ -19,7 +19,7 @@ index 5be3603a8100f731e70dd1ea47205c3e213af413..bf9dc541d3e8889f512fe287e48b6721 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 4ea7d993a8d84eabf2485e07e51fa20f2c2c17e7..06ecfc4c90dc8105fdb2ed05386b5ea0e8a7ef3a 100644 +index ce8bfd88b4956101a376c71623d392ca93b49caf..2ba6d13468468333e03afe3f0a50fdeeacf4972e 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h @@ -153,6 +153,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl diff --git a/patches/common/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch b/patches/common/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch index b599b366e657..34c5acac5798 100644 --- a/patches/common/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch +++ b/patches/common/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch @@ -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 02e6831f00c14a9aab6ba6d4218a94ec133c6076..5746b1207c4ecd6c2d252be79a7e97bd82cc8d0a 100644 +index faecf207e5ab8e40c4c8e72bab79c0d12cd6a4d3..ee6eb1aeaaee8b97e4c6a3e741e75c71ab931305 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -3682,7 +3682,9 @@ bool Document::DispatchBeforeUnloadEvent(ChromeClient* chrome_client, +@@ -3562,7 +3562,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); diff --git a/patches/common/chromium/frame_host_manager.patch b/patches/common/chromium/frame_host_manager.patch index 7dc413394089..f143a700e44e 100644 --- a/patches/common/chromium/frame_host_manager.patch +++ b/patches/common/chromium/frame_host_manager.patch @@ -7,10 +7,10 @@ Allows embedder to intercept site instances chosen by chromium and respond with custom instance. diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc -index cc7c7b4ffab5377fa71016e233fbfaae87d50329..81a351569528e74fa44e68a804de968bc3a08742 100644 +index 5116c5e77acb759b504e3c1dae027b868edb7013..cf10fdf5136d35961abf972603863ba8fa97dfb5 100644 --- a/content/browser/frame_host/render_frame_host_manager.cc +++ b/content/browser/frame_host/render_frame_host_manager.cc -@@ -2030,6 +2030,16 @@ bool RenderFrameHostManager::InitRenderView( +@@ -2008,6 +2008,16 @@ bool RenderFrameHostManager::InitRenderView( scoped_refptr RenderFrameHostManager::GetSiteInstanceForNavigationRequest( const NavigationRequest& request) { @@ -27,7 +27,7 @@ index cc7c7b4ffab5377fa71016e233fbfaae87d50329..81a351569528e74fa44e68a804de968b // First, check if the navigation can switch SiteInstances. If not, the // navigation should use the current SiteInstance. SiteInstance* current_site_instance = render_frame_host_->GetSiteInstance(); -@@ -2062,6 +2072,51 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -2040,6 +2050,51 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( request.common_params().url); no_renderer_swap_allowed |= request.from_begin_navigation() && !can_renderer_initiate_transfer; @@ -79,7 +79,7 @@ index cc7c7b4ffab5377fa71016e233fbfaae87d50329..81a351569528e74fa44e68a804de968b } else { // Subframe navigations will use the current renderer, unless specifically // allowed to swap processes. -@@ -2073,23 +2128,17 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -2051,23 +2106,17 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( if (no_renderer_swap_allowed && !should_swap_for_error_isolation) return scoped_refptr(current_site_instance); @@ -108,7 +108,7 @@ index cc7c7b4ffab5377fa71016e233fbfaae87d50329..81a351569528e74fa44e68a804de968b } diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc -index 4665bd481c452ff790f3626b2f5dc2ab621ebfdf..08fd583f43c15505fa7b8fa4947db429bb3cc595 100644 +index 04c766ffe55d6c24b7aaa19e70236a7a93fb015c..b41997165352e06cd6179e1d0dd3c18e4ab819a2 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc @@ -51,6 +51,16 @@ void OverrideOnBindInterface(const service_manager::BindSourceInfo& remote_info, @@ -129,7 +129,7 @@ index 4665bd481c452ff790f3626b2f5dc2ab621ebfdf..08fd583f43c15505fa7b8fa4947db429 const MainFunctionParams& parameters) { return nullptr; diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index ef7385a2d8619b1264e4aa77629d16948bd3669a..53aeab691ae012401008162e71415e64fa204177 100644 +index 3f9739aa7b3a29106bc267ee9ba67dd7ebdd3099..406cca4538b978a8de41845b02f4c0d15b393cde 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -210,8 +210,37 @@ CONTENT_EXPORT void OverrideOnBindInterface( diff --git a/patches/common/chromium/mas-cfisobjc.patch b/patches/common/chromium/mas-cfisobjc.patch index 0aecb9c209a5..b20bd6f7530a 100644 --- a/patches/common/chromium/mas-cfisobjc.patch +++ b/patches/common/chromium/mas-cfisobjc.patch @@ -9,7 +9,7 @@ diff --git a/base/mac/foundation_util.mm b/base/mac/foundation_util.mm index 26a40417ae92c2e12c3901c50e1f101d9b0f57e9..810fbeae866a1507762703296fdd836dd3c9e4ba 100644 --- a/base/mac/foundation_util.mm +++ b/base/mac/foundation_util.mm -@@ -26,7 +26,6 @@ CFTypeID SecKeyGetTypeID(); +@@ -26,7 +26,6 @@ #if !defined(OS_IOS) CFTypeID SecACLGetTypeID(); CFTypeID SecTrustedApplicationGetTypeID(); @@ -17,7 +17,7 @@ index 26a40417ae92c2e12c3901c50e1f101d9b0f57e9..810fbeae866a1507762703296fdd836d #endif } // extern "C" -@@ -315,8 +314,7 @@ NSFont* CFToNSCast(CTFontRef cf_val) { +@@ -315,8 +314,7 @@ void SetBaseBundleID(const char* new_base_bundle_id) { const_cast(reinterpret_cast(cf_val)); DCHECK(!cf_val || CTFontGetTypeID() == CFGetTypeID(cf_val) || @@ -27,7 +27,7 @@ index 26a40417ae92c2e12c3901c50e1f101d9b0f57e9..810fbeae866a1507762703296fdd836d return ns_val; } -@@ -384,9 +382,6 @@ CFCast(const CFTypeRef& cf_val) { +@@ -384,9 +382,6 @@ CTFontRef NSToCFCast(NSFont* ns_val) { return (CTFontRef)(cf_val); } diff --git a/patches/common/chromium/mas_blink_no_private_api.patch b/patches/common/chromium/mas_blink_no_private_api.patch index d687746c3ece..3870d2481d5d 100644 --- a/patches/common/chromium/mas_blink_no_private_api.patch +++ b/patches/common/chromium/mas_blink_no_private_api.patch @@ -18,7 +18,7 @@ index 94afefcee81b87c05bf9b1199d90d3d4b5ea84a6..2ec7f04c71824b47de1ddbf1f0e8625d extern "C" { // Kill ring calls. Would be better to use NSKillRing.h, but that's not -@@ -39,38 +40,53 @@ NSString* _NSYankFromKillRing(); +@@ -39,38 +40,53 @@ void _NSNewKillRingSequence(); void _NSSetKillRingToYankedState(); } @@ -92,7 +92,7 @@ index 7a1260db0a139f9f3f8a823af2c220f36162812a..bf9cf7046e2fc9cdfee5b92f2a348185 namespace blink { -@@ -73,10 +75,12 @@ bool ThemePainterMac::PaintTextField(const Node* node, +@@ -73,10 +75,12 @@ void _NSDrawCarbonThemeListBox(NSRect frame, // behavior change while remaining a fragile solution. // https://bugs.chromium.org/p/chromium/issues/detail?id=658085#c3 if (!use_ns_text_field_cell) { @@ -105,7 +105,7 @@ index 7a1260db0a139f9f3f8a823af2c220f36162812a..bf9cf7046e2fc9cdfee5b92f2a348185 return false; } -@@ -162,10 +166,12 @@ bool ThemePainterMac::PaintTextArea(const Node* node, +@@ -162,10 +166,12 @@ void _NSDrawCarbonThemeListBox(NSRect frame, const PaintInfo& paint_info, const IntRect& r) { LocalCurrentGraphicsContext local_context(paint_info.context, r); diff --git a/patches/common/chromium/mas_no_private_api.patch b/patches/common/chromium/mas_no_private_api.patch index f89eefefd1b2..c7798a6e4ffe 100644 --- a/patches/common/chromium/mas_no_private_api.patch +++ b/patches/common/chromium/mas_no_private_api.patch @@ -38,7 +38,7 @@ index d38fa48b8b890d90f2911995a2a51c249005c827..5fe68c71fe101a307ef565013a91b109 // 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 9b8e15866a325faee845a97f0e5a2f14e343d2f6..148d5fdd3f11ab318f6a0d0add23bd4533b47ed9 100644 +index 17dc6271190c0687fb38c181d9fdb6b5d6addcd4..90cc1e5d47b52aeac38e8e3b638b1f76fa24075a 100644 --- a/content/browser/accessibility/browser_accessibility_cocoa.mm +++ b/content/browser/accessibility/browser_accessibility_cocoa.mm @@ -141,6 +141,7 @@ @@ -101,7 +101,7 @@ index 9b8e15866a325faee845a97f0e5a2f14e343d2f6..148d5fdd3f11ab318f6a0d0add23bd45 - (NSNumber*)expanded { if (![self instanceActive]) -@@ -2035,6 +2045,7 @@ - (NSValue*)selectedTextRange { +@@ -2027,6 +2037,7 @@ - (NSValue*)selectedTextRange { return [NSValue valueWithRange:NSMakeRange(selStart, selLength)]; } @@ -109,7 +109,7 @@ index 9b8e15866a325faee845a97f0e5a2f14e343d2f6..148d5fdd3f11ab318f6a0d0add23bd45 - (id)selectedTextMarkerRange { if (![self instanceActive]) return nil; -@@ -2067,6 +2078,7 @@ - (id)selectedTextMarkerRange { +@@ -2059,6 +2070,7 @@ - (id)selectedTextMarkerRange { anchorAffinity, *focusObject, focusOffset, focusAffinity)); } @@ -117,7 +117,7 @@ index 9b8e15866a325faee845a97f0e5a2f14e343d2f6..148d5fdd3f11ab318f6a0d0add23bd45 - (NSValue*)size { if (![self instanceActive]) -@@ -2099,6 +2111,7 @@ - (NSString*)sortDirection { +@@ -2091,6 +2103,7 @@ - (NSString*)sortDirection { return nil; } @@ -125,7 +125,7 @@ index 9b8e15866a325faee845a97f0e5a2f14e343d2f6..148d5fdd3f11ab318f6a0d0add23bd45 // Returns a text marker that points to the first character in the document that // can be selected with VoiceOver. - (id)startTextMarker { -@@ -2109,6 +2122,7 @@ - (id)startTextMarker { +@@ -2101,6 +2114,7 @@ - (id)startTextMarker { BrowserAccessibilityPositionInstance position = root->CreatePositionAt(0); return CreateTextMarker(position->CreatePositionAtStartOfAnchor()); } @@ -133,7 +133,7 @@ index 9b8e15866a325faee845a97f0e5a2f14e343d2f6..148d5fdd3f11ab318f6a0d0add23bd45 // Returns a subrole based upon the role. - (NSString*)subrole { -@@ -2414,12 +2428,14 @@ - (NSAttributedString*)attributedValueForRange:(NSRange)range { +@@ -2406,12 +2420,14 @@ - (NSAttributedString*)attributedValueForRange:(NSRange)range { NSMutableAttributedString* attributedValue = [[[NSMutableAttributedString alloc] initWithString:value] autorelease]; @@ -148,7 +148,7 @@ index 9b8e15866a325faee845a97f0e5a2f14e343d2f6..148d5fdd3f11ab318f6a0d0add23bd45 return [attributedValue attributedSubstringFromRange:range]; } -@@ -2504,6 +2520,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute +@@ -2496,6 +2512,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute return ToBrowserAccessibilityCocoa(cell); } @@ -156,7 +156,7 @@ index 9b8e15866a325faee845a97f0e5a2f14e343d2f6..148d5fdd3f11ab318f6a0d0add23bd45 if ([attribute isEqualToString:@"AXUIElementForTextMarker"]) { BrowserAccessibilityPositionInstance position = CreatePositionFromTextMarker(parameter); -@@ -2681,6 +2698,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute +@@ -2673,6 +2690,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute NSString* text = GetTextForTextMarkerRange(parameter); return [NSNumber numberWithInt:[text length]]; } @@ -164,7 +164,7 @@ index 9b8e15866a325faee845a97f0e5a2f14e343d2f6..148d5fdd3f11ab318f6a0d0add23bd45 if ([attribute isEqualToString: NSAccessibilityBoundsForRangeParameterizedAttribute]) { -@@ -2714,6 +2732,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute +@@ -2706,6 +2724,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute return nil; } @@ -172,7 +172,7 @@ index 9b8e15866a325faee845a97f0e5a2f14e343d2f6..148d5fdd3f11ab318f6a0d0add23bd45 if ([attribute isEqualToString: NSAccessibilityLineTextMarkerRangeForTextMarkerParameterizedAttribute]) { -@@ -2793,6 +2812,7 @@ AXPlatformRange range(position->CreatePreviousLineStartPosition( +@@ -2785,6 +2804,7 @@ AXPlatformRange range(position->CreatePreviousLineStartPosition( return @(child->GetIndexInParent()); } @@ -277,10 +277,10 @@ index fe0b73b51492ca08cbebf3aec74ea0a7caf44aef..fb8b362097f18d947219af36f84b9bea void BluetoothAdapterMac::RemovePairingDelegateInternal( diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn -index fa3a7b08b0ae4f09ff2aeffffc93e65181f4994b..64cf5f96e7c85e2d8969c11ccd27ba6d3154fe91 100644 +index dbc89abd64d5dae45b239482804ecdabbf7086f6..aba6eb679303fc7fb033ddf05fc941cf27ce8439 100644 --- a/media/audio/BUILD.gn +++ b/media/audio/BUILD.gn -@@ -184,6 +184,12 @@ source_set("audio") { +@@ -180,6 +180,12 @@ source_set("audio") { "mac/scoped_audio_unit.cc", "mac/scoped_audio_unit.h", ] diff --git a/patches/common/chromium/render_widget_host_view_mac.patch b/patches/common/chromium/render_widget_host_view_mac.patch index 6e2f583378af..68a1015b9646 100644 --- a/patches/common/chromium/render_widget_host_view_mac.patch +++ b/patches/common/chromium/render_widget_host_view_mac.patch @@ -20,7 +20,7 @@ index d04130dcb387a985c57fd0d94c10a8c327afe6f3..8d2ed9af59a8e9bbd242ab098cba7f75 // These are not documented, so use only after checking -respondsToSelector:. @interface NSApplication (UndocumentedSpeechMethods) - (void)speakString:(NSString*)string; -@@ -403,6 +408,9 @@ void ExtractUnderlines(NSAttributedString* string, +@@ -403,6 +408,9 @@ - (BOOL)acceptsMouseEventsWhenInactive { } - (BOOL)acceptsFirstMouse:(NSEvent*)theEvent { @@ -30,7 +30,7 @@ index d04130dcb387a985c57fd0d94c10a8c327afe6f3..8d2ed9af59a8e9bbd242ab098cba7f75 return [self acceptsMouseEventsWhenInactive]; } -@@ -786,6 +794,10 @@ void ExtractUnderlines(NSAttributedString* string, +@@ -786,6 +794,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv { eventType == NSKeyDown && !(modifierFlags & NSCommandKeyMask); @@ -41,7 +41,7 @@ index d04130dcb387a985c57fd0d94c10a8c327afe6f3..8d2ed9af59a8e9bbd242ab098cba7f75 // We only handle key down events and just simply forward other events. if (eventType != NSKeyDown) { clientHelper_->ForwardKeyboardEvent(event, latency_info); -@@ -1534,9 +1546,11 @@ void ExtractUnderlines(NSAttributedString* string, +@@ -1534,9 +1546,11 @@ - (id)accessibilityFocusedUIElement { // Since this implementation doesn't have to wait any IPC calls, this doesn't // make any key-typing jank. --hbono 7/23/09 // @@ -53,7 +53,7 @@ index d04130dcb387a985c57fd0d94c10a8c327afe6f3..8d2ed9af59a8e9bbd242ab098cba7f75 - (NSArray*)validAttributesForMarkedText { // This code is just copied from WebKit except renaming variables. -@@ -1545,7 +1559,10 @@ extern NSString* NSTextInputReplacementRangeAttributeName; +@@ -1545,7 +1559,10 @@ - (NSArray*)validAttributesForMarkedText { initWithObjects:NSUnderlineStyleAttributeName, NSUnderlineColorAttributeName, NSMarkedClauseSegmentAttributeName, diff --git a/patches/common/chromium/scroll_bounce_flag.patch b/patches/common/chromium/scroll_bounce_flag.patch index 1dc0569288c6..300fd8adc543 100644 --- a/patches/common/chromium/scroll_bounce_flag.patch +++ b/patches/common/chromium/scroll_bounce_flag.patch @@ -6,7 +6,7 @@ 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 44d963793f143530704a0a06273e51d7c68766cc..5cea319fea51e27f6bd5be7221bafb186b2a3973 100644 +index 01be4381e488e7171e02281e158cbad227f5ae09..7739228c99432dd66fda16614c40a50254294224 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc @@ -1535,7 +1535,7 @@ bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() { diff --git a/patches/common/chromium/support_mixed_sandbox_with_zygote.patch b/patches/common/chromium/support_mixed_sandbox_with_zygote.patch index 6c49d6bb3824..b86e78ec72a5 100644 --- a/patches/common/chromium/support_mixed_sandbox_with_zygote.patch +++ b/patches/common/chromium/support_mixed_sandbox_with_zygote.patch @@ -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 d2cf83659d91d0439c341d8b9fe40d36f616a9d3..b5a8bc48d92a6b2f7fc031ca7ee662db26941008 100644 +index 19cb14736dfd1e87f3f3d9e0e552e6c0fdec5290..e600dd4b1599d7aa0e02c2bab2644c6ee8703140 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -423,6 +423,10 @@ class RendererSandboxedProcessLauncherDelegate +@@ -422,6 +422,10 @@ class RendererSandboxedProcessLauncherDelegate : public SandboxedProcessLauncherDelegate { public: RendererSandboxedProcessLauncherDelegate() {} @@ -36,7 +36,7 @@ index d2cf83659d91d0439c341d8b9fe40d36f616a9d3..b5a8bc48d92a6b2f7fc031ca7ee662db ~RendererSandboxedProcessLauncherDelegate() override {} -@@ -442,6 +446,9 @@ class RendererSandboxedProcessLauncherDelegate +@@ -441,6 +445,9 @@ class RendererSandboxedProcessLauncherDelegate #if BUILDFLAG(USE_ZYGOTE_HANDLE) service_manager::ZygoteHandle GetZygote() override { @@ -46,7 +46,7 @@ index d2cf83659d91d0439c341d8b9fe40d36f616a9d3..b5a8bc48d92a6b2f7fc031ca7ee662db const base::CommandLine& browser_command_line = *base::CommandLine::ForCurrentProcess(); base::CommandLine::StringType renderer_prefix = -@@ -455,6 +462,11 @@ class RendererSandboxedProcessLauncherDelegate +@@ -454,6 +461,11 @@ class RendererSandboxedProcessLauncherDelegate service_manager::SandboxType GetSandboxType() override { return service_manager::SANDBOX_TYPE_RENDERER; } @@ -58,7 +58,7 @@ index d2cf83659d91d0439c341d8b9fe40d36f616a9d3..b5a8bc48d92a6b2f7fc031ca7ee662db }; const char kSessionStorageHolderKey[] = "kSessionStorageHolderKey"; -@@ -1741,11 +1753,18 @@ bool RenderProcessHostImpl::Init() { +@@ -1736,11 +1748,18 @@ bool RenderProcessHostImpl::Init() { cmd_line->PrependWrapper(renderer_prefix); AppendRendererCommandLine(cmd_line.get()); diff --git a/patches/common/chromium/web_contents.patch b/patches/common/chromium/web_contents.patch index b2233bdb6e20..c7c3c035a272 100644 --- a/patches/common/chromium/web_contents.patch +++ b/patches/common/chromium/web_contents.patch @@ -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 c7ea2789c7d8cb28df9f270340c201cf73a03e7e..34578d40d4505d7bb134650686c2cc61af2c7c3a 100644 +index 487d5876e20ddcfe8a7b55f4ee5ba32e82934ba0..f603b8ce6ee7a27af2e2c5ecf8bf1e6660d8eec4 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -2069,6 +2069,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2066,6 +2066,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 c7ea2789c7d8cb28df9f270340c201cf73a03e7e..34578d40d4505d7bb134650686c2cc61 WebContentsViewDelegate* delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -2084,6 +2090,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2081,6 +2087,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { &render_view_host_delegate_view_); } } diff --git a/patches/common/chromium/webview_cross_drag.patch b/patches/common/chromium/webview_cross_drag.patch index 9ed2eef35d8f..21f3a48243e0 100644 --- a/patches/common/chromium/webview_cross_drag.patch +++ b/patches/common/chromium/webview_cross_drag.patch @@ -20,7 +20,7 @@ diff --git a/content/browser/web_contents/web_drag_dest_mac.mm b/content/browser index 9423f9c8a225f9d18f6dcd0b9f7de033cbe495df..e7fe311327f698a760c09db2c7677a10c59f5224 100644 --- a/content/browser/web_contents/web_drag_dest_mac.mm +++ b/content/browser/web_contents/web_drag_dest_mac.mm -@@ -336,6 +336,7 @@ content::GlobalRoutingID GetRenderViewHostID(content::RenderViewHost* rvh) { +@@ -336,6 +336,7 @@ - (void)setDragStartTrackersForProcess:(int)processID { } - (bool)isValidDragTarget:(content::RenderWidgetHostImpl*)targetRWH { From 2fda0bdc891027003f391389aa076dbd8fc2c825 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 28 Mar 2019 18:33:04 -0700 Subject: [PATCH 33/37] chore: enable_data_url_support does not exist anymore --- atom/browser/net/network_context_service.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/atom/browser/net/network_context_service.cc b/atom/browser/net/network_context_service.cc index d070828a1b57..d4d4d80e1597 100644 --- a/atom/browser/net/network_context_service.cc +++ b/atom/browser/net/network_context_service.cc @@ -80,9 +80,6 @@ NetworkContextService::CreateNetworkContextParams(bool in_memory, network_context_params->enable_ftp_url_support = true; #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT) - // Needed for PAC scripts that use data URLs. - network_context_params->enable_data_url_support = true; - proxy_config_monitor_.AddToNetworkContextParams(network_context_params.get()); BrowserProcessImpl::ApplyProxyModeFromCommandLine( From d1a7b429064091c731c94a5c7a113fbc73e21996 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Fri, 29 Mar 2019 11:22:14 -0700 Subject: [PATCH 34/37] chore: disable custom libcxx on windows --- patches/common/chromium/.patches | 1 + .../disable_custom_libcxx_on_windows.patch | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 patches/common/chromium/disable_custom_libcxx_on_windows.patch diff --git a/patches/common/chromium/.patches b/patches/common/chromium/.patches index b5ccb10a5f58..3ad2a20b084e 100644 --- a/patches/common/chromium/.patches +++ b/patches/common/chromium/.patches @@ -70,3 +70,4 @@ revert_build_swiftshader_for_arm32.patch fix_disable_usage_of_abort_report_np_in_mas_builds.patch fix_disable_usage_of_pthread_fchdir_np_and_pthread_chdir_np_in_mas.patch fix_disable_usage_of_setapplicationisdaemon_and.patch +disable_custom_libcxx_on_windows.patch diff --git a/patches/common/chromium/disable_custom_libcxx_on_windows.patch b/patches/common/chromium/disable_custom_libcxx_on_windows.patch new file mode 100644 index 000000000000..f8a5b9fbdaef --- /dev/null +++ b/patches/common/chromium/disable_custom_libcxx_on_windows.patch @@ -0,0 +1,20 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Samuel Attard +Date: Fri, 29 Mar 2019 11:04:46 -0700 +Subject: disable custom libcxx on windows + + +diff --git a/build/config/c++/c++.gni b/build/config/c++/c++.gni +index 5d45ff18455275e2ab416030fb01b103c7a630cf..39774eb51b112e02a9aa9c5288e8b52e33fdcb17 100644 +--- a/build/config/c++/c++.gni ++++ b/build/config/c++/c++.gni +@@ -13,7 +13,8 @@ declare_args() { + # TODO(https://crbug.com/942939): Re-enable libc++ on Windows with libfuzzer. + use_custom_libcxx = + is_fuchsia || is_android || is_mac || +- (is_win && is_clang && !use_libfuzzer) || ++ # Do not use custom libcxx on windows ++ # (is_win && is_clang && !use_libfuzzer) || + (is_linux && + (!is_chromeos || default_toolchain != "//build/toolchain/cros:target")) + From 63d6be048011a189c1dd1480ded031fa1813ec3b Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Tue, 2 Apr 2019 14:42:16 -0700 Subject: [PATCH 35/37] chore: add patch to fix MSVC++ incompatibilty on Windows --- patches/common/chromium/.patches | 1 + .../fix_retain_compatibility_with_msvc.patch | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 patches/common/chromium/fix_retain_compatibility_with_msvc.patch diff --git a/patches/common/chromium/.patches b/patches/common/chromium/.patches index 3ad2a20b084e..6b5523fb052d 100644 --- a/patches/common/chromium/.patches +++ b/patches/common/chromium/.patches @@ -71,3 +71,4 @@ fix_disable_usage_of_abort_report_np_in_mas_builds.patch fix_disable_usage_of_pthread_fchdir_np_and_pthread_chdir_np_in_mas.patch fix_disable_usage_of_setapplicationisdaemon_and.patch disable_custom_libcxx_on_windows.patch +fix_retain_compatibility_with_msvc.patch diff --git a/patches/common/chromium/fix_retain_compatibility_with_msvc.patch b/patches/common/chromium/fix_retain_compatibility_with_msvc.patch new file mode 100644 index 000000000000..0c18b7acccb2 --- /dev/null +++ b/patches/common/chromium/fix_retain_compatibility_with_msvc.patch @@ -0,0 +1,25 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Samuel Attard +Date: Tue, 2 Apr 2019 14:38:43 -0700 +Subject: fix: retain compatibility with MSVC++ + +The C++ standard has always forbidden containers of const elements such +as std::set. In order to retain compability with MSVC++ this +code can not exist in Chromium. + +This should probably also be fixed in libc++ to prevent this occurring +again but this fixes the build for now. + +diff --git a/components/language/core/browser/language_prefs.cc b/components/language/core/browser/language_prefs.cc +index 317aa1d8298cd697c5388ddeb9680b39e562e9ab..df258ca62acfa8a198bcb7c4be31746a491d938b 100644 +--- a/components/language/core/browser/language_prefs.cc ++++ b/components/language/core/browser/language_prefs.cc +@@ -85,7 +85,7 @@ void LanguagePrefs::ResetEmptyFluentLanguagesToDefault() { + } + + base::Value LanguagePrefs::GetDefaultFluentLanguages() { +- std::set languages; ++ std::set languages; + #if defined(OS_CHROMEOS) + // Preferred languages. + std::string language = language::kFallbackInputMethodLocale; From 76d584c81d731adbf030ed3aac6ecbefd0a3f95a Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Tue, 2 Apr 2019 17:19:36 -0700 Subject: [PATCH 36/37] build: force a windows CI run From a65f242dbdc358f3d43ad63d9f82d873be98786a Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Wed, 3 Apr 2019 11:36:32 -0700 Subject: [PATCH 37/37] chore: fixup ismediakey patch for lost changes --- patches/common/chromium/command-ismediakey.patch | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/patches/common/chromium/command-ismediakey.patch b/patches/common/chromium/command-ismediakey.patch index c79b3e53c157..9eaf39e283d1 100644 --- a/patches/common/chromium/command-ismediakey.patch +++ b/patches/common/chromium/command-ismediakey.patch @@ -46,7 +46,7 @@ index befe726af9c10b1563a7fc0bb77cc55f65943d5c..46c6fe08bab8471007f78d3ef227e519 GlobalShortcutListener* GlobalShortcutListener::GetInstance() { CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); diff --git a/chrome/browser/extensions/global_shortcut_listener_win.cc b/chrome/browser/extensions/global_shortcut_listener_win.cc -index f5d0ac4ba826ee4f023224ce90c6d8b6614c2912..2dac08bf9fb46beed57484636c9304ceaea347fc 100644 +index f5d0ac4ba826ee4f023224ce90c6d8b6614c2912..380682029d20cab485bb8b52bd5c7d9cdc424c7d 100644 --- a/chrome/browser/extensions/global_shortcut_listener_win.cc +++ b/chrome/browser/extensions/global_shortcut_listener_win.cc @@ -62,6 +62,8 @@ void GlobalShortcutListenerWin::OnWndProc(HWND hwnd, @@ -58,6 +58,14 @@ index f5d0ac4ba826ee4f023224ce90c6d8b6614c2912..2dac08bf9fb46beed57484636c9304ce ui::Accelerator accelerator( ui::KeyboardCodeForWindowsKeyCode(key_code), modifiers); +@@ -98,6 +100,7 @@ bool GlobalShortcutListenerWin::RegisterAcceleratorImpl( + modifiers |= accelerator.IsShiftDown() ? MOD_SHIFT : 0; + modifiers |= accelerator.IsCtrlDown() ? MOD_CONTROL : 0; + modifiers |= accelerator.IsAltDown() ? MOD_ALT : 0; ++ modifiers |= accelerator.IsCmdDown() ? MOD_WIN : 0; + + // Create an observer that registers a hot key for |accelerator|. + std::unique_ptr observer = diff --git a/chrome/browser/extensions/global_shortcut_listener_x11.cc b/chrome/browser/extensions/global_shortcut_listener_x11.cc index 392cf3d58c64c088596e8d321a2ce37b0ec60b6e..43e30f47240dc10a3a9b950255d4e48792cc4159 100644 --- a/chrome/browser/extensions/global_shortcut_listener_x11.cc