Browse Source

chore: bump chromium to 54af93edd956a53c786668bc0e253 (master)

Jeremy Apthorp 5 years ago
parent
commit
53954494a9
100 changed files with 530 additions and 562 deletions
  1. 2 2
      BUILD.gn
  2. 1 1
      DEPS
  3. 7 0
      atom/app/atom_main_delegate.cc
  4. 1 1
      atom/browser/api/atom_api_app.cc
  5. 1 1
      atom/browser/api/atom_api_app.h
  6. 26 7
      atom/browser/api/atom_api_session.cc
  7. 3 2
      atom/browser/api/atom_api_web_contents.cc
  8. 0 12
      atom/browser/api/gpu_info_enumerator.cc
  9. 0 3
      atom/browser/api/gpu_info_enumerator.h
  10. 3 5
      atom/browser/atom_browser_client.cc
  11. 1 3
      atom/browser/atom_browser_client.h
  12. 27 22
      atom/browser/atom_permission_manager.cc
  13. 14 18
      atom/browser/atom_permission_manager.h
  14. 4 2
      atom/browser/browser_process_impl.cc
  15. 8 7
      atom/browser/common_web_contents_delegate.cc
  16. 1 1
      atom/browser/javascript_environment.cc
  17. 1 1
      atom/browser/native_window_mac.mm
  18. 1 2
      atom/browser/net/system_network_context_manager.cc
  19. 3 2
      atom/browser/osr/osr_render_widget_host_view.cc
  20. 1 1
      atom/browser/ui/cocoa/atom_native_widget_mac.h
  21. 1 1
      atom/browser/ui/cocoa/atom_native_widget_mac.mm
  22. 1 1
      atom/browser/ui/cocoa/atom_ns_window.h
  23. 1 1
      atom/browser/ui/cocoa/atom_ns_window_delegate.h
  24. 1 1
      atom/browser/ui/cocoa/atom_ns_window_delegate.mm
  25. 1 3
      atom/browser/ui/devtools_ui.cc
  26. 2 2
      atom/browser/ui/inspectable_web_contents_impl.cc
  27. 1 1
      atom/browser/ui/views/inspectable_web_contents_view_views.cc
  28. 4 5
      atom/browser/ui/views/menu_bar.cc
  29. 2 2
      atom/browser/ui/views/menu_bar.h
  30. 11 11
      atom/renderer/api/atom_api_spell_check_client.cc
  31. 3 3
      atom/renderer/api/atom_api_spell_check_client.h
  32. 1 1
      atom/renderer/atom_autofill_agent.cc
  33. 2 2
      atom/renderer/atom_autofill_agent.h
  34. 1 1
      atom/renderer/atom_sandboxed_renderer_client.cc
  35. 0 2
      chromium_src/BUILD.gn
  36. 1 1
      docs/api/app.md
  37. 1 1
      filenames.gni
  38. 1 1
      lib/browser/devtools.js
  39. 1 1
      lib/browser/init.ts
  40. 1 1
      lib/renderer/init.ts
  41. 1 1
      lib/sandboxed_renderer/init.js
  42. 3 3
      patches/common/chromium/.patches
  43. 2 2
      patches/common/chromium/allow_webview_file_url.patch
  44. 2 2
      patches/common/chromium/blink-worker-enable-csp-in-file-scheme.patch
  45. 3 3
      patches/common/chromium/blink_local_frame.patch
  46. 5 5
      patches/common/chromium/blink_world_context.patch
  47. 1 1
      patches/common/chromium/boringssl_build_gn.patch
  48. 2 2
      patches/common/chromium/browser_compositor_mac.patch
  49. 1 1
      patches/common/chromium/build_add_electron_tracing_category.patch
  50. 2 2
      patches/common/chromium/build_gn.patch
  51. 12 12
      patches/common/chromium/can_create_window.patch
  52. 3 3
      patches/common/chromium/content_allow_embedder_to_prevent_locking_scheme_registry.patch
  53. 2 2
      patches/common/chromium/content_browser_main_loop.patch
  54. 4 4
      patches/common/chromium/cross_site_document_resource_handler.patch
  55. 5 5
      patches/common/chromium/disable-redraw-lock.patch
  56. 25 25
      patches/common/chromium/disable_color_correct_rendering.patch
  57. 20 0
      patches/common/chromium/disable_custom_libcxx_on_windows.patch
  58. 2 2
      patches/common/chromium/disable_detach_webview_frame.patch
  59. 3 3
      patches/common/chromium/disable_hidden.patch
  60. 3 3
      patches/common/chromium/disable_network_services_by_default.patch
  61. 2 2
      patches/common/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch
  62. 4 4
      patches/common/chromium/dom_storage_limits.patch
  63. 2 2
      patches/common/chromium/dump_syms.patch
  64. 1 1
      patches/common/chromium/exclude-a-few-test-files-from-build.patch
  65. 33 31
      patches/common/chromium/feat_offscreen_rendering_with_viz_compositor.patch
  66. 6 6
      patches/common/chromium/frame_host_manager.patch
  67. 1 1
      patches/common/chromium/gin_enable_disable_v8_platform.patch
  68. 2 2
      patches/common/chromium/gritsettings_resource_ids.patch
  69. 1 1
      patches/common/chromium/mas-cfisobjc.patch
  70. 20 20
      patches/common/chromium/mas_no_private_api.patch
  71. 2 2
      patches/common/chromium/no_cache_storage_check.patch
  72. 5 5
      patches/common/chromium/notification_provenance.patch
  73. 2 2
      patches/common/chromium/out_of_process_instance.patch
  74. 12 11
      patches/common/chromium/pepper_flash.patch
  75. 1 1
      patches/common/chromium/printing.patch
  76. 10 9
      patches/common/chromium/render_widget_host_view_base.patch
  77. 9 9
      patches/common/chromium/render_widget_host_view_mac.patch
  78. 3 3
      patches/common/chromium/resource_file_conflict.patch
  79. 1 1
      patches/common/chromium/revert_build_swiftshader_for_arm32.patch
  80. 0 26
      patches/common/chromium/revert_roll_clang_356356_357569.patch
  81. 2 2
      patches/common/chromium/scroll_bounce_flag.patch
  82. 10 31
      patches/common/chromium/ssl_security_state_tab_helper.patch
  83. 5 5
      patches/common/chromium/support_mixed_sandbox_with_zygote.patch
  84. 3 3
      patches/common/chromium/sysroot.patch
  85. 1 1
      patches/common/chromium/v8_context_snapshot_generator.patch
  86. 11 11
      patches/common/chromium/verbose_generate_breakpad_symbols.patch
  87. 18 16
      patches/common/chromium/web_contents.patch
  88. 2 2
      patches/common/chromium/webview_cross_drag.patch
  89. 11 11
      patches/common/chromium/worker_context_will_destroy.patch
  90. 1 1
      patches/common/v8/.patches
  91. 7 7
      patches/common/v8/add_realloc.patch
  92. 4 4
      patches/common/v8/build_gn.patch
  93. 8 8
      patches/common/v8/dcheck.patch
  94. 33 36
      patches/common/v8/deps_provide_more_v8_backwards_compatibility.patch
  95. 3 3
      patches/common/v8/export_symbols_needed_for_windows_build.patch
  96. 2 2
      patches/common/v8/expose_mksnapshot.patch
  97. 40 58
      patches/common/v8/revert_cctest_add_v8_export_private_to_arm_arm64_ports.patch
  98. 4 4
      patches/common/v8/workaround_an_undefined_symbol_error.patch
  99. 3 1
      spec/api-menu-spec.js
  100. 2 1
      spec/api-notification-dbus-spec.js

+ 2 - 2
BUILD.gn

@@ -8,7 +8,7 @@ import("//tools/generate_library_loader/generate_library_loader.gni")
 import("//tools/grit/grit_rule.gni")
 import("//tools/grit/repack.gni")
 import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
-import("//v8/snapshot_toolchain.gni")
+import("//v8/gni/snapshot_toolchain.gni")
 import("build/asar.gni")
 import("build/js_wrap.gni")
 import("build/npm.gni")
@@ -546,9 +546,9 @@ static_library("electron_lib") {
 
   if (is_mac) {
     deps += [
+      "//components/remote_cocoa/app_shim",
       "//third_party/crashpad/crashpad/client",
       "//ui/accelerated_widget_mac",
-      "//ui/views_bridge_mac",
     ]
     sources += [
       "atom/browser/ui/views/autofill_popup_view.cc",

+ 1 - 1
DEPS

@@ -10,7 +10,7 @@ gclient_gn_args = [
 
 vars = {
   'chromium_version':
-    '84c40395c741fa24ccbd9fc2c5828e2e97472952',
+    '6a008993a2e54af93edd956a53c786668bc0e253',
   'node_version':
     'a86a4a160dc520c61a602c949a32a1bc4c0fc633',
 

+ 7 - 0
atom/app/atom_main_delegate.cc

@@ -49,6 +49,10 @@
 #include "atom/app/atom_main_delegate_mac.h"
 #endif
 
+#if defined(OS_WIN)
+#include "base/win/win_util.h"
+#endif
+
 namespace atom {
 
 namespace {
@@ -186,6 +190,9 @@ bool AtomMainDelegate::BasicStartupComplete(int* exit_code) {
   // Disable the ActiveVerifier, which is used by Chrome to track possible
   // bugs, but no use in Electron.
   base::win::DisableHandleVerifier();
+
+  if (IsBrowserProcess(command_line))
+    base::win::PinUser32();
 #endif
 
   content_client_ = std::make_unique<AtomContentClient>();

+ 1 - 1
atom/browser/api/atom_api_app.cc

@@ -723,7 +723,7 @@ void App::AllowCertificateError(
     int cert_error,
     const net::SSLInfo& ssl_info,
     const GURL& request_url,
-    content::ResourceType resource_type,
+    bool is_main_frame_request,
     bool strict_enforcement,
     bool expired_previous_decision,
     const base::RepeatingCallback<void(content::CertificateRequestResultType)>&

+ 1 - 1
atom/browser/api/atom_api_app.h

@@ -130,7 +130,7 @@ class App : public AtomBrowserClient::Delegate,
       int cert_error,
       const net::SSLInfo& ssl_info,
       const GURL& request_url,
-      content::ResourceType resource_type,
+      bool is_main_frame_request,
       bool strict_enforcement,
       bool expired_previous_decision,
       const base::RepeatingCallback<

+ 26 - 7
atom/browser/api/atom_api_session.cc

@@ -202,8 +202,8 @@ void DownloadIdCallback(content::DownloadManager* download_manager,
                         uint32_t id) {
   download_manager->CreateDownloadItem(
       base::GenerateGUID(), id, path, path, url_chain, GURL(), GURL(), GURL(),
-      GURL(), mime_type, mime_type, start_time, base::Time(), etag,
-      last_modified, offset, length, std::string(),
+      GURL(), base::nullopt, mime_type, mime_type, start_time, base::Time(),
+      etag, last_modified, offset, length, std::string(),
       download::DownloadItem::INTERRUPTED,
       download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
       download::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT, false, base::Time(),
@@ -452,14 +452,33 @@ void Session::SetCertVerifyProc(v8::Local<v8::Value> val,
 
 void Session::SetPermissionRequestHandler(v8::Local<v8::Value> val,
                                           mate::Arguments* args) {
-  AtomPermissionManager::RequestHandler handler;
-  if (!(val->IsNull() || mate::ConvertFromV8(args->isolate(), val, &handler))) {
+  using StatusCallback =
+      base::RepeatingCallback<void(blink::mojom::PermissionStatus)>;
+  using RequestHandler =
+      base::Callback<void(content::WebContents*, content::PermissionType,
+                          StatusCallback, const base::DictionaryValue&)>;
+  auto* permission_manager = static_cast<AtomPermissionManager*>(
+      browser_context()->GetPermissionControllerDelegate());
+  if (val->IsNull()) {
+    permission_manager->SetPermissionRequestHandler(
+        AtomPermissionManager::RequestHandler());
+    return;
+  }
+  auto handler = std::make_unique<RequestHandler>();
+  if (!mate::ConvertFromV8(args->isolate(), val, handler.get())) {
     args->ThrowError("Must pass null or function");
     return;
   }
-  auto* permission_manager = static_cast<AtomPermissionManager*>(
-      browser_context()->GetPermissionControllerDelegate());
-  permission_manager->SetPermissionRequestHandler(handler);
+  permission_manager->SetPermissionRequestHandler(base::BindRepeating(
+      [](RequestHandler* handler, content::WebContents* web_contents,
+         content::PermissionType permission_type,
+         AtomPermissionManager::StatusCallback callback,
+         const base::DictionaryValue& details) {
+        handler->Run(web_contents, permission_type,
+                     base::AdaptCallbackForRepeating(std::move(callback)),
+                     details);
+      },
+      base::Owned(std::move(handler))));
 }
 
 void Session::SetPermissionCheckHandler(v8::Local<v8::Value> val,

+ 3 - 2
atom/browser/api/atom_api_web_contents.cc

@@ -50,6 +50,7 @@
 #include "atom/common/options_switches.h"
 #include "base/message_loop/message_loop.h"
 #include "base/no_destructor.h"
+#include "base/optional.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/threading/thread_restrictions.h"
 #include "base/threading/thread_task_runner_handle.h"
@@ -1216,7 +1217,7 @@ void WebContents::SetBackgroundThrottling(bool allowed) {
   render_widget_host_impl->disable_hidden_ = !background_throttling_;
 
   if (render_widget_host_impl->is_hidden()) {
-    render_widget_host_impl->WasShown(false);
+    render_widget_host_impl->WasShown(base::nullopt);
   }
 }
 
@@ -2072,7 +2073,7 @@ v8::Local<v8::Value> WebContents::GetLastWebPreferences(
 }
 
 bool WebContents::IsRemoteModuleEnabled() const {
-  if (web_contents()->GetVisibleURL().SchemeIs("chrome-devtools")) {
+  if (web_contents()->GetVisibleURL().SchemeIs("devtools")) {
     return false;
   }
   if (auto* web_preferences = WebContentsPreferences::From(web_contents())) {

+ 0 - 12
atom/browser/api/gpu_info_enumerator.cc

@@ -108,18 +108,6 @@ void GPUInfoEnumerator::EndAuxAttributes() {
   value_stack.pop();
 }
 
-void GPUInfoEnumerator::BeginOverlayCapability() {
-  value_stack.push(std::move(current));
-  current = std::make_unique<base::DictionaryValue>();
-}
-
-void GPUInfoEnumerator::EndOverlayCapability() {
-  auto& top_value = value_stack.top();
-  top_value->SetDictionary(kOverlayCapabilityKey, std::move(current));
-  current = std::move(top_value);
-  value_stack.pop();
-}
-
 void GPUInfoEnumerator::BeginDx12VulkanVersionInfo() {
   value_stack.push(std::move(current));
   current = std::make_unique<base::DictionaryValue>();

+ 0 - 3
atom/browser/api/gpu_info_enumerator.h

@@ -25,7 +25,6 @@ class GPUInfoEnumerator final : public gpu::GPUInfo::Enumerator {
   const char* kImageDecodeAcceleratorSupportedProfileKey =
       "imageDecodeAcceleratorSupportedProfile";
   const char* kAuxAttributesKey = "auxAttributes";
-  const char* kOverlayCapabilityKey = "overlayCapability";
   const char* kDx12VulkanVersionInfoKey = "dx12VulkanVersionInfo";
 
  public:
@@ -47,8 +46,6 @@ class GPUInfoEnumerator final : public gpu::GPUInfo::Enumerator {
   void EndImageDecodeAcceleratorSupportedProfile() override;
   void BeginAuxAttributes() override;
   void EndAuxAttributes() override;
-  void BeginOverlayCapability() override;
-  void EndOverlayCapability() override;
   void BeginDx12VulkanVersionInfo() override;
   void EndDx12VulkanVersionInfo() override;
   std::unique_ptr<base::DictionaryValue> GetDictionary();

+ 3 - 5
atom/browser/atom_browser_client.cc

@@ -501,7 +501,7 @@ void AtomBrowserClient::AppendExtraCommandLineSwitches(
 
   content::WebContents* web_contents = GetWebContentsFromProcessID(process_id);
   if (web_contents) {
-    if (web_contents->GetVisibleURL().SchemeIs("chrome-devtools")) {
+    if (web_contents->GetVisibleURL().SchemeIs("devtools")) {
       command_line->AppendSwitch(switches::kDisableRemoteModule);
     }
     auto* web_preferences = WebContentsPreferences::From(web_contents);
@@ -558,14 +558,14 @@ void AtomBrowserClient::AllowCertificateError(
     int cert_error,
     const net::SSLInfo& ssl_info,
     const GURL& request_url,
-    content::ResourceType resource_type,
+    bool is_main_frame_request,
     bool strict_enforcement,
     bool expired_previous_decision,
     const base::Callback<void(content::CertificateRequestResultType)>&
         callback) {
   if (delegate_) {
     delegate_->AllowCertificateError(
-        web_contents, cert_error, ssl_info, request_url, resource_type,
+        web_contents, cert_error, ssl_info, request_url, is_main_frame_request,
         strict_enforcement, expired_previous_decision, callback);
   }
 }
@@ -828,8 +828,6 @@ bool AtomBrowserClient::HandleExternalProtocol(
     bool is_main_frame,
     ui::PageTransition page_transition,
     bool has_user_gesture,
-    const std::string& method,
-    const net::HttpRequestHeaders& headers,
     network::mojom::URLLoaderFactoryRequest* factory_request,
     // clang-format off
     network::mojom::URLLoaderFactory*& out_factory) {  // NOLINT

+ 1 - 3
atom/browser/atom_browser_client.h

@@ -102,7 +102,7 @@ class AtomBrowserClient : public content::ContentBrowserClient,
       int cert_error,
       const net::SSLInfo& ssl_info,
       const GURL& request_url,
-      content::ResourceType resource_type,
+      bool is_main_frame_request,
       bool strict_enforcement,
       bool expired_previous_decision,
       const base::Callback<void(content::CertificateRequestResultType)>&
@@ -192,8 +192,6 @@ class AtomBrowserClient : public content::ContentBrowserClient,
       bool is_main_frame,
       ui::PageTransition page_transition,
       bool has_user_gesture,
-      const std::string& method,
-      const net::HttpRequestHeaders& headers,
       network::mojom::URLLoaderFactoryRequest* factory_request,
       // clang-format off
       network::mojom::URLLoaderFactory*& out_factory)  // NOLINT

+ 27 - 22
atom/browser/atom_permission_manager.cc

@@ -5,6 +5,7 @@
 #include "atom/browser/atom_permission_manager.h"
 
 #include <memory>
+#include <utility>
 #include <vector>
 
 #include "atom/browser/atom_browser_client.h"
@@ -32,9 +33,9 @@ bool WebContentsDestroyed(int process_id) {
 }
 
 void PermissionRequestResponseCallbackWrapper(
-    const AtomPermissionManager::StatusCallback& callback,
+    AtomPermissionManager::StatusCallback callback,
     const std::vector<blink::mojom::PermissionStatus>& vector) {
-  callback.Run(vector[0]);
+  std::move(callback).Run(vector[0]);
 }
 
 }  // namespace
@@ -43,9 +44,9 @@ class AtomPermissionManager::PendingRequest {
  public:
   PendingRequest(content::RenderFrameHost* render_frame_host,
                  const std::vector<content::PermissionType>& permissions,
-                 const StatusesCallback& callback)
+                 StatusesCallback callback)
       : render_process_id_(render_frame_host->GetProcess()->GetID()),
-        callback_(callback),
+        callback_(std::move(callback)),
         permissions_(permissions),
         results_(permissions.size(), blink::mojom::PermissionStatus::DENIED),
         remaining_results_(permissions.size()) {}
@@ -74,11 +75,15 @@ class AtomPermissionManager::PendingRequest {
 
   bool IsComplete() const { return remaining_results_ == 0; }
 
-  void RunCallback() const { callback_.Run(results_); }
+  void RunCallback() {
+    if (!callback_.is_null()) {
+      std::move(callback_).Run(results_);
+    }
+  }
 
  private:
   int render_process_id_;
-  const StatusesCallback callback_;
+  StatusesCallback callback_;
   std::vector<content::PermissionType> permissions_;
   std::vector<blink::mojom::PermissionStatus> results_;
   size_t remaining_results_;
@@ -91,8 +96,8 @@ AtomPermissionManager::~AtomPermissionManager() {}
 void AtomPermissionManager::SetPermissionRequestHandler(
     const RequestHandler& handler) {
   if (handler.is_null() && !pending_requests_.IsEmpty()) {
-    for (PendingRequestsMap::const_iterator iter(&pending_requests_);
-         !iter.IsAtEnd(); iter.Advance()) {
+    for (PendingRequestsMap::iterator iter(&pending_requests_); !iter.IsAtEnd();
+         iter.Advance()) {
       auto* request = iter.GetCurrentValue();
       if (!WebContentsDestroyed(request->render_process_id()))
         request->RunCallback();
@@ -112,11 +117,10 @@ int AtomPermissionManager::RequestPermission(
     content::RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
     bool user_gesture,
-    const base::Callback<void(blink::mojom::PermissionStatus)>&
-        response_callback) {
+    StatusCallback response_callback) {
   return RequestPermissionWithDetails(permission, render_frame_host,
                                       requesting_origin, user_gesture, nullptr,
-                                      response_callback);
+                                      std::move(response_callback));
 }
 
 int AtomPermissionManager::RequestPermissionWithDetails(
@@ -125,11 +129,12 @@ int AtomPermissionManager::RequestPermissionWithDetails(
     const GURL& requesting_origin,
     bool user_gesture,
     const base::DictionaryValue* details,
-    const StatusCallback& response_callback) {
+    StatusCallback response_callback) {
   return RequestPermissionsWithDetails(
       std::vector<content::PermissionType>(1, permission), render_frame_host,
       requesting_origin, user_gesture, details,
-      base::Bind(&PermissionRequestResponseCallbackWrapper, response_callback));
+      base::BindOnce(PermissionRequestResponseCallbackWrapper,
+                     std::move(response_callback)));
 }
 
 int AtomPermissionManager::RequestPermissions(
@@ -137,10 +142,10 @@ int AtomPermissionManager::RequestPermissions(
     content::RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
     bool user_gesture,
-    const StatusesCallback& response_callback) {
+    StatusesCallback response_callback) {
   return RequestPermissionsWithDetails(permissions, render_frame_host,
                                        requesting_origin, user_gesture, nullptr,
-                                       response_callback);
+                                       std::move(response_callback));
 }
 
 int AtomPermissionManager::RequestPermissionsWithDetails(
@@ -149,9 +154,9 @@ int AtomPermissionManager::RequestPermissionsWithDetails(
     const GURL& requesting_origin,
     bool user_gesture,
     const base::DictionaryValue* details,
-    const StatusesCallback& response_callback) {
+    StatusesCallback response_callback) {
   if (permissions.empty()) {
-    response_callback.Run(std::vector<blink::mojom::PermissionStatus>());
+    std::move(response_callback).Run({});
     return content::PermissionController::kNoPendingOperation;
   }
 
@@ -169,20 +174,20 @@ int AtomPermissionManager::RequestPermissionsWithDetails(
       }
       statuses.push_back(blink::mojom::PermissionStatus::GRANTED);
     }
-    response_callback.Run(statuses);
+    std::move(response_callback).Run(statuses);
     return content::PermissionController::kNoPendingOperation;
   }
 
   auto* web_contents =
       content::WebContents::FromRenderFrameHost(render_frame_host);
   int request_id = pending_requests_.Add(std::make_unique<PendingRequest>(
-      render_frame_host, permissions, response_callback));
+      render_frame_host, permissions, std::move(response_callback)));
 
   for (size_t i = 0; i < permissions.size(); ++i) {
     auto permission = permissions[i];
     const auto callback =
-        base::Bind(&AtomPermissionManager::OnPermissionResponse,
-                   base::Unretained(this), request_id, i);
+        base::BindRepeating(&AtomPermissionManager::OnPermissionResponse,
+                            base::Unretained(this), request_id, i);
     if (details == nullptr) {
       request_handler_.Run(web_contents, permission, callback,
                            base::DictionaryValue());
@@ -224,7 +229,7 @@ int AtomPermissionManager::SubscribePermissionStatusChange(
     content::PermissionType permission,
     content::RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
-    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
+    base::RepeatingCallback<void(blink::mojom::PermissionStatus)> callback) {
   return -1;
 }
 

+ 14 - 18
atom/browser/atom_permission_manager.h

@@ -25,12 +25,13 @@ class AtomPermissionManager : public content::PermissionControllerDelegate {
   AtomPermissionManager();
   ~AtomPermissionManager() override;
 
-  using StatusCallback = base::Callback<void(blink::mojom::PermissionStatus)>;
-  using StatusesCallback =
-      base::Callback<void(const std::vector<blink::mojom::PermissionStatus>&)>;
+  using StatusCallback =
+      base::OnceCallback<void(blink::mojom::PermissionStatus)>;
+  using StatusesCallback = base::OnceCallback<void(
+      const std::vector<blink::mojom::PermissionStatus>&)>;
   using RequestHandler = base::Callback<void(content::WebContents*,
                                              content::PermissionType,
-                                             const StatusCallback&,
+                                             StatusCallback,
                                              const base::DictionaryValue&)>;
   using CheckHandler = base::Callback<bool(content::WebContents*,
                                            content::PermissionType,
@@ -42,35 +43,30 @@ class AtomPermissionManager : public content::PermissionControllerDelegate {
   void SetPermissionCheckHandler(const CheckHandler& handler);
 
   // content::PermissionControllerDelegate:
-  int RequestPermission(
-      content::PermissionType permission,
-      content::RenderFrameHost* render_frame_host,
-      const GURL& requesting_origin,
-      bool user_gesture,
-      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
-      override;
+  int RequestPermission(content::PermissionType permission,
+                        content::RenderFrameHost* render_frame_host,
+                        const GURL& requesting_origin,
+                        bool user_gesture,
+                        StatusCallback callback) override;
   int RequestPermissionWithDetails(content::PermissionType permission,
                                    content::RenderFrameHost* render_frame_host,
                                    const GURL& requesting_origin,
                                    bool user_gesture,
                                    const base::DictionaryValue* details,
-                                   const StatusCallback& callback);
+                                   StatusCallback callback);
   int RequestPermissions(
       const std::vector<content::PermissionType>& permissions,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
       bool user_gesture,
-      const base::Callback<
-          void(const std::vector<blink::mojom::PermissionStatus>&)>& callback)
-      override;
+      StatusesCallback callback) override;
   int RequestPermissionsWithDetails(
       const std::vector<content::PermissionType>& permissions,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
       bool user_gesture,
       const base::DictionaryValue* details,
-      const base::Callback<
-          void(const std::vector<blink::mojom::PermissionStatus>&)>& callback);
+      StatusesCallback callback);
   blink::mojom::PermissionStatus GetPermissionStatusForFrame(
       content::PermissionType permission,
       content::RenderFrameHost* render_frame_host,
@@ -98,7 +94,7 @@ class AtomPermissionManager : public content::PermissionControllerDelegate {
       content::PermissionType permission,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
+      base::RepeatingCallback<void(blink::mojom::PermissionStatus)> callback)
       override;
   void UnsubscribePermissionStatusChange(int subscription_id) override;
 

+ 4 - 2
atom/browser/browser_process_impl.cc

@@ -6,7 +6,6 @@
 
 #include <utility>
 
-#include "chrome/browser/net/chrome_net_log_helper.h"
 #include "chrome/common/chrome_switches.h"
 #include "components/net_log/chrome_net_log.h"
 #include "components/net_log/net_export_file_writer.h"
@@ -19,6 +18,7 @@
 #include "components/proxy_config/proxy_config_dictionary.h"
 #include "components/proxy_config/proxy_config_pref_names.h"
 #include "content/public/common/content_switches.h"
+#include "net/log/net_log_capture_mode.h"
 #include "net/proxy_resolution/proxy_config.h"
 #include "net/proxy_resolution/proxy_config_service.h"
 #include "net/proxy_resolution/proxy_config_with_annotation.h"
@@ -105,7 +105,9 @@ void BrowserProcessImpl::PreCreateThreads(
         command_line.GetSwitchValuePath(network::switches::kLogNetLog);
     if (!log_file.empty()) {
       net_log_->StartWritingToFile(
-          log_file, GetNetCaptureModeFromCommandLine(command_line),
+          log_file,
+          net::GetNetCaptureModeFromCommandLine(
+              command_line, network::switches::kNetLogCaptureMode),
           command_line.GetCommandLineString(), std::string());
     }
   }

+ 8 - 7
atom/browser/common_web_contents_delegate.cc

@@ -84,22 +84,23 @@ std::string RegisterFileSystem(content::WebContents* web_contents,
                                const base::FilePath& path) {
   auto* isolated_context = storage::IsolatedContext::GetInstance();
   std::string root_name(kRootName);
-  std::string file_system_id = isolated_context->RegisterFileSystemForPath(
-      storage::kFileSystemTypeNativeLocal, std::string(), path, &root_name);
+  storage::IsolatedContext::ScopedFSHandle file_system =
+      isolated_context->RegisterFileSystemForPath(
+          storage::kFileSystemTypeNativeLocal, std::string(), path, &root_name);
 
   content::ChildProcessSecurityPolicy* policy =
       content::ChildProcessSecurityPolicy::GetInstance();
   content::RenderViewHost* render_view_host = web_contents->GetRenderViewHost();
   int renderer_id = render_view_host->GetProcess()->GetID();
-  policy->GrantReadFileSystem(renderer_id, file_system_id);
-  policy->GrantWriteFileSystem(renderer_id, file_system_id);
-  policy->GrantCreateFileForFileSystem(renderer_id, file_system_id);
-  policy->GrantDeleteFromFileSystem(renderer_id, file_system_id);
+  policy->GrantReadFileSystem(renderer_id, file_system.id());
+  policy->GrantWriteFileSystem(renderer_id, file_system.id());
+  policy->GrantCreateFileForFileSystem(renderer_id, file_system.id());
+  policy->GrantDeleteFromFileSystem(renderer_id, file_system.id());
 
   if (!policy->CanReadFile(renderer_id, path))
     policy->GrantReadFile(renderer_id, path);
 
-  return file_system_id;
+  return file_system.id();
 }
 
 FileSystem CreateFileSystemStruct(content::WebContents* web_contents,

+ 1 - 1
atom/browser/javascript_environment.cc

@@ -49,7 +49,7 @@ v8::Isolate* JavascriptEnvironment::Initialize(uv_loop_t* event_loop) {
   auto* tracing_controller = tracing_agent->GetTracingController();
   node::tracing::TraceEventHelper::SetAgent(tracing_agent);
   platform_ = node::CreatePlatform(
-      base::RecommendedMaxNumberOfThreadsInPool(3, 8, 0.1, 0),
+      base::RecommendedMaxNumberOfThreadsInThreadGroup(3, 8, 0.1, 0),
       tracing_controller);
 
   v8::V8::InitializePlatform(platform_);

+ 1 - 1
atom/browser/native_window_mac.mm

@@ -24,6 +24,7 @@
 #include "base/mac/mac_util.h"
 #include "base/mac/scoped_cftyperef.h"
 #include "base/strings/sys_string_conversions.h"
+#include "components/remote_cocoa/app_shim/bridged_native_widget_impl.h"
 #include "content/public/browser/browser_accessibility_state.h"
 #include "native_mate/dictionary.h"
 #include "skia/ext/skia_utils_mac.h"
@@ -31,7 +32,6 @@
 #include "ui/gl/gpu_switching_manager.h"
 #include "ui/views/background.h"
 #include "ui/views/widget/widget.h"
-#include "ui/views_bridge_mac/bridged_native_widget_impl.h"
 
 // This view always takes the size of its superview. It is intended to be used
 // as a NSWindow's contentView.  It is needed because NSWindow's implementation

+ 1 - 2
atom/browser/net/system_network_context_manager.cc

@@ -167,8 +167,7 @@ SystemNetworkContextManager::CreateDefaultNetworkContextParams() {
   network::mojom::NetworkContextParamsPtr network_context_params =
       network::mojom::NetworkContextParams::New();
 
-  network_context_params->enable_brotli =
-      base::FeatureList::IsEnabled(features::kBrotliEncoding);
+  network_context_params->enable_brotli = true;
 
   network_context_params->enable_referrers = true;
 

+ 3 - 2
atom/browser/osr/osr_render_widget_host_view.cc

@@ -12,6 +12,7 @@
 #include "base/callback_helpers.h"
 #include "base/location.h"
 #include "base/memory/ptr_util.h"
+#include "base/optional.h"
 #include "base/single_thread_task_runner.h"
 #include "base/task/post_task.h"
 #include "base/time/time.h"
@@ -383,10 +384,10 @@ void OffScreenRenderWidgetHostView::Show() {
   delegated_frame_host_->AttachToCompositor(compositor_.get());
   delegated_frame_host_->WasShown(
       GetLocalSurfaceIdAllocation().local_surface_id(),
-      GetRootLayer()->bounds().size(), false);
+      GetRootLayer()->bounds().size(), base::nullopt);
 
   if (render_widget_host_)
-    render_widget_host_->WasShown(false);
+    render_widget_host_->WasShown(base::nullopt);
 }
 
 void OffScreenRenderWidgetHostView::Hide() {

+ 1 - 1
atom/browser/ui/cocoa/atom_native_widget_mac.h

@@ -21,7 +21,7 @@ class AtomNativeWidgetMac : public views::NativeWidgetMac {
  protected:
   // NativeWidgetMac:
   NativeWidgetMacNSWindow* CreateNSWindow(
-      const views_bridge_mac::mojom::CreateWindowParams* params) override;
+      const remote_cocoa::mojom::CreateWindowParams* params) override;
 
  private:
   NativeWindowMac* shell_;

+ 1 - 1
atom/browser/ui/cocoa/atom_native_widget_mac.mm

@@ -19,7 +19,7 @@ AtomNativeWidgetMac::AtomNativeWidgetMac(
 AtomNativeWidgetMac::~AtomNativeWidgetMac() {}
 
 NativeWidgetMacNSWindow* AtomNativeWidgetMac::CreateNSWindow(
-    const views_bridge_mac::mojom::CreateWindowParams* params) {
+    const remote_cocoa::mojom::CreateWindowParams* params) {
   return [[[AtomNSWindow alloc] initWithShell:shell_
                                     styleMask:style_mask_] autorelease];
 }

+ 1 - 1
atom/browser/ui/cocoa/atom_ns_window.h

@@ -6,8 +6,8 @@
 #define ATOM_BROWSER_UI_COCOA_ATOM_NS_WINDOW_H_
 
 #include "atom/browser/ui/cocoa/event_dispatching_window.h"
+#include "components/remote_cocoa/app_shim/native_widget_mac_nswindow.h"
 #include "ui/views/widget/native_widget_mac.h"
-#include "ui/views_bridge_mac/native_widget_mac_nswindow.h"
 
 namespace atom {
 

+ 1 - 1
atom/browser/ui/cocoa/atom_ns_window_delegate.h

@@ -7,7 +7,7 @@
 
 #include <Quartz/Quartz.h>
 
-#include "ui/views_bridge_mac/views_nswindow_delegate.h"  // nogncheck
+#include "components/remote_cocoa/app_shim/views_nswindow_delegate.h"
 
 namespace atom {
 class NativeWindowMac;

+ 1 - 1
atom/browser/ui/cocoa/atom_ns_window_delegate.mm

@@ -11,9 +11,9 @@
 #include "atom/browser/ui/cocoa/atom_preview_item.h"
 #include "atom/browser/ui/cocoa/atom_touch_bar.h"
 #include "base/mac/mac_util.h"
+#include "components/remote_cocoa/app_shim/bridged_native_widget_impl.h"
 #include "ui/views/cocoa/bridged_native_widget_host_impl.h"
 #include "ui/views/widget/native_widget_mac.h"
-#include "ui/views_bridge_mac/bridged_native_widget_impl.h"
 
 using TitleBarStyle = atom::NativeWindowMac::TitleBarStyle;
 

+ 1 - 3
atom/browser/ui/devtools_ui.cc

@@ -23,9 +23,7 @@ const char kChromeUIDevToolsHost[] = "devtools";
 const char kChromeUIDevToolsBundledPath[] = "bundled";
 
 std::string PathWithoutParams(const std::string& path) {
-  return GURL(std::string("chrome-devtools://devtools/") + path)
-      .path()
-      .substr(1);
+  return GURL(std::string("devtools://devtools/") + path).path().substr(1);
 }
 
 std::string GetMimeTypeForPath(const std::string& path) {

+ 2 - 2
atom/browser/ui/inspectable_web_contents_impl.cc

@@ -54,14 +54,14 @@ const double kPresetZoomFactors[] = {0.25, 0.333, 0.5,  0.666, 0.75, 0.9,
                                      2.5,  3.0,   4.0,  5.0};
 
 const char kChromeUIDevToolsURL[] =
-    "chrome-devtools://devtools/bundled/devtools_app.html?"
+    "devtools://devtools/bundled/devtools_app.html?"
     "remoteBase=%s&"
     "can_dock=%s&"
     "toolbarColor=rgba(223,223,223,1)&"
     "textColor=rgba(0,0,0,1)&"
     "experiments=true";
 const char kChromeUIDevToolsRemoteFrontendBase[] =
-    "https://chrome-devtools-frontend.appspot.com/";
+    "https://devtools-frontend.appspot.com/";
 const char kChromeUIDevToolsRemoteFrontendPath[] = "serve_file";
 
 const char kDevToolsBoundsPref[] = "electron.devtools.bounds";

+ 1 - 1
atom/browser/ui/views/inspectable_web_contents_view_views.cc

@@ -212,7 +212,7 @@ void InspectableWebContentsViewViews::SetTitle(const base::string16& title) {
 }
 
 void InspectableWebContentsViewViews::Layout() {
-  if (!devtools_web_view_->visible()) {
+  if (!devtools_web_view_->GetVisible()) {
     contents_web_view_->SetBoundsRect(GetContentsBounds());
     return;
   }

+ 4 - 5
atom/browser/ui/views/menu_bar.cc

@@ -286,9 +286,8 @@ void MenuBar::OnMenuButtonClicked(views::Button* source,
   menu_delegate->AddObserver(this);
 }
 
-void MenuBar::RefreshColorCache(const ui::NativeTheme* theme) {
-  if (!theme)
-    theme = ui::NativeTheme::GetInstanceForNativeUi();
+void MenuBar::RefreshColorCache() {
+  const ui::NativeTheme* theme = GetNativeTheme();
   if (theme) {
 #if defined(USE_X11)
     background_color_ = libgtkui::GetBgColor("GtkMenuBar#menubar");
@@ -306,8 +305,8 @@ void MenuBar::RefreshColorCache(const ui::NativeTheme* theme) {
 #endif
 }
 
-void MenuBar::OnNativeThemeChanged(const ui::NativeTheme* theme) {
-  RefreshColorCache(theme);
+void MenuBar::OnThemeChanged() {
+  RefreshColorCache();
   UpdateViewColors();
 }
 

+ 2 - 2
atom/browser/ui/views/menu_bar.h

@@ -82,7 +82,7 @@ class MenuBar : public views::AccessiblePaneView,
   void OnMenuButtonClicked(views::Button* source,
                            const gfx::Point& point,
                            const ui::Event* event) override;
-  void OnNativeThemeChanged(const ui::NativeTheme* theme) override;
+  void OnThemeChanged() override;
 
  private:
   friend class MenuBarColorUpdater;
@@ -90,7 +90,7 @@ class MenuBar : public views::AccessiblePaneView,
   void RebuildChildren();
   void UpdateViewColors();
 
-  void RefreshColorCache(const ui::NativeTheme* theme = nullptr);
+  void RefreshColorCache();
   SkColor background_color_;
 #if defined(USE_X11)
   SkColor enabled_color_;

+ 11 - 11
atom/renderer/api/atom_api_spell_check_client.cc

@@ -5,6 +5,7 @@
 #include "atom/renderer/api/atom_api_spell_check_client.h"
 
 #include <map>
+#include <utility>
 #include <vector>
 
 #include "atom/common/native_mate_converters/string16_converter.h"
@@ -46,22 +47,21 @@ class SpellCheckClient::SpellcheckRequest {
   using WordMap =
       std::map<base::string16, std::vector<blink::WebTextCheckingResult>>;
 
-  SpellcheckRequest(const base::string16& text,
-                    blink::WebTextCheckingCompletion* completion)
-      : text_(text), completion_(completion) {
-    DCHECK(completion);
-  }
+  SpellcheckRequest(
+      const base::string16& text,
+      std::unique_ptr<blink::WebTextCheckingCompletion> completion)
+      : text_(text), completion_(std::move(completion)) {}
   ~SpellcheckRequest() {}
 
   const base::string16& text() const { return text_; }
-  blink::WebTextCheckingCompletion* completion() { return completion_; }
+  blink::WebTextCheckingCompletion* completion() { return completion_.get(); }
   WordMap& wordmap() { return word_map_; }
 
  private:
   base::string16 text_;  // Text to be checked in this task.
   WordMap word_map_;     // WordMap to hold distinct words in text
   // The interface to send the misspelled ranges to WebKit.
-  blink::WebTextCheckingCompletion* completion_;
+  std::unique_ptr<blink::WebTextCheckingCompletion> completion_;
 
   DISALLOW_COPY_AND_ASSIGN(SpellcheckRequest);
 };
@@ -88,7 +88,7 @@ SpellCheckClient::~SpellCheckClient() {
 
 void SpellCheckClient::RequestCheckingOfText(
     const blink::WebString& textToCheck,
-    blink::WebTextCheckingCompletion* completionCallback) {
+    std::unique_ptr<blink::WebTextCheckingCompletion> completionCallback) {
   base::string16 text(textToCheck.Utf16());
   // Ignore invalid requests.
   if (text.empty() || !HasWordCharacters(text, 0)) {
@@ -101,7 +101,8 @@ void SpellCheckClient::RequestCheckingOfText(
     pending_request_param_->completion()->DidCancelCheckingText();
   }
 
-  pending_request_param_.reset(new SpellcheckRequest(text, completionCallback));
+  pending_request_param_.reset(
+      new SpellcheckRequest(text, std::move(completionCallback)));
 
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
@@ -188,7 +189,6 @@ void SpellCheckClient::SpellCheckText() {
 void SpellCheckClient::OnSpellCheckDone(
     const std::vector<base::string16>& misspelled_words) {
   std::vector<blink::WebTextCheckingResult> results;
-  auto* const completion_handler = pending_request_param_->completion();
 
   auto& word_map = pending_request_param_->wordmap();
 
@@ -205,7 +205,7 @@ void SpellCheckClient::OnSpellCheckDone(
       words.clear();
     }
   }
-  completion_handler->DidFinishCheckingText(results);
+  pending_request_param_->completion()->DidFinishCheckingText(results);
   pending_request_param_ = nullptr;
 }
 

+ 3 - 3
atom/renderer/api/atom_api_spell_check_client.h

@@ -38,9 +38,9 @@ class SpellCheckClient : public blink::WebSpellCheckPanelHostClient,
  private:
   class SpellcheckRequest;
   // blink::WebTextCheckClient:
-  void RequestCheckingOfText(
-      const blink::WebString& textToCheck,
-      blink::WebTextCheckingCompletion* completionCallback) override;
+  void RequestCheckingOfText(const blink::WebString& textToCheck,
+                             std::unique_ptr<blink::WebTextCheckingCompletion>
+                                 completionCallback) override;
   bool IsSpellCheckingEnabled() const override;
 
   // blink::WebSpellCheckPanelHostClient:

+ 1 - 1
atom/renderer/atom_autofill_agent.cc

@@ -64,7 +64,7 @@ void AutofillAgent::DidChangeScrollOffset() {
   HidePopup();
 }
 
-void AutofillAgent::FocusedNodeChanged(const blink::WebNode&) {
+void AutofillAgent::FocusedElementChanged(const blink::WebElement&) {
   focused_node_was_last_clicked_ = false;
   was_focused_before_now_ = false;
   HidePopup();

+ 2 - 2
atom/renderer/atom_autofill_agent.h

@@ -10,9 +10,9 @@
 #include "base/memory/weak_ptr.h"
 #include "content/public/renderer/render_frame_observer.h"
 #include "third_party/blink/public/web/web_autofill_client.h"
+#include "third_party/blink/public/web/web_element.h"
 #include "third_party/blink/public/web/web_form_control_element.h"
 #include "third_party/blink/public/web/web_input_element.h"
-#include "third_party/blink/public/web/web_node.h"
 
 namespace atom {
 
@@ -26,7 +26,7 @@ class AutofillAgent : public content::RenderFrameObserver,
   void OnDestruct() override;
 
   void DidChangeScrollOffset() override;
-  void FocusedNodeChanged(const blink::WebNode&) override;
+  void FocusedElementChanged(const blink::WebElement&) override;
   void DidCompleteFocusChangeInFrame() override;
   void DidReceiveLeftMouseDownOrGestureTapInNode(
       const blink::WebNode&) override;

+ 1 - 1
atom/renderer/atom_sandboxed_renderer_client.cc

@@ -35,7 +35,7 @@ const char kModuleCacheKey[] = "native-module-cache";
 
 bool IsDevTools(content::RenderFrame* render_frame) {
   return render_frame->GetWebFrame()->GetDocument().Url().ProtocolIs(
-      "chrome-devtools");
+      "devtools");
 }
 
 bool IsDevToolsExtension(content::RenderFrame* render_frame) {

+ 0 - 2
chromium_src/BUILD.gn

@@ -33,8 +33,6 @@ static_library("chrome") {
     "//chrome/browser/icon_manager.h",
     "//chrome/browser/net/chrome_mojo_proxy_resolver_factory.cc",
     "//chrome/browser/net/chrome_mojo_proxy_resolver_factory.h",
-    "//chrome/browser/net/chrome_net_log_helper.cc",
-    "//chrome/browser/net/chrome_net_log_helper.h",
     "//chrome/browser/net/proxy_config_monitor.cc",
     "//chrome/browser/net/proxy_config_monitor.h",
     "//chrome/browser/net/proxy_service_factory.cc",

+ 1 - 1
docs/api/app.md

@@ -1027,7 +1027,7 @@ Returns [`GPUFeatureStatus`](structures/gpu-feature-status.md) - The Graphics Fe
 Returns `Promise<unknown>`
 
 For `infoType` equal to `complete`:
- Promise is fulfilled with `Object` containing all the GPU Information as in [chromium's GPUInfo object](https://chromium.googlesource.com/chromium/src.git/+/69.0.3497.106/gpu/config/gpu_info.cc). This includes the version and driver information that's shown on `chrome://gpu` page.
+ Promise is fulfilled with `Object` containing all the GPU Information as in [chromium's GPUInfo object](https://chromium.googlesource.com/chromium/src/+/4178e190e9da409b055e5dff469911ec6f6b716f/gpu/config/gpu_info.cc). This includes the version and driver information that's shown on `chrome://gpu` page.
 
 For `infoType` equal to `basic`:
   Promise is fulfilled with `Object` containing fewer attributes than when requested with `complete`. Here's an example of basic response:

+ 1 - 1
filenames.gni

@@ -34,7 +34,7 @@ filenames = {
     "lib/browser/api/view.js",
     "lib/browser/api/web-contents.js",
     "lib/browser/api/web-contents-view.js",
-    "lib/browser/chrome-devtools.js",
+    "lib/browser/devtools.js",
     "lib/browser/chrome-extension.js",
     "lib/browser/crash-reporter-init.js",
     "lib/browser/default-menu.ts",

+ 1 - 1
lib/browser/chrome-devtools.js → lib/browser/devtools.js

@@ -50,7 +50,7 @@ const getEditMenuItems = function () {
 
 const isChromeDevTools = function (pageURL) {
   const { protocol } = url.parse(pageURL)
-  return protocol === 'chrome-devtools:'
+  return protocol === 'devtools:'
 }
 
 const assertChromeDevTools = function (contents, api) {

+ 1 - 1
lib/browser/init.ts

@@ -154,7 +154,7 @@ if (packageJson.v8Flags != null) {
 app._setDefaultAppPaths(packagePath)
 
 // Load the chrome devtools support.
-require('@electron/internal/browser/chrome-devtools')
+require('@electron/internal/browser/devtools')
 
 // Load the chrome extension support.
 require('@electron/internal/browser/chrome-extension')

+ 1 - 1
lib/renderer/init.ts

@@ -94,7 +94,7 @@ if (preloadScript) {
 }
 
 switch (window.location.protocol) {
-  case 'chrome-devtools:': {
+  case 'devtools:': {
     // Override some inspector APIs.
     require('@electron/internal/renderer/inspector')
     break

+ 1 - 1
lib/sandboxed_renderer/init.js

@@ -109,7 +109,7 @@ const { hasSwitch } = process.electronBinding('command_line')
 const contextIsolation = hasSwitch('context-isolation')
 
 switch (window.location.protocol) {
-  case 'chrome-devtools:': {
+  case 'devtools:': {
     // Override some inspector APIs.
     require('@electron/internal/renderer/inspector')
     break

+ 3 - 3
patches/common/chromium/.patches

@@ -17,7 +17,6 @@ stream_resource_handler.patch
 thread_capabilities.patch
 web_contents.patch
 webview_cross_drag.patch
-worker_context_will_destroy.patch
 disable_user_gesture_requirement_for_beforeunload_dialogs.patch
 gin_enable_disable_v8_platform.patch
 blink-worker-enable-csp-in-file-scheme.patch
@@ -72,9 +71,10 @@ fix_disable_usage_of_setapplicationisdaemon_and.patch
 ipc_message_start.patch
 disable_network_services_by_default.patch
 unsandboxed_ppapi_processes_skip_zygote.patch
-viz_osr.patch
 patch_the_ensure_gn_version_py_script_to_work_on_mac_ci.patch
-revert_roll_clang_356356_357569.patch
 partially_revert_fb4ab3be3fc0024d00358d5b7816d3215a8ff20c.patch
 build_add_electron_tracing_category.patch
 add_contentgpuclient_precreatemessageloop_callback.patch
+disable_custom_libcxx_on_windows.patch
+feat_offscreen_rendering_with_viz_compositor.patch
+worker_context_will_destroy.patch

+ 2 - 2
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 27f7edf204a0f22917cc7b62a63723e7ff396702..ea25f04910803f34248674c42a43574fa884b8ab 100644
+index 934dee87c444429a65f6be2a953a104caa5c1e46..c378fb89eefc5fc9c4500919480e86967c488290 100644
 --- a/content/browser/loader/resource_dispatcher_host_impl.cc
 +++ b/content/browser/loader/resource_dispatcher_host_impl.cc
-@@ -1496,6 +1496,8 @@ void ResourceDispatcherHostImpl::BeginNavigationRequest(
+@@ -1475,6 +1475,8 @@ void ResourceDispatcherHostImpl::BeginNavigationRequest(
        !policy->IsWebSafeScheme(info.common_params.url.scheme()) &&
        !is_external_protocol;
  

+ 2 - 2
patches/common/chromium/blink-worker-enable-csp-in-file-scheme.patch

@@ -5,10 +5,10 @@ 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 d90b74ba141ee7f9609bea8698ca7b7c2f630d9f..f66233507fb26b4a2626b75b4eb38ff340d2d91c 100644
+index eeeaa47777df0cab00e1c14f60a0d1e26432c538..608ba10174a9c313bb17ab6d5f68053ce37a0435 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
-@@ -310,7 +310,6 @@ void WorkerClassicScriptLoader::ProcessContentSecurityPolicy(
+@@ -307,7 +307,6 @@ void WorkerClassicScriptLoader::ProcessContentSecurityPolicy(
    // document (which is implemented in WorkerMessagingProxy, and
    // m_contentSecurityPolicy should be left as nullptr to inherit the policy).
    if (!response.CurrentRequestUrl().ProtocolIs("blob") &&

+ 3 - 3
patches/common/chromium/blink_local_frame.patch

@@ -14,10 +14,10 @@ when there is code doing that.
 This patch reverts the change to fix the crash in Electron.
 
 diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
-index 24f40cc20d5a178d57828b733c10fcad5b3dcafe..99a7be58c6fde45aff4feafca51b3a63918850bb 100644
+index 06cf42e8199de15e2c32a59443b1daa1255d8882..4d66c30c45d87e70bce65f384a2944cf2697b1ae 100644
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -423,10 +423,6 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
+@@ -392,10 +392,6 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
    }
    CHECK(!view_ || !view_->IsAttached());
  
@@ -28,7 +28,7 @@ index 24f40cc20d5a178d57828b733c10fcad5b3dcafe..99a7be58c6fde45aff4feafca51b3a63
    if (!Client())
      return;
  
-@@ -444,6 +440,10 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
+@@ -413,6 +409,10 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
    // Notify ScriptController that the frame is closing, since its cleanup ends
    // up calling back to LocalFrameClient via WindowProxy.
    GetScriptController().ClearForClose();

+ 5 - 5
patches/common/chromium/blink_world_context.patch

@@ -5,7 +5,7 @@ Subject: blink_world_context.patch
 
 
 diff --git a/third_party/blink/public/web/web_local_frame.h b/third_party/blink/public/web/web_local_frame.h
-index 641a24b04dcf6602f8da660e4d84d591bc38573a..f9f1871d73dce74375084dd1786dee2806f973fb 100644
+index 82fb3fdfe6bfa8c8d885ee133270b6f2564325a8..f3bad71eab608d3b9ac0e08446c9e520f47e9b10 100644
 --- a/third_party/blink/public/web/web_local_frame.h
 +++ b/third_party/blink/public/web/web_local_frame.h
 @@ -355,6 +355,9 @@ class WebLocalFrame : public WebFrame {
@@ -19,10 +19,10 @@ index 641a24b04dcf6602f8da660e4d84d591bc38573a..f9f1871d73dce74375084dd1786dee28
    // 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 412e7553b657077c4ed5587dd7763ad4f14dc649..295ccca27242d3583697e4cda3460476ea38b231 100644
+index c8174f4b93b78b9368ef38ecb56e9eccf0b71467..73c2bed83ce240574065e3699617d091a581e9e9 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
-@@ -868,6 +868,13 @@ v8::Local<v8::Object> WebLocalFrameImpl::GlobalProxy() const {
+@@ -873,6 +873,13 @@ v8::Local<v8::Object> WebLocalFrameImpl::GlobalProxy() const {
    return MainWorldScriptContext()->Global();
  }
  
@@ -37,10 +37,10 @@ index 412e7553b657077c4ed5587dd7763ad4f14dc649..295ccca27242d3583697e4cda3460476
    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 c6d881efbe2ecbb9170521020ac12590df3a74fd..a32f8cd49ab2f8ce9c462af04260453889ebcd92 100644
+index 3db1bec7516a40eb2f654574baa108e99ff9fb2d..fb5b43e48e455d64ce986cb5490291fc1c18d8ba 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
-@@ -147,6 +147,8 @@ class CORE_EXPORT WebLocalFrameImpl final
+@@ -146,6 +146,8 @@ class CORE_EXPORT WebLocalFrameImpl final
        int argc,
        v8::Local<v8::Value> argv[]) override;
    v8::Local<v8::Context> MainWorldScriptContext() const override;

+ 1 - 1
patches/common/chromium/boringssl_build_gn.patch

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

+ 2 - 2
patches/common/chromium/browser_compositor_mac.patch

@@ -26,10 +26,10 @@ index de89d291e5cbc0981cf06170ed35502a1239136d..656f6c38d55d9f9af569bc772254ca13
        viz::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink);
    void OnDidNotProduceFrame(const viz::BeginFrameAck& ack);
 diff --git a/content/browser/renderer_host/browser_compositor_view_mac.mm b/content/browser/renderer_host/browser_compositor_view_mac.mm
-index 625566d5ad2510679cd3ed4c306c1cd3715f4c94..342c85daba1812461b4d9c0f9255220b26aca770 100644
+index 4b3f3c7e97e73ad6d0166ad114f4168d9ed00e11..59e58d693c971742951434f6582140d9179235f2 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 @@
+@@ -80,6 +80,12 @@
    DCHECK_EQ(1u, num_erased);
  }
  

+ 1 - 1
patches/common/chromium/build_add_electron_tracing_category.patch

@@ -8,7 +8,7 @@ categories in use are known / declared.  This patch is required for us
 to introduce a new Electron category.
 
 diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h
-index 0a0fb37798bdf596fef33c148ee0d9d358559286..ea0775c7edca664f9e1ba981b4a512f6fa5f3c29 100644
+index 97055b4bdaf0dc38b8d248fefddfcf8c68c123b9..6dbe407151dfc5a9168df77f42932e51b802377f 100644
 --- a/base/trace_event/builtin_categories.h
 +++ b/base/trace_event/builtin_categories.h
 @@ -61,6 +61,7 @@

+ 2 - 2
patches/common/chromium/build_gn.patch

@@ -5,7 +5,7 @@ Subject: build_gn.patch
 
 
 diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
-index 7175865b31ceefb592bfdfb55b00a1aaab14ef15..a96c2429dacac65489da0cd6fa5a642222f4b518 100644
+index 7063da0f26c5691f01214c2dc014128d7c8c5e09..b45c5adade6f68d5ba90ddbdf39755b53431b6f6 100644
 --- a/build/config/BUILDCONFIG.gn
 +++ b/build/config/BUILDCONFIG.gn
 @@ -123,6 +123,9 @@ if (current_os == "") {
@@ -18,7 +18,7 @@ index 7175865b31ceefb592bfdfb55b00a1aaab14ef15..a96c2429dacac65489da0cd6fa5a6422
    # Set to enable the official build level of optimization. This has nothing
    # to do with branding, but enables an additional level of optimization above
    # release (!is_debug). This might be better expressed as a tri-state
-@@ -438,6 +441,7 @@ default_compiler_configs = [
+@@ -437,6 +440,7 @@ default_compiler_configs = [
    "//build/config/compiler:thin_archive",
    "//build/config/coverage:default_coverage",
    "//build/config/sanitizers:default_sanitizer_flags",

+ 12 - 12
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 5eb0746e4d69a72b083d1632bb66882888b6b7f1..e99ea17700d6e0c240e07984748983e65fc61425 100644
+index b552de393894d9a9b26d92693f9bcd1fdfb86aba..187615224412a349c758489d9e5e080282860983 100644
 --- a/content/browser/frame_host/render_frame_host_impl.cc
 +++ b/content/browser/frame_host/render_frame_host_impl.cc
-@@ -3669,6 +3669,7 @@ void RenderFrameHostImpl::CreateNewWindow(
+@@ -3710,6 +3710,7 @@ void RenderFrameHostImpl::CreateNewWindow(
            last_committed_origin_, params->window_container_type,
            params->target_url, params->referrer.To<Referrer>(),
            params->frame_name, params->disposition, *params->features,
@@ -17,10 +17,10 @@ index 5eb0746e4d69a72b083d1632bb66882888b6b7f1..e99ea17700d6e0c240e07984748983e6
            &no_javascript_access);
  
 diff --git a/content/common/frame.mojom b/content/common/frame.mojom
-index 68cb13c4e2bd144a81546edb99ba993e36cf09ff..67b676e6c58f2e27e47c9064980e2bfca39c7d3b 100644
+index 82882159b0bac6d47d678c485de0aacc7db06c2d..dd2299094b79d82da7ec1cd8f559050b6f0e2af5 100644
 --- a/content/common/frame.mojom
 +++ b/content/common/frame.mojom
-@@ -289,6 +289,10 @@ struct CreateNewWindowParams {
+@@ -291,6 +291,10 @@ struct CreateNewWindowParams {
  
    // The window features to use for the new window.
    blink.mojom.WindowFeatures features;
@@ -32,7 +32,7 @@ index 68cb13c4e2bd144a81546edb99ba993e36cf09ff..67b676e6c58f2e27e47c9064980e2bfc
  
  // 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 bf0bbe26b5dfd43539b47a9dda8ec079f24adca4..bac5261c293f1c9aeec1ce077d483378538b9046 100644
+index da482a1a1638f27a413502d9be16a5fb12e9678c..de19cb3a5f3d6685d8dede7c3cdb5b47183ed07f 100644
 --- a/content/public/browser/content_browser_client.cc
 +++ b/content/public/browser/content_browser_client.cc
 @@ -518,6 +518,8 @@ bool ContentBrowserClient::CanCreateWindow(
@@ -45,7 +45,7 @@ index bf0bbe26b5dfd43539b47a9dda8ec079f24adca4..bac5261c293f1c9aeec1ce077d483378
      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 e295f5a9b4c27ddcb5128c041dfbb91378dda791..2539e6fce69fd0eb68f0439ae93393f88c670566 100644
+index 5e79a99f045272846f3840547345adffb991421b..2c722d14437cdad69544e0c67921dbaec15b97da 100644
 --- a/content/public/browser/content_browser_client.h
 +++ b/content/public/browser/content_browser_client.h
 @@ -175,6 +175,7 @@ class RenderFrameHost;
@@ -66,7 +66,7 @@ index e295f5a9b4c27ddcb5128c041dfbb91378dda791..2539e6fce69fd0eb68f0439ae93393f8
        bool opener_suppressed,
        bool* no_javascript_access);
 diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
-index a9508139d626447ebf54edf1281337b9f7a3f406..ee84732bc535538f95fc2c767060dca50fbdf561 100644
+index 49e1e5647f700350a07ad88306a06122d0f0f204..39c5ce2a631cc1d78e36dbda506212b87f5a1939 100644
 --- a/content/renderer/render_view_impl.cc
 +++ b/content/renderer/render_view_impl.cc
 @@ -77,6 +77,7 @@
@@ -77,7 +77,7 @@ index a9508139d626447ebf54edf1281337b9f7a3f406..ee84732bc535538f95fc2c767060dca5
  #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/video_capture_impl_manager.h"
-@@ -1368,6 +1369,8 @@ WebView* RenderViewImpl::CreateView(
+@@ -1358,6 +1359,8 @@ WebView* RenderViewImpl::CreateView(
    }
    params->features = ConvertWebWindowFeaturesToMojoWindowFeatures(features);
  
@@ -87,10 +87,10 @@ index a9508139d626447ebf54edf1281337b9f7a3f406..ee84732bc535538f95fc2c767060dca5
    // moved on send.
    bool is_background_tab =
 diff --git a/content/shell/browser/web_test/web_test_content_browser_client.cc b/content/shell/browser/web_test/web_test_content_browser_client.cc
-index a303b169acb638a0c4bbec1349a028c8d89762bd..c95dcedefc74e5ad9883d16448bb36fcb5a088a6 100644
+index 3e3f251af3c531fca379f7fa00f67d671bbe2d5f..e77427146729664247e4dd3313f8533a78059bf7 100644
 --- a/content/shell/browser/web_test/web_test_content_browser_client.cc
 +++ b/content/shell/browser/web_test/web_test_content_browser_client.cc
-@@ -298,6 +298,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
+@@ -299,6 +299,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
      const std::string& frame_name,
      WindowOpenDisposition disposition,
      const blink::mojom::WindowFeatures& features,
@@ -100,10 +100,10 @@ index a303b169acb638a0c4bbec1349a028c8d89762bd..c95dcedefc74e5ad9883d16448bb36fc
      bool opener_suppressed,
      bool* no_javascript_access) {
 diff --git a/content/shell/browser/web_test/web_test_content_browser_client.h b/content/shell/browser/web_test/web_test_content_browser_client.h
-index 6413e5f117d7dfd4a61779d4c971c28a14a86082..a02e232249cf99c55ec5b07a94b29f0a6d4a38bf 100644
+index 8b9ae118bca4678c315d820af6b4dbe850943ed4..acde862d6d48429db5936f2e6735017dc2ef647e 100644
 --- a/content/shell/browser/web_test/web_test_content_browser_client.h
 +++ b/content/shell/browser/web_test/web_test_content_browser_client.h
-@@ -68,6 +68,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
+@@ -69,6 +69,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
                         const std::string& frame_name,
                         WindowOpenDisposition disposition,
                         const blink::mojom::WindowFeatures& features,

+ 3 - 3
patches/common/chromium/content_allow_embedder_to_prevent_locking_scheme_registry.patch

@@ -12,10 +12,10 @@ 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 3dda0677bfc7ff8bb0e2728ab40f586c450a4a20..1d094c0ebbfe4ee5a75c58ce7f823bdb0a1124f7 100644
+index dcf8654b210be64d55d98c784075e2453e6dad8f..cee4e47229b8d6bbb1e8b8e985eb3bb0b240f910 100644
 --- a/content/app/content_main_runner_impl.cc
 +++ b/content/app/content_main_runner_impl.cc
-@@ -758,7 +758,7 @@ int ContentMainRunnerImpl::Initialize(const ContentMainParams& params) {
+@@ -750,7 +750,7 @@ int ContentMainRunnerImpl::Initialize(const ContentMainParams& params) {
  #endif
  
      RegisterPathProvider();
@@ -40,7 +40,7 @@ index 456df421598153bde006ad0ecb0f1031360bb543..af06d78b91fa30e5daf993ad2c65c2c5
    return service_manager::ProcessType::kDefault;
  }
 diff --git a/content/public/app/content_main_delegate.h b/content/public/app/content_main_delegate.h
-index 01f81ee8a103bc893c0739de3463c48839f8d10f..40123b4bf42131a716f9ed7f5dd14b93151fd0b3 100644
+index d4f3b8097c6aba8e15616c6d00070565064b1e9c..5672f4f1c328d30bb04dd8aaf4af63c51d52b3e6 100644
 --- a/content/public/app/content_main_delegate.h
 +++ b/content/public/app/content_main_delegate.h
 @@ -88,6 +88,9 @@ class CONTENT_EXPORT ContentMainDelegate {

+ 2 - 2
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 6a1d8bbebc69b031ac02b56756a8f313bd1b030f..ca61686d763cd7fb867599397a161e8c88c5b7a9 100644
+index 5f22028d622e43d2fc0efe68976ec21c4afa60f5..5c180d5367be3df04b51fe00aa3a02abc2fefb60 100644
 --- a/content/browser/browser_main_loop.cc
 +++ b/content/browser/browser_main_loop.cc
-@@ -1570,7 +1570,7 @@ void BrowserMainLoop::MainMessageLoopRun() {
+@@ -1525,7 +1525,7 @@ void BrowserMainLoop::MainMessageLoopRun() {
    }
  
    base::RunLoop run_loop;

+ 4 - 4
patches/common/chromium/cross_site_document_resource_handler.patch

@@ -8,10 +8,10 @@ this patch can be removed once we switch to network service,
 where the embedders have a chance to design their URLLoaders.
 
 diff --git a/content/browser/loader/cross_site_document_resource_handler.cc b/content/browser/loader/cross_site_document_resource_handler.cc
-index 9e65e50de1d45d8435145b56bf7108a8c0272065..3103e4caa2adf853277774092cbd645fd8ece952 100644
+index 2151c5b9698e9a2768875d04a2297956cc4c0d41..8a316a117ab367bcbac947894cbe1bc2428de93e 100644
 --- a/content/browser/loader/cross_site_document_resource_handler.cc
 +++ b/content/browser/loader/cross_site_document_resource_handler.cc
-@@ -666,6 +666,9 @@ bool CrossSiteDocumentResourceHandler::ShouldBlockBasedOnHeaders(
+@@ -671,6 +671,9 @@ bool CrossSiteDocumentResourceHandler::ShouldBlockBasedOnHeaders(
      return false;
    }
  
@@ -22,7 +22,7 @@ index 9e65e50de1d45d8435145b56bf7108a8c0272065..3103e4caa2adf853277774092cbd645f
  }
  
 diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
-index d31af66d884a36b1f10ba845bd3df77394296cf1..f57d0f9d0aef241e648a6a4a3aa390efcf16c690 100644
+index acf458d5c088607d3ceb6d058f28f076bf4cf712..4bdfeefc531b378f33b143ea432aebd69906bf08 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 d31af66d884a36b1f10ba845bd3df77394296cf1..f57d0f9d0aef241e648a6a4a3aa390ef
      const MainFunctionParams& parameters) {
    return nullptr;
 diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
-index 87967723939dc85f89ed0be793f3371200860e45..ec60fa98d994b07881dbb15d397f8b7844af911a 100644
+index 9c7c77b44d279219411ce545c5448acecbd56d59..f99105176cc97e13b5d2b7c470b95e23b404de0a 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 {

+ 5 - 5
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 9e686fc3ec97bbb4a67b391f344dc8eb7aad2fbd..566929def5c8a9de82b5f7238cc50657521249d9 100644
+index 64dbeec700f4848966cd25940ae1a360de09f1d1..0a92b5d3501682cdd5101e3fdd8dde96580efc92 100644
 --- a/ui/views/win/hwnd_message_handler.cc
 +++ b/ui/views/win/hwnd_message_handler.cc
-@@ -284,6 +284,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500;
+@@ -285,6 +285,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500;
  
  }  // namespace
  
@@ -29,7 +29,7 @@ index 9e686fc3ec97bbb4a67b391f344dc8eb7aad2fbd..566929def5c8a9de82b5f7238cc50657
  // 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.
  //
-@@ -335,6 +339,7 @@ class HWNDMessageHandler::ScopedRedrawLock {
+@@ -336,6 +340,7 @@ class HWNDMessageHandler::ScopedRedrawLock {
          cancel_unlock_(false),
          should_lock_(owner_->IsVisible() && !owner->HasChildRenderingWindow() &&
                       ::IsWindow(hwnd_) &&
@@ -37,7 +37,7 @@ index 9e686fc3ec97bbb4a67b391f344dc8eb7aad2fbd..566929def5c8a9de82b5f7238cc50657
                       (!(GetWindowLong(hwnd_, GWL_STYLE) & WS_CAPTION) ||
                        !ui::win::IsAeroGlassEnabled())) {
      if (should_lock_)
-@@ -936,6 +941,10 @@ bool HWNDMessageHandler::HasChildRenderingWindow() {
+@@ -934,6 +939,10 @@ bool HWNDMessageHandler::HasChildRenderingWindow() {
        hwnd());
  }
  
@@ -62,7 +62,7 @@ index e51d2f358319108e1f5dd70898070caf655265bf..5efcdf139ef331f09f427f75a9a75ed2
    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 3b06661ed6d694a6209f8584065391e074e3e6b3..c8d2583db0b102628f53f554785e5282d8008830 100644
+index 45c4e5b29d05ea0323596fa2c5034c2e30a68f70..e25aac69b09954fbc267309beba98ec0877fa2ac 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 {

+ 25 - 25
patches/common/chromium/disable_color_correct_rendering.patch

@@ -32,7 +32,7 @@ index 092fb1b7ea3626b7649472c35ec20bf1a6aaf4cd..fed8dd322faba387ebd0508228f84776
    // 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 fc3bd4e31a24fa9135381959c8729a5e13368d48..5ab9b8c63128a5b964457eed2100316e777f542e 100644
+index 78041fcb9647f740c6a142ec65f2418712c6286c..04e75ac40c38a38bdec634d1aa645854cb1a80d6 100644
 --- a/components/viz/common/display/renderer_settings.h
 +++ b/components/viz/common/display/renderer_settings.h
 @@ -23,6 +23,7 @@ class VIZ_COMMON_EXPORT RendererSettings {
@@ -65,10 +65,10 @@ index 78a6b5739caed8c3925f303c52ed107be8e4ccfe..ddbf660e594c1a991d4e758fa11b1b2e
        !command_line->HasSwitch(switches::kUIDisablePartialSwap);
  #if defined(OS_WIN)
 diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc
-index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d2a4c05c7 100644
+index edf8e92edadae9354962a98712e3bc0ac7410fbe..553c181f04180185acfcf865e59c6dea839cc973 100644
 --- a/components/viz/service/display/gl_renderer.cc
 +++ b/components/viz/service/display/gl_renderer.cc
-@@ -79,6 +79,9 @@
+@@ -80,6 +80,9 @@
  
  using gpu::gles2::GLES2Interface;
  
@@ -78,7 +78,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
  namespace viz {
  namespace {
  
-@@ -553,8 +556,9 @@ void GLRenderer::DoDrawQuad(const DrawQuad* quad,
+@@ -554,8 +557,9 @@ void GLRenderer::DoDrawQuad(const DrawQuad* quad,
  void GLRenderer::DrawDebugBorderQuad(const DebugBorderDrawQuad* quad) {
    SetBlendEnabled(quad->ShouldDrawWithBlending());
  
@@ -90,7 +90,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
  
    // Use the full quad_rect for debug quads to not move the edges based on
    // partial swaps.
-@@ -1372,7 +1376,8 @@ void GLRenderer::ChooseRPDQProgram(DrawRenderPassDrawQuadParams* params,
+@@ -1353,7 +1357,8 @@ void GLRenderer::ChooseRPDQProgram(DrawRenderPassDrawQuadParams* params,
            params->use_aa ? USE_AA : NO_AA, mask_mode, mask_for_background,
            params->use_color_matrix, tint_gl_composited_content_,
            ShouldApplyRoundedCorner(params->quad)),
@@ -100,7 +100,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
  }
  
  void GLRenderer::UpdateRPDQUniforms(DrawRenderPassDrawQuadParams* params) {
-@@ -1843,8 +1848,8 @@ void GLRenderer::DrawSolidColorQuad(const SolidColorDrawQuad* quad,
+@@ -1824,8 +1829,8 @@ void GLRenderer::DrawSolidColorQuad(const SolidColorDrawQuad* quad,
    SetUseProgram(ProgramKey::SolidColor(use_aa ? USE_AA : NO_AA,
                                         tint_gl_composited_content_,
                                         ShouldApplyRoundedCorner(quad)),
@@ -111,7 +111,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
    SetShaderColor(color, opacity);
    if (current_program_->rounded_corner_rect_location() != -1) {
      SetShaderRoundedCorner(
-@@ -2000,8 +2005,8 @@ void GLRenderer::DrawContentQuadAA(const ContentDrawQuadBase* quad,
+@@ -1980,8 +1985,8 @@ void GLRenderer::DrawContentQuadAA(const ContentDrawQuadBase* quad,
                                                : NON_PREMULTIPLIED_ALPHA,
                         false, false, tint_gl_composited_content_,
                         ShouldApplyRoundedCorner(quad)),
@@ -122,7 +122,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
  
    if (current_program_->tint_color_matrix_location() != -1) {
      auto matrix = cc::DebugColors::TintCompositedContentColorTransformMatrix();
-@@ -2098,8 +2103,8 @@ void GLRenderer::DrawContentQuadNoAA(const ContentDrawQuadBase* quad,
+@@ -2077,8 +2082,8 @@ void GLRenderer::DrawContentQuadNoAA(const ContentDrawQuadBase* quad,
                         !quad->ShouldDrawWithBlending(), has_tex_clamp_rect,
                         tint_gl_composited_content_,
                         ShouldApplyRoundedCorner(quad)),
@@ -133,7 +133,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
  
    if (current_program_->tint_color_matrix_location() != -1) {
      auto matrix = cc::DebugColors::TintCompositedContentColorTransformMatrix();
-@@ -2202,7 +2207,7 @@ void GLRenderer::DrawYUVVideoQuad(const YUVVideoDrawQuad* quad,
+@@ -2181,7 +2186,7 @@ void GLRenderer::DrawYUVVideoQuad(const YUVVideoDrawQuad* quad,
    DCHECK_NE(src_color_space, src_color_space.GetAsFullRangeRGB());
  
    gfx::ColorSpace dst_color_space =
@@ -142,7 +142,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
    // Force sRGB output on Windows for overlay candidate video quads to match
    // DirectComposition behavior in case these switch between overlays and
    // compositing. See https://crbug.com/811118 for details.
-@@ -2358,8 +2363,8 @@ void GLRenderer::DrawStreamVideoQuad(const StreamVideoDrawQuad* quad,
+@@ -2337,8 +2342,8 @@ void GLRenderer::DrawStreamVideoQuad(const StreamVideoDrawQuad* quad,
  
    SetUseProgram(ProgramKey::VideoStream(tex_coord_precision,
                                          ShouldApplyRoundedCorner(quad)),
@@ -153,7 +153,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
  
    DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_));
    gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id());
-@@ -2416,8 +2421,8 @@ void GLRenderer::FlushTextureQuadCache(BoundGeometry flush_binding) {
+@@ -2395,8 +2400,8 @@ void GLRenderer::FlushTextureQuadCache(BoundGeometry flush_binding) {
        draw_cache_.nearest_neighbor ? GL_NEAREST : GL_LINEAR);
  
    // Bind the program to the GL state.
@@ -164,7 +164,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
  
    if (current_program_->rounded_corner_rect_location() != -1) {
      SetShaderRoundedCorner(
-@@ -3110,7 +3115,9 @@ void GLRenderer::PrepareGeometry(BoundGeometry binding) {
+@@ -3089,7 +3094,9 @@ void GLRenderer::PrepareGeometry(BoundGeometry binding) {
  void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color,
                                 const gfx::ColorSpace& src_color_space,
                                 const gfx::ColorSpace& dst_color_space) {
@@ -175,7 +175,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
  
    ProgramKey program_key = program_key_no_color;
    const gfx::ColorTransform* color_transform =
-@@ -3464,7 +3471,7 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource(
+@@ -3443,7 +3450,7 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource(
  
    *overlay_texture = FindOrCreateOverlayTexture(
        params.quad->render_pass_id, iosurface_width, iosurface_height,
@@ -184,7 +184,7 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
    *new_bounds = gfx::RectF(updated_dst_rect.origin(),
                             gfx::SizeF((*overlay_texture)->texture.size()));
  
-@@ -3668,8 +3675,9 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) {
+@@ -3647,8 +3654,9 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) {
  
    PrepareGeometry(SHARED_BINDING);
  
@@ -196,17 +196,17 @@ index faa61cee3a961b57c2abc5f4bdf6e8cd0954985b..76a73e7bb9dc1954da9a9f9f548c9e8d
  
    gfx::Transform render_matrix;
    render_matrix.Translate(0.5 * output_rect.width() + output_rect.x(),
-@@ -3829,3 +3837,5 @@ gfx::Size GLRenderer::GetRenderPassBackingPixelSize(
+@@ -3808,3 +3816,5 @@ gfx::Size GLRenderer::GetRenderPassBackingPixelSize(
  }
  
  }  // namespace viz
 +
 +#undef PATCH_CS
 diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc
-index 53fc82c1f2cc0cfb7a6ce909fea6c025dff26b43..ec00a673df6a8f1c372fc8dff7cf508502c3767b 100644
+index f19bbb46ea6f3962f83d10fb400ae55584a17a9e..c5dff79af54a03ef888e4474e5ea53689e8e8cd7 100644
 --- a/content/browser/gpu/gpu_process_host.cc
 +++ b/content/browser/gpu/gpu_process_host.cc
-@@ -192,6 +192,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus(
+@@ -191,6 +191,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus(
  
  // Command-line switches to propagate to the GPU process.
  static const char* const kSwitchNames[] = {
@@ -215,10 +215,10 @@ index 53fc82c1f2cc0cfb7a6ce909fea6c025dff26b43..ec00a673df6a8f1c372fc8dff7cf5085
      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 50f63a2c8f8ec447545d2b2c80afef34ad4a7fef..8728e19fe5087927b4d6aa8cccaf09258aae9ea4 100644
+index 982b82ef2b517bd21f05f24efc8e0d78c111d495..4a32760fc4764341d0c3a4d74b8f9fd044c891e9 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 @@
+@@ -218,6 +218,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 50f63a2c8f8ec447545d2b2c80afef34ad4a7fef..8728e19fe5087927b4d6aa8cccaf0925
  #include "ui/gl/gl_switches.h"
  #include "ui/native_theme/native_theme_features.h"
  
-@@ -2935,6 +2936,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
+@@ -2925,6 +2926,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 50f63a2c8f8ec447545d2b2c80afef34ad4a7fef..8728e19fe5087927b4d6aa8cccaf0925
      network::switches::kExplicitlyAllowedPorts,
      service_manager::switches::kDisableInProcessStackTraces,
 diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
-index abbcf4ba59a1f3f31ae83055030414de61ec20c5..0f34f2ef40afcda39bc3297dc69128e441be6cf5 100644
+index 3efeb92f38e2ec5bb7303fa1c66cbab7dc78671c..b67999f475460bd5bf3caa449d27a508c62e5b20 100644
 --- a/content/renderer/render_widget.cc
 +++ b/content/renderer/render_widget.cc
-@@ -2818,6 +2818,9 @@ cc::LayerTreeSettings RenderWidget::GenerateLayerTreeSettings(
+@@ -2799,6 +2799,9 @@ cc::LayerTreeSettings RenderWidget::GenerateLayerTreeSettings(
    settings.main_frame_before_activation_enabled =
        cmd.HasSwitch(cc::switches::kEnableMainFrameBeforeActivation);
  
@@ -288,7 +288,7 @@ index 88ec94963569588ed2882193a28197879dcb1090..eae37577bc9b1872c0162f55de218553
    if (color_space == ColorSpace::CreateSRGB()) {
      base::ScopedCFTypeRef<CFDataRef> srgb_icc(
 diff --git a/ui/gfx/switches.cc b/ui/gfx/switches.cc
-index 53de88695661a12f9820a0319901d4565a775c4a..12735b7b95a0bb45e08707467d21e59f4b77e2b5 100644
+index 189e147e908fdab38972f4f9b0ce212347a4ec2e..2a0a480d8513abc609b82f3d1eb24695d4f2146f 100644
 --- a/ui/gfx/switches.cc
 +++ b/ui/gfx/switches.cc
 @@ -7,6 +7,8 @@
@@ -301,10 +301,10 @@ index 53de88695661a12f9820a0319901d4565a775c4a..12735b7b95a0bb45e08707467d21e59f
  // sharpness, kerning, hinting and layout.
  const char kDisableFontSubpixelPositioning[] =
 diff --git a/ui/gfx/switches.h b/ui/gfx/switches.h
-index 3b87320bf5318ad4d30205f8a48f19c8037e61c6..f18f8db6feab73169ad9f95f33c52799d5d53049 100644
+index c95989ae7da12585fc417a680aef6c55e4b7a8d7..9e180a6decd72e510cecfec1f43fd1ac70e8b8f7 100644
 --- a/ui/gfx/switches.h
 +++ b/ui/gfx/switches.h
-@@ -11,6 +11,8 @@
+@@ -10,6 +10,8 @@
  
  namespace switches {
  

+ 20 - 0
patches/common/chromium/disable_custom_libcxx_on_windows.patch

@@ -0,0 +1,20 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Nitish Sakhawalkar <[email protected]>
+Date: Mon, 13 May 2019 15:48:36 -0700
+Subject: Disable custom libcxx on windows
+
+
+diff --git a/build/config/c++/c++.gni b/build/config/c++/c++.gni
+index b639ca7793c2a5d97df0a02efc462c476c3640d0..c6d543d781fe30574f671ee22e84ab0b95a50ccb 100644
+--- a/build/config/c++/c++.gni
++++ b/build/config/c++/c++.gni
+@@ -12,7 +12,8 @@ declare_args() {
+   # is not supported.
+   use_custom_libcxx =
+       is_fuchsia || is_android || is_mac || (is_ios && !use_xcode_clang) ||
+-      (is_win && is_clang) ||
++      # Do not use custom libcxx on windows
++      #(is_win && is_clang) ||
+       (is_linux &&
+        (!is_chromeos || default_toolchain != "//build/toolchain/cros:target"))
+ 

+ 2 - 2
patches/common/chromium/disable_detach_webview_frame.patch

@@ -12,10 +12,10 @@ 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 62436cdd04e7b7c83e04cd6339ccf8374c78e34a..1f006c181eee5d6cea95894fea1204ca75af0bee 100644
+index 7f0d8867dcf5eeaad3a1294014a141ff52e0643d..fc8b96dfd1c3a6d87ebc2cce1f736735e69743e6 100644
 --- a/content/browser/frame_host/render_frame_proxy_host.cc
 +++ b/content/browser/frame_host/render_frame_proxy_host.cc
-@@ -269,6 +269,12 @@ void RenderFrameProxyHost::SetDestructionCallback(
+@@ -261,6 +261,12 @@ void RenderFrameProxyHost::BubbleLogicalScroll(
  
  void RenderFrameProxyHost::OnDetach() {
    if (frame_tree_node_->render_manager()->IsMainFrameForInnerDelegate()) {

+ 3 - 3
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 d9831e4d2cc2e24d07ab34957be0112992112b6e..5f0e4c3b44a4da7de94f2beb54cbc545c418679d 100644
+index bd0343cbb4ba7d91f7541f94d27499b1e1a120e8..e28d6e0077455a461f270988e3c46a89e1c485b2 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.cc
 +++ b/content/browser/renderer_host/render_widget_host_impl.cc
-@@ -736,6 +736,9 @@ void RenderWidgetHostImpl::WasHidden() {
+@@ -672,6 +672,9 @@ void RenderWidgetHostImpl::WasHidden() {
    if (is_hidden_)
      return;
  
@@ -19,7 +19,7 @@ index d9831e4d2cc2e24d07ab34957be0112992112b6e..5f0e4c3b44a4da7de94f2beb54cbc545
  
    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 2bf7891372c8744edd2e99a0fb81ff2bd66e5952..cb37e6b0d0f2c6447a404312c4ef36622b8fdc9e 100644
+index 654c60e7bdecf009f2b837e38e9db50f3409978d..65fb1c070196b814edc6d94012150fa496897577 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.h
 +++ b/content/browser/renderer_host/render_widget_host_impl.h
 @@ -155,6 +155,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl

+ 3 - 3
patches/common/chromium/disable_network_services_by_default.patch

@@ -12,15 +12,15 @@ We should remove this patch after all Electron's code has been migrated to the
 NetworkService.
 
 diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
-index b12f83da65dd3d5f3959e8ea421fabb46dab7ad2..683890831cd9a34796caf26a80f2baf863d5f04f 100644
+index ae63eaa3a0e58905332bcd3b5623c34c2b4a9281..36499b0051936c356801067b1ba7714a5a608f3b 100644
 --- a/services/network/public/cpp/features.cc
 +++ b/services/network/public/cpp/features.cc
 @@ -21,7 +21,7 @@ const base::Feature kNetworkService {
    "NetworkService",
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
+ #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_FUCHSIA) || \
      (defined(OS_LINUX) && !defined(IS_CHROMECAST))
 -      base::FEATURE_ENABLED_BY_DEFAULT
 +      base::FEATURE_DISABLED_BY_DEFAULT
- };
  #else
        base::FEATURE_DISABLED_BY_DEFAULT
+ #endif

+ 2 - 2
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 30f6773e4d37c5e4523bb14a925df5685957b107..e2f9cada0171c5b85445d1d6a105250dd36f17a0 100644
+index 41f62a2100fdd0a82cebdb52561fef32bae769e2..2179904cd2b27c47c036b2ee10a36592ceac6580 100644
 --- a/third_party/blink/renderer/core/dom/document.cc
 +++ b/third_party/blink/renderer/core/dom/document.cc
-@@ -3596,7 +3596,9 @@ bool Document::DispatchBeforeUnloadEvent(ChromeClient* chrome_client,
+@@ -3651,7 +3651,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);

+ 4 - 4
patches/common/chromium/dom_storage_limits.patch

@@ -97,7 +97,7 @@ index c04e0e8bff1a7a41a1e18aca5403aed16a80aead..d63cec971f0a98f7b8ff30c1f6a0fa84
    EnsureLoaded();
    bool result = false;
 diff --git a/third_party/blink/renderer/modules/storage/cached_storage_area.cc b/third_party/blink/renderer/modules/storage/cached_storage_area.cc
-index 9430717450759c77e8164bc1c496c4a8e4e9ddb6..8a8ff0816d8c015ea8a0456ba66b702b765a128a 100644
+index 6a3a3718443aebf24fd60e00f8f01ba76575ebfa..fb8250553164ebaf1a5ccae4a1c8e2f660ea6e14 100644
 --- a/third_party/blink/renderer/modules/storage/cached_storage_area.cc
 +++ b/third_party/blink/renderer/modules/storage/cached_storage_area.cc
 @@ -106,11 +106,13 @@ bool CachedStorageArea::SetItem(const String& key,
@@ -115,12 +115,12 @@ index 9430717450759c77e8164bc1c496c4a8e4e9ddb6..8a8ff0816d8c015ea8a0456ba66b702b
    EnsureLoaded();
    String old_value;
 diff --git a/third_party/blink/renderer/modules/storage/storage_area_map.cc b/third_party/blink/renderer/modules/storage/storage_area_map.cc
-index 62ab01c2864baa2ef1945031faf42cbeefbfc72b..e7edaff1778c66812ab9f7058e89f84bfba94339 100644
+index 0da8a1e891edad60355792c40b7d15e90c1086e8..df71418d598d5bdf41e9a8a4340999d9d277aeef 100644
 --- a/third_party/blink/renderer/modules/storage/storage_area_map.cc
 +++ b/third_party/blink/renderer/modules/storage/storage_area_map.cc
-@@ -104,10 +104,12 @@ bool StorageAreaMap::SetItemInternal(const String& key,
-   size_t new_item_size = QuotaForString(key) + QuotaForString(value);
+@@ -113,10 +113,12 @@ bool StorageAreaMap::SetItemInternal(const String& key,
    size_t new_quota_used = quota_used_ - old_item_size + new_item_size;
+   size_t new_memory_used = memory_used_ - old_item_memory + new_item_memory;
  
 +#if 0
    // Only check quota if the size is increasing, this allows

+ 2 - 2
patches/common/chromium/dump_syms.patch

@@ -8,10 +8,10 @@ this but it is not a blocker for releasing Electron.  This patch removes
 the hard fail on dylib resolve failure from dump_syms
 
 diff --git a/components/crash/content/tools/generate_breakpad_symbols.py b/components/crash/content/tools/generate_breakpad_symbols.py
-index c926de336a8bedb2b3b8870a5ad6ab374a9011c3..58558b6cd1e3af826a7066c035e1ad589eff4cb5 100755
+index 937548cc0303d67402f42a6910cfc57bf0e53d64..dce68b1bd1ef58a5dfddb2bbdb56930ed943ad1d 100755
 --- a/components/crash/content/tools/generate_breakpad_symbols.py
 +++ b/components/crash/content/tools/generate_breakpad_symbols.py
-@@ -160,7 +160,7 @@ def GetSharedLibraryDependenciesMac(binary, exe_path):
+@@ -175,7 +175,7 @@ def GetSharedLibraryDependenciesMac(binary, exe_path):
              'ERROR: failed to resolve %s, exe_path %s, loader_path %s, '
              'rpaths %s' % (m.group(1), exe_path, loader_path,
                             ', '.join(rpaths)))

+ 1 - 1
patches/common/chromium/exclude-a-few-test-files-from-build.patch

@@ -7,7 +7,7 @@ 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 277254a4f8cd2c26d09cae73796e59353f7e7108..f9061edf1d17dae129210a7db1b8ff9a48be52f5 100644
+index 99269e86e5b60e1191cc4bfef59f8fb3f8cb2f27..0c90eaaaa5b08e33ea7fce212429a4e9f7a49cf5 100644
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
 @@ -1749,7 +1749,7 @@ jumbo_source_set("blink_platform_unittests_sources") {

+ 33 - 31
patches/common/chromium/viz_osr.patch → patches/common/chromium/feat_offscreen_rendering_with_viz_compositor.patch

@@ -5,7 +5,7 @@ Subject: feat: offscreen rendering with viz compositor
 
 
 diff --git a/components/viz/host/host_display_client.cc b/components/viz/host/host_display_client.cc
-index ca788f5288132456d1142004b95f57678b082800..441ec3c34a8a4617d3a4b4d20ac864773b697589 100644
+index f5e18df4e06e24d3bdd51308abde48e217444848..41017d9d53b1c0d563ea0901f5cae407c6cf1560 100644
 --- a/components/viz/host/host_display_client.cc
 +++ b/components/viz/host/host_display_client.cc
 @@ -18,6 +18,10 @@
@@ -30,7 +30,7 @@ index ca788f5288132456d1142004b95f57678b082800..441ec3c34a8a4617d3a4b4d20ac86477
    if (!NeedsToUseLayerWindow(widget_)) {
      DLOG(ERROR) << "HWND shouldn't be using a layered window";
      return;
-@@ -56,7 +60,11 @@ void HostDisplayClient::CreateLayeredWindowUpdater(
+@@ -56,8 +60,12 @@ void HostDisplayClient::CreateLayeredWindowUpdater(
  
    layered_window_updater_ =
        std::make_unique<LayeredWindowUpdaterImpl>(widget_, std::move(request));
@@ -42,9 +42,10 @@ index ca788f5288132456d1142004b95f57678b082800..441ec3c34a8a4617d3a4b4d20ac86477
  #endif
 +}
  
- }  // namespace viz
+ #if defined(USE_X11)
+ void HostDisplayClient::DidCompleteSwapWithNewSize(const gfx::Size& size) {
 diff --git a/components/viz/host/host_display_client.h b/components/viz/host/host_display_client.h
-index af64385aa93f7abc7a85e1f6eec3c99134e0d2b5..011007ba451e71d46d02cb2d28f6489fe2a805ec 100644
+index 5e5c5da4a3cfc927df3fb120fcab647e927271c1..8c6ec95f309660fb83012a13c7b9bb64b782e7d9 100644
 --- a/components/viz/host/host_display_client.h
 +++ b/components/viz/host/host_display_client.h
 @@ -30,17 +30,17 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom::DisplayClient {
@@ -66,8 +67,8 @@ index af64385aa93f7abc7a85e1f6eec3c99134e0d2b5..011007ba451e71d46d02cb2d28f6489f
        mojom::LayeredWindowUpdaterRequest request) override;
 -#endif
  
-   mojo::Binding<mojom::DisplayClient> binding_;
- #if defined(OS_MACOSX) || defined(OS_WIN)
+ #if defined(USE_X11)
+   void DidCompleteSwapWithNewSize(const gfx::Size& size) override;
 diff --git a/components/viz/host/layered_window_updater_impl.cc b/components/viz/host/layered_window_updater_impl.cc
 index d3a49ed8be8dc11b86af67cdd600b05ddc0fc486..88bf86f3938b8267d731b52c8c3baa35d3128c7a 100644
 --- a/components/viz/host/layered_window_updater_impl.cc
@@ -97,10 +98,10 @@ index 93c52d2b928cba6e98723e19b005fb7bd7089a58..4dc645e770a2a039ed8e4ff4de555767
   private:
    const HWND hwnd_;
 diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn
-index 21345740188ebc13aefae524c9fe065168ccaf27..f56d94f8810063d36ee161b87dccfecbe6e3ab85 100644
+index e2bb3f029f754a5d4d3902af0c0c87da762182eb..10b369fe9ac1e7739c288c4ccf09f621ea444bab 100644
 --- a/components/viz/service/BUILD.gn
 +++ b/components/viz/service/BUILD.gn
-@@ -116,6 +116,8 @@ viz_component("service") {
+@@ -117,6 +117,8 @@ viz_component("service") {
      "display_embedder/output_surface_provider_impl.h",
      "display_embedder/server_shared_bitmap_manager.cc",
      "display_embedder/server_shared_bitmap_manager.h",
@@ -110,7 +111,7 @@ index 21345740188ebc13aefae524c9fe065168ccaf27..f56d94f8810063d36ee161b87dccfecb
      "display_embedder/software_output_surface.h",
      "display_embedder/viz_process_context_provider.cc",
 diff --git a/components/viz/service/display_embedder/output_surface_provider_impl.cc b/components/viz/service/display_embedder/output_surface_provider_impl.cc
-index 264c56995171182940b223da06b809eebf78e918..cafc117436bdfb5600e5dfbcd2edf21fe505eeea 100644
+index 8fe397588eb47224d48a8642b814583d11cc9c09..a7072c8e16434d3b15db1599f43d8fab5a97bdf3 100644
 --- a/components/viz/service/display_embedder/output_surface_provider_impl.cc
 +++ b/components/viz/service/display_embedder/output_surface_provider_impl.cc
 @@ -18,6 +18,7 @@
@@ -121,7 +122,7 @@ index 264c56995171182940b223da06b809eebf78e918..cafc117436bdfb5600e5dfbcd2edf21f
  #include "components/viz/service/display_embedder/software_output_surface.h"
  #include "components/viz/service/display_embedder/viz_process_context_provider.h"
  #include "components/viz/service/gl/gpu_service_impl.h"
-@@ -240,6 +241,19 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform(
+@@ -243,6 +244,19 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform(
    if (headless_)
      return std::make_unique<SoftwareOutputDevice>();
  
@@ -139,8 +140,8 @@ index 264c56995171182940b223da06b809eebf78e918..cafc117436bdfb5600e5dfbcd2edf21f
 +#endif
 +
  #if defined(OS_WIN)
-   return CreateSoftwareOutputDeviceWinGpu(
-       surface_handle, &output_device_backing_, display_client);
+   return CreateSoftwareOutputDeviceWin(surface_handle, &output_device_backing_,
+                                        display_client);
 diff --git a/components/viz/service/display_embedder/software_output_device_mac.cc b/components/viz/service/display_embedder/software_output_device_mac.cc
 index b9357082293cc55650144ccbc8bada8fe6d1cac4..b4cb07e26d1504719f80e5835c1cb5f138b9f1ab 100644
 --- a/components/viz/service/display_embedder/software_output_device_mac.cc
@@ -176,10 +177,10 @@ index f3867356e3d641416e00e6d115ae9ae2a0be90ab..b1d192d2b20ccb63fba07093101d745e
  
 diff --git a/components/viz/service/display_embedder/software_output_device_proxy.cc b/components/viz/service/display_embedder/software_output_device_proxy.cc
 new file mode 100644
-index 0000000000000000000000000000000000000000..c784a841f74e7a6215595fd8b1166655857f3e31
+index 0000000000000000000000000000000000000000..bbca3a43b5ba8bcf1e3a4dab4509b903b7117f36
 --- /dev/null
 +++ b/components/viz/service/display_embedder/software_output_device_proxy.cc
-@@ -0,0 +1,167 @@
+@@ -0,0 +1,168 @@
 +// Copyright 2014 The Chromium Authors. All rights reserved.
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
@@ -256,12 +257,13 @@ index 0000000000000000000000000000000000000000..c784a841f74e7a6215595fd8b1166655
 +}
 +
 +void SoftwareOutputDeviceProxy::OnSwapBuffers(
-+    base::OnceClosure swap_ack_callback) {
++    SoftwareOutputDevice::SwapBuffersCallback swap_ack_callback) {
 +  DCHECK(swap_ack_callback_.is_null());
 +
 +  // We aren't waiting on DrawAck() and can immediately run the callback.
 +  if (!waiting_on_draw_ack_) {
-+    task_runner_->PostTask(FROM_HERE, std::move(swap_ack_callback));
++    task_runner_->PostTask(FROM_HERE,
++        base::BindOnce(std::move(swap_ack_callback), viewport_pixel_size_));
 +    return;
 +  }
 +
@@ -343,13 +345,13 @@ index 0000000000000000000000000000000000000000..c784a841f74e7a6215595fd8b1166655
 +  TRACE_EVENT_ASYNC_END0("viz", "SoftwareOutputDeviceProxy::Draw", this);
 +
 +  waiting_on_draw_ack_ = false;
-+  std::move(swap_ack_callback_).Run();
++  std::move(swap_ack_callback_).Run(viewport_pixel_size_);
 +}
 +
 +}  // namespace viz
 diff --git a/components/viz/service/display_embedder/software_output_device_proxy.h b/components/viz/service/display_embedder/software_output_device_proxy.h
 new file mode 100644
-index 0000000000000000000000000000000000000000..01e1e2f0860faa1afe42c342c8905a7f838bd363
+index 0000000000000000000000000000000000000000..ff3c0217812a8370a20aa528f117e928fd1b95f4
 --- /dev/null
 +++ b/components/viz/service/display_embedder/software_output_device_proxy.h
 @@ -0,0 +1,88 @@
@@ -414,7 +416,7 @@ index 0000000000000000000000000000000000000000..01e1e2f0860faa1afe42c342c8905a7f
 +  ~SoftwareOutputDeviceProxy() override;
 +
 +  // SoftwareOutputDevice implementation.
-+  void OnSwapBuffers(base::OnceClosure swap_ack_callback) override;
++  void OnSwapBuffers(SoftwareOutputDevice::SwapBuffersCallback swap_ack_callback) override;
 +
 +  // SoftwareOutputDeviceBase implementation.
 +  void ResizeDelegated() override;
@@ -429,7 +431,7 @@ index 0000000000000000000000000000000000000000..01e1e2f0860faa1afe42c342c8905a7f
 +
 +  std::unique_ptr<SkCanvas> canvas_;
 +  bool waiting_on_draw_ack_ = false;
-+  base::OnceClosure swap_ack_callback_;
++  SoftwareOutputDevice::SwapBuffersCallback swap_ack_callback_;
 +
 +#if !defined(WIN32)
 +  base::WritableSharedMemoryMapping shm_mapping_;
@@ -442,7 +444,7 @@ index 0000000000000000000000000000000000000000..01e1e2f0860faa1afe42c342c8905a7f
 +
 +#endif  // COMPONENTS_VIZ_SERVICE_DISPLAY_EMBEDDER_SOFTWARE_OUTPUT_DEVICE_PROXY_H_
 diff --git a/components/viz/service/display_embedder/software_output_device_win.cc b/components/viz/service/display_embedder/software_output_device_win.cc
-index a339eaa4dc9ccec292b3df9f31adf1ad45119a77..33146bbe7bb01fbe24cea10d79cad2748dd04a24 100644
+index 4e3f0255d5fe4991004a50768932c36c42d999ff..bf352091cef00482e3cec74cd523e469e1bffa0d 100644
 --- a/components/viz/service/display_embedder/software_output_device_win.cc
 +++ b/components/viz/service/display_embedder/software_output_device_win.cc
 @@ -11,6 +11,7 @@
@@ -453,7 +455,7 @@ index a339eaa4dc9ccec292b3df9f31adf1ad45119a77..33146bbe7bb01fbe24cea10d79cad274
  #include "mojo/public/cpp/system/platform_handle.h"
  #include "services/viz/privileged/interfaces/compositing/layered_window_updater.mojom.h"
  #include "skia/ext/platform_canvas.h"
-@@ -321,7 +322,7 @@ void SoftwareOutputDeviceWinProxy::EndPaintDelegated(
+@@ -268,7 +269,7 @@ void SoftwareOutputDeviceWinProxy::EndPaintDelegated(
    if (!canvas_)
      return;
  
@@ -462,7 +464,7 @@ index a339eaa4dc9ccec292b3df9f31adf1ad45119a77..33146bbe7bb01fbe24cea10d79cad274
        &SoftwareOutputDeviceWinProxy::DrawAck, base::Unretained(this)));
    waiting_on_draw_ack_ = true;
  
-@@ -362,8 +363,13 @@ std::unique_ptr<SoftwareOutputDevice> CreateSoftwareOutputDeviceWinGpu(
+@@ -300,8 +301,13 @@ std::unique_ptr<SoftwareOutputDevice> CreateSoftwareOutputDeviceWin(
      display_client->CreateLayeredWindowUpdater(
          mojo::MakeRequest(&layered_window_updater));
  
@@ -479,10 +481,10 @@ index a339eaa4dc9ccec292b3df9f31adf1ad45119a77..33146bbe7bb01fbe24cea10d79cad274
      return std::make_unique<SoftwareOutputDeviceWinDirect>(hwnd, backing);
    }
 diff --git a/services/viz/privileged/interfaces/compositing/display_private.mojom b/services/viz/privileged/interfaces/compositing/display_private.mojom
-index f43ad2f0aeeb4e088c087b0c83cbf35aa764dfef..f88fda16a6f6e88d38b3a3e27a7daed8c4c270f8 100644
+index deb327b7705462d2cc07edb9d37528035377af8b..bc6958aa7e4dc14d3e0cf040299642825194e2fc 100644
 --- a/services/viz/privileged/interfaces/compositing/display_private.mojom
 +++ b/services/viz/privileged/interfaces/compositing/display_private.mojom
-@@ -73,12 +73,14 @@ interface DisplayPrivate {
+@@ -77,12 +77,14 @@ interface DisplayPrivate {
  };
  
  interface DisplayClient {
@@ -510,7 +512,7 @@ index 360cab3eee4c5189a55269d76daa1d78a98ed3d3..6834242f23d27fd6d428c2cd6040206a
 +  Draw(gfx.mojom.Rect damage_rect) => ();
  };
 diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h
-index d1352c059e0ef414e36408648d389b479aab9e28..9326d44cdf9d92b6c7603e8697255b9c204eccf0 100644
+index ce87db97e02af3c4ec358ae688e0f2a96492d952..cacda701a6da00a22a2eaaaaf4d3fad543ce1a04 100644
 --- a/ui/compositor/compositor.h
 +++ b/ui/compositor/compositor.h
 @@ -24,6 +24,7 @@
@@ -547,7 +549,7 @@ index d1352c059e0ef414e36408648d389b479aab9e28..9326d44cdf9d92b6c7603e8697255b9c
    // Sets the root of the layer tree drawn by this Compositor. The root layer
    // must have no parent. The compositor's root layer is reset if the root layer
    // is destroyed. NULL can be passed to reset the root layer, in which case the
-@@ -463,6 +476,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
+@@ -467,6 +480,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
    ui::ContextFactory* context_factory_;
    ui::ContextFactoryPrivate* context_factory_private_;
  
@@ -557,21 +559,21 @@ index d1352c059e0ef414e36408648d389b479aab9e28..9326d44cdf9d92b6c7603e8697255b9c
    Layer* root_layer_ = nullptr;
  
 diff --git a/ui/compositor/host/host_context_factory_private.cc b/ui/compositor/host/host_context_factory_private.cc
-index f8b1e4b8c64809bf3b151f0578e3bfe6f5b2d6b6..d866753c01bce623c45435fc01cfbac3841afc90 100644
+index 0ff1e05244e0e64bc2456dc3d53dd2378dce1a3c..7ca7f5e0cb73c8f6560ff9730d3880a07befe663 100644
 --- a/ui/compositor/host/host_context_factory_private.cc
 +++ b/ui/compositor/host/host_context_factory_private.cc
-@@ -70,8 +70,12 @@ void HostContextFactoryPrivate::ConfigureCompositor(
+@@ -99,8 +99,12 @@ void HostContextFactoryPrivate::ConfigureCompositor(
        mojo::MakeRequest(&root_params->compositor_frame_sink_client);
    root_params->display_private =
        mojo::MakeRequest(&compositor_data.display_private);
 -  compositor_data.display_client =
--      std::make_unique<viz::HostDisplayClient>(compositor->widget());
+-      std::make_unique<HostDisplayClient>(compositor);
 +  if (compositor->delegate())
 +    compositor_data.display_client = compositor->delegate()->CreateHostDisplayClient(
 +        compositor);
 +  else
 +    compositor_data.display_client =
-+        std::make_unique<viz::HostDisplayClient>(compositor->widget());
++        std::make_unique<HostDisplayClient>(compositor);
    root_params->display_client =
        compositor_data.display_client->GetBoundPtr(resize_task_runner_)
            .PassInterface();

+ 6 - 6
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 2314c6d1d29ebc61d5156644617e9eb088df5d43..9c75367a173b836027b3b7628b49b363e2875338 100644
+index ce9c79b32823b5f6f7edfdc14112bb1ed70e98ba..0708e35ff066b793121862a755081b2db2aad086 100644
 --- a/content/browser/frame_host/render_frame_host_manager.cc
 +++ b/content/browser/frame_host/render_frame_host_manager.cc
-@@ -2108,6 +2108,16 @@ bool RenderFrameHostManager::InitRenderView(
+@@ -2141,6 +2141,16 @@ bool RenderFrameHostManager::InitRenderView(
  scoped_refptr<SiteInstance>
  RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
      const NavigationRequest& request) {
@@ -27,7 +27,7 @@ index 2314c6d1d29ebc61d5156644617e9eb088df5d43..9c75367a173b836027b3b7628b49b363
    // 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();
-@@ -2140,6 +2150,51 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
+@@ -2173,6 +2183,51 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
                                                request.common_params().url);
      no_renderer_swap_allowed |=
          request.from_begin_navigation() && !can_renderer_initiate_transfer;
@@ -79,7 +79,7 @@ index 2314c6d1d29ebc61d5156644617e9eb088df5d43..9c75367a173b836027b3b7628b49b363
    } else {
      // Subframe navigations will use the current renderer, unless specifically
      // allowed to swap processes.
-@@ -2151,23 +2206,17 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
+@@ -2184,23 +2239,17 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
    if (no_renderer_swap_allowed && !should_swap_for_error_isolation)
      return scoped_refptr<SiteInstance>(current_site_instance);
  
@@ -108,7 +108,7 @@ index 2314c6d1d29ebc61d5156644617e9eb088df5d43..9c75367a173b836027b3b7628b49b363
  }
  
 diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
-index bac5261c293f1c9aeec1ce077d483378538b9046..d31af66d884a36b1f10ba845bd3df77394296cf1 100644
+index de19cb3a5f3d6685d8dede7c3cdb5b47183ed07f..acf458d5c088607d3ceb6d058f28f076bf4cf712 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 bac5261c293f1c9aeec1ce077d483378538b9046..d31af66d884a36b1f10ba845bd3df773
      const MainFunctionParams& parameters) {
    return nullptr;
 diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
-index 2539e6fce69fd0eb68f0439ae93393f88c670566..87967723939dc85f89ed0be793f3371200860e45 100644
+index 2c722d14437cdad69544e0c67921dbaec15b97da..9c7c77b44d279219411ce545c5448acecbd56d59 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(

+ 1 - 1
patches/common/chromium/gin_enable_disable_v8_platform.patch

@@ -36,7 +36,7 @@ index 413e6c5bcc74cd01730c5d4dc66eb92aaf7df8de..6c5d101fef97e880bee20d2f76e4b339
    v8::Isolate* isolate() { return isolate_; }
  
 diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc
-index c8baaa5e75582dd60072b5626388950893e70f2b..2ed448852721468124f550e4dc74a8bceeec15ce 100644
+index 770f3cb52990e2a4160050234e474889daab751c..ea9817bf4c0ab5d84ca21abcc573956e9f09b5d3 100644
 --- a/gin/v8_initializer.cc
 +++ b/gin/v8_initializer.cc
 @@ -204,12 +204,14 @@ enum LoadV8FileResult {

+ 2 - 2
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 a1610f3c9b4bed651270eee9a44a7f6fa57b1059..65c06739b2ba014c603c59a2bee80a43ced2c3df 100644
+index 8f879aae6036650326cae426bf52bceb65aa48ec..a71ee07331c3c45d05689c619b3bc5780e62e798 100644
 --- a/tools/gritsettings/resource_ids
 +++ b/tools/gritsettings/resource_ids
-@@ -438,6 +438,11 @@
+@@ -448,6 +448,11 @@
      "includes": [28880],
    },
  

+ 1 - 1
patches/common/chromium/mas-cfisobjc.patch

@@ -6,7 +6,7 @@ Subject: mas-cfisobjc.patch
 Removes usage of the _CFIsObjC private API.
 
 diff --git a/base/mac/foundation_util.mm b/base/mac/foundation_util.mm
-index 26a40417ae92c2e12c3901c50e1f101d9b0f57e9..810fbeae866a1507762703296fdd836dd3c9e4ba 100644
+index 8b20ebc678c39b722bd5b03930ce89847e8cc73a..dca8c939e757003aafc1528ec7bbb739bf971fa6 100644
 --- a/base/mac/foundation_util.mm
 +++ b/base/mac/foundation_util.mm
 @@ -26,7 +26,6 @@

+ 20 - 20
patches/common/chromium/mas_no_private_api.patch

@@ -7,7 +7,7 @@ Guard usages in blink of private Mac APIs by MAS_BUILD, so they can be
 excluded for people who want to submit their apps to the Mac App store.
 
 diff --git a/content/browser/accessibility/browser_accessibility_cocoa.h b/content/browser/accessibility/browser_accessibility_cocoa.h
-index d38fa48b8b890d90f2911995a2a51c249005c827..5fe68c71fe101a307ef565013a91b109393457dd 100644
+index 743d1364bcd13e24ecbe5ced730161d15b8c3e93..a7e81072194c00baa0aa3159a6bfe374aaffa54f 100644
 --- a/content/browser/accessibility/browser_accessibility_cocoa.h
 +++ b/content/browser/accessibility/browser_accessibility_cocoa.h
 @@ -109,7 +109,9 @@ struct AXTextEdit {
@@ -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 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f496b15ca99 100644
+index 237b07caa5ed7626c3b5b538cbb77f582f884203..cc4cb1ce9308ba8aecd6cc138954a1b5e04e6d29 100644
 --- a/content/browser/accessibility/browser_accessibility_cocoa.mm
 +++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
 @@ -141,6 +141,7 @@
@@ -85,7 +85,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
        {NSAccessibilitySizeAttribute, @"size"},
        {NSAccessibilitySortDirectionAttribute, @"sortDirection"},
        {NSAccessibilitySubroleAttribute, @"subrole"},
-@@ -1143,6 +1151,7 @@ - (NSNumber*)enabled {
+@@ -1145,6 +1153,7 @@ - (NSNumber*)enabled {
                                    ax::mojom::Restriction::kDisabled];
  }
  
@@ -93,7 +93,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
  // Returns a text marker that points to the last character in the document that
  // can be selected with VoiceOver.
  - (id)endTextMarker {
-@@ -1153,6 +1162,7 @@ - (id)endTextMarker {
+@@ -1155,6 +1164,7 @@ - (id)endTextMarker {
    BrowserAccessibilityPositionInstance position = root->CreatePositionAt(0);
    return CreateTextMarker(position->CreatePositionAtEndOfAnchor());
  }
@@ -101,7 +101,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
  
  - (NSNumber*)expanded {
    if (![self instanceActive])
-@@ -2028,6 +2038,7 @@ - (NSValue*)selectedTextRange {
+@@ -2033,6 +2043,7 @@ - (NSValue*)selectedTextRange {
    return [NSValue valueWithRange:NSMakeRange(selStart, selLength)];
  }
  
@@ -109,7 +109,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
  - (id)selectedTextMarkerRange {
    if (![self instanceActive])
      return nil;
-@@ -2060,6 +2071,7 @@ - (id)selectedTextMarkerRange {
+@@ -2065,6 +2076,7 @@ - (id)selectedTextMarkerRange {
                                                 anchorAffinity, *focusObject,
                                                 focusOffset, focusAffinity));
  }
@@ -117,7 +117,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
  
  - (NSValue*)size {
    if (![self instanceActive])
-@@ -2092,6 +2104,7 @@ - (NSString*)sortDirection {
+@@ -2097,6 +2109,7 @@ - (NSString*)sortDirection {
    return nil;
  }
  
@@ -125,7 +125,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
  // Returns a text marker that points to the first character in the document that
  // can be selected with VoiceOver.
  - (id)startTextMarker {
-@@ -2102,6 +2115,7 @@ - (id)startTextMarker {
+@@ -2107,6 +2120,7 @@ - (id)startTextMarker {
    BrowserAccessibilityPositionInstance position = root->CreatePositionAt(0);
    return CreateTextMarker(position->CreatePositionAtStartOfAnchor());
  }
@@ -133,7 +133,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
  
  // Returns a subrole based upon the role.
  - (NSString*)subrole {
-@@ -2402,12 +2416,14 @@ - (NSAttributedString*)attributedValueForRange:(NSRange)range {
+@@ -2407,12 +2421,14 @@ - (NSAttributedString*)attributedValueForRange:(NSRange)range {
    NSMutableAttributedString* attributedValue =
        [[[NSMutableAttributedString alloc] initWithString:value] autorelease];
  
@@ -148,7 +148,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
  
    return [attributedValue attributedSubstringFromRange:range];
  }
-@@ -2492,6 +2508,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
+@@ -2495,6 +2511,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
        return ToBrowserAccessibilityCocoa(cell);
    }
  
@@ -156,7 +156,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
    if ([attribute isEqualToString:@"AXUIElementForTextMarker"]) {
      BrowserAccessibilityPositionInstance position =
          CreatePositionFromTextMarker(parameter);
-@@ -2669,6 +2686,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
+@@ -2672,6 +2689,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
      NSString* text = GetTextForTextMarkerRange(parameter);
      return [NSNumber numberWithInt:[text length]];
    }
@@ -164,7 +164,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
  
    if ([attribute isEqualToString:
                       NSAccessibilityBoundsForRangeParameterizedAttribute]) {
-@@ -2702,6 +2720,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
+@@ -2705,6 +2723,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
      return nil;
    }
  
@@ -172,7 +172,7 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
    if ([attribute
            isEqualToString:
                NSAccessibilityLineTextMarkerRangeForTextMarkerParameterizedAttribute]) {
-@@ -2782,6 +2801,7 @@ AXPlatformRange range(position->CreatePreviousLineStartPosition(
+@@ -2785,6 +2804,7 @@ AXPlatformRange range(position->CreatePreviousLineStartPosition(
  
      return @(child->GetIndexInParent());
    }
@@ -181,10 +181,10 @@ index 21934df3a2bf46d54f65bff09ccd7c02b9fb6a40..0c1c8850f50808aab44892221d834f49
    return nil;
  }
 diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm
-index 350a17a75fed37eb887560956a6e5378a1b46759..e298becdb574fd254c131068ace58c0d1be49043 100644
+index 8ccb8d266ef921b60c9db562f54431bb2bd8d327..1dbcdd5f7e742d993478190846b0052c0da252b5 100644
 --- a/content/browser/accessibility/browser_accessibility_manager_mac.mm
 +++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm
-@@ -485,6 +485,7 @@ void PostAnnouncementNotification(NSString* announcement) {
+@@ -489,6 +489,7 @@ void PostAnnouncementNotification(NSString* announcement) {
        [user_info setObject:native_focus_object
                      forKey:NSAccessibilityTextChangeElement];
  
@@ -192,7 +192,7 @@ index 350a17a75fed37eb887560956a6e5378a1b46759..e298becdb574fd254c131068ace58c0d
        id selected_text = [native_focus_object selectedTextMarkerRange];
        if (selected_text) {
          NSString* const NSAccessibilitySelectedTextMarkerRangeAttribute =
-@@ -492,6 +493,7 @@ void PostAnnouncementNotification(NSString* announcement) {
+@@ -496,6 +497,7 @@ void PostAnnouncementNotification(NSString* announcement) {
          [user_info setObject:selected_text
                        forKey:NSAccessibilitySelectedTextMarkerRangeAttribute];
        }
@@ -233,7 +233,7 @@ index e59ac93d0e1554a2df5d8c74db2beba25d090228..6657c48664bdec4964b382f80309d1bf
  
  }  // namespace
 diff --git a/device/bluetooth/bluetooth_adapter_mac.mm b/device/bluetooth/bluetooth_adapter_mac.mm
-index fe0b73b51492ca08cbebf3aec74ea0a7caf44aef..fb8b362097f18d947219af36f84b9bea7d4eccf1 100644
+index fcf50dc3bd9a94536d7fc457c4e7b413a83dc672..6252cb195ff77aa31295c4958fd6b80c8a0df8bd 100644
 --- a/device/bluetooth/bluetooth_adapter_mac.mm
 +++ b/device/bluetooth/bluetooth_adapter_mac.mm
 @@ -36,6 +36,7 @@
@@ -252,7 +252,7 @@ index fe0b73b51492ca08cbebf3aec74ea0a7caf44aef..fb8b362097f18d947219af36f84b9bea
  
  namespace {
  
-@@ -128,8 +130,10 @@ CBCentralManagerState GetCBManagerState(CBCentralManager* manager) {
+@@ -121,8 +123,10 @@ CBCentralManagerState GetCBManagerState(CBCentralManager* manager) {
        controller_state_function_(
            base::BindRepeating(&BluetoothAdapterMac::GetHostControllerState,
                                base::Unretained(this))),
@@ -263,7 +263,7 @@ index fe0b73b51492ca08cbebf3aec74ea0a7caf44aef..fb8b362097f18d947219af36f84b9bea
        should_update_name_(true),
        classic_discovery_manager_(
            BluetoothDiscoveryManagerMac::CreateClassic(this)),
-@@ -327,8 +331,12 @@ CBCentralManagerState GetCBManagerState(CBCentralManager* manager) {
+@@ -319,8 +323,12 @@ CBCentralManagerState GetCBManagerState(CBCentralManager* manager) {
  }
  
  bool BluetoothAdapterMac::SetPoweredImpl(bool powered) {
@@ -294,7 +294,7 @@ index cb7a5305c2d6cbe7b3aa13efdfe6dcc6dfd857e9..e3f3ee7fee0a8f9cf7b3c1b6bed7c2a6
        "AudioToolbox.framework",
        "AudioUnit.framework",
 diff --git a/media/audio/mac/audio_manager_mac.cc b/media/audio/mac/audio_manager_mac.cc
-index 11cc3843f58174b8f234517359bab3c973ccf622..078e97d62f269777ec6b065de064de6dd081860b 100644
+index a9d6babb03ca318ccd15b254d3785a9ad45698c0..34ba3bfb738226ed8b53a9c24d15af5a5176642f 100644
 --- a/media/audio/mac/audio_manager_mac.cc
 +++ b/media/audio/mac/audio_manager_mac.cc
 @@ -882,7 +882,7 @@ AudioParameters AudioManagerMac::GetPreferredOutputStreamParameters(

+ 2 - 2
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/legacy/legacy_cache_storage.cc b/content/browser/cache_storage/legacy/legacy_cache_storage.cc
-index 73d521edb2c85ad4fac6b6d691e77af1ff91caee..8c4a96de9c23ff48d11c67170c54418c9b0f2998 100644
+index 6250b9e0300745e632b3208223d00a8b97bd09f9..4663bfba7017241dde7c286541fcb33bd98f4fbe 100644
 --- a/content/browser/cache_storage/legacy/legacy_cache_storage.cc
 +++ b/content/browser/cache_storage/legacy/legacy_cache_storage.cc
-@@ -104,7 +104,7 @@ class LegacyCacheStorage::CacheLoader {
+@@ -106,7 +106,7 @@ class LegacyCacheStorage::CacheLoader {
          cache_storage_(cache_storage),
          origin_(origin),
          owner_(owner) {

+ 5 - 5
patches/common/chromium/notification_provenance.patch

@@ -6,7 +6,7 @@ Subject: pass RenderProcessHost through to PlatformNotificationService
 this is so Electron can identify which renderer a notification came from
 
 diff --git a/content/browser/notifications/blink_notification_service_impl.cc b/content/browser/notifications/blink_notification_service_impl.cc
-index a30403295a8bb4d8333e538df5c6932f5a7bf9fb..06cca17194ce41c0b27c4e056831d769a5c3e7c6 100644
+index 63a1fe8ebd1a59973748cf12d7a914c91a8e27f1..d2f7d4bdf41c71874849ccaeca13f2b8f9cfa483 100644
 --- a/content/browser/notifications/blink_notification_service_impl.cc
 +++ b/content/browser/notifications/blink_notification_service_impl.cc
 @@ -88,9 +88,11 @@ BlinkNotificationServiceImpl::BlinkNotificationServiceImpl(
@@ -67,7 +67,7 @@ index cbac30fa7a12db927ba6a15173ba1181e03e0723..4d26fd795a7ce1ffd046c4a0f2ec1779
          mojo::MakeRequest(&notification_service_ptr_));
  
 diff --git a/content/browser/notifications/platform_notification_context_impl.cc b/content/browser/notifications/platform_notification_context_impl.cc
-index 258d4235cc977ce0aed3cb31020244b26a8c19dd..436ebd7927eec6b007724c988248c418114491e5 100644
+index 9402a2b51567beb042dbcfe05a6f61da457a659e..d046d64e94937ea12ff87c06ea14cc112bfd18ee 100644
 --- a/content/browser/notifications/platform_notification_context_impl.cc
 +++ b/content/browser/notifications/platform_notification_context_impl.cc
 @@ -207,12 +207,13 @@ void PlatformNotificationContextImpl::Shutdown() {
@@ -87,7 +87,7 @@ index 258d4235cc977ce0aed3cb31020244b26a8c19dd..436ebd7927eec6b007724c988248c418
  
  void PlatformNotificationContextImpl::RemoveService(
 diff --git a/content/browser/notifications/platform_notification_context_impl.h b/content/browser/notifications/platform_notification_context_impl.h
-index de7f9d4c1b670b6955ec62e562b133a86b770652..a7daada96b6ebed404d6fa3eef1048ab022d443f 100644
+index 3373171efb690863c70cd10bd465fc4b3dd5320c..64f2c0344eb9978e712f5c39e1f43d9b61c3bf08 100644
 --- a/content/browser/notifications/platform_notification_context_impl.h
 +++ b/content/browser/notifications/platform_notification_context_impl.h
 @@ -24,6 +24,7 @@
@@ -109,10 +109,10 @@ index de7f9d4c1b670b6955ec62e562b133a86b770652..a7daada96b6ebed404d6fa3eef1048ab
  
    // Removes |service| from the list of owned services, for example because the
 diff --git a/content/browser/renderer_interface_binders.cc b/content/browser/renderer_interface_binders.cc
-index d689e264d2b547c155c6e722bd6f6b81cefde3a2..1faf3d47b0207108183c1529928926e762143122 100644
+index c3955dd7250f0e608dc21e7b553d9b00af43286d..081d717c0bdffe04146e8cb854d0f52bfe644015 100644
 --- a/content/browser/renderer_interface_binders.cc
 +++ b/content/browser/renderer_interface_binders.cc
-@@ -196,7 +196,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
+@@ -207,7 +207,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
                      RenderProcessHost* host, const url::Origin& origin) {
          static_cast<StoragePartitionImpl*>(host->GetStoragePartition())
              ->GetPlatformNotificationContext()

+ 2 - 2
patches/common/chromium/out_of_process_instance.patch

@@ -5,10 +5,10 @@ Subject: out_of_process_instance.patch
 
 
 diff --git a/pdf/out_of_process_instance.cc b/pdf/out_of_process_instance.cc
-index 8c9d51010963cd01de1d42eeb790fad875046afb..821cbb5cda400ab545e545cc33d08112828a73bc 100644
+index a33c3391d05bd7cc2346906961baab39d088ca6e..1b8f587dda2f77374b4b01df22a11a03692a3afd 100644
 --- a/pdf/out_of_process_instance.cc
 +++ b/pdf/out_of_process_instance.cc
-@@ -471,7 +471,9 @@ bool OutOfProcessInstance::Init(uint32_t argc,
+@@ -472,7 +472,9 @@ bool OutOfProcessInstance::Init(uint32_t argc,
    std::string document_url = document_url_var.AsString();
    base::StringPiece document_url_piece(document_url);
    is_print_preview_ = IsPrintPreviewUrl(document_url_piece);

+ 12 - 11
patches/common/chromium/pepper_flash.patch

@@ -258,7 +258,7 @@ index aa4433cccff4bc637ce5e71039de3c4352e7cd6b..d9630fdf6b87e11fb9657814895dff36
  
    base::WeakPtrFactory<PepperFlashDRMHost> weak_factory_;
 diff --git a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
-index 5e468b261f400379d20bb5e8f6fed683229a6837..583474b7e5e2010bd1323be94f08845cc396fc3e 100644
+index 0d083bb09ff17a691c6399d2a5746b44e3196873..2023dc0240220362a1b503da07aa9fab4cb4b434 100644
 --- a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
 +++ b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
 @@ -8,17 +8,21 @@
@@ -324,8 +324,8 @@ index 5e468b261f400379d20bb5e8f6fed683229a6837..583474b7e5e2010bd1323be94f08845c
  Profile* PepperIsolatedFileSystemMessageFilter::GetProfile() {
    DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
    ProfileManager* profile_manager = g_browser_process->profile_manager();
-@@ -122,6 +129,7 @@ std::string PepperIsolatedFileSystemMessageFilter::CreateCrxFileSystem(
-   return std::string();
+@@ -122,6 +129,7 @@ PepperIsolatedFileSystemMessageFilter::CreateCrxFileSystem(Profile* profile) {
+   return storage::IsolatedContext::ScopedFSHandle();
  #endif
  }
 +#endif
@@ -349,7 +349,7 @@ index 5e468b261f400379d20bb5e8f6fed683229a6837..583474b7e5e2010bd1323be94f08845c
  int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem(
      ppapi::host::HostMessageContext* context) {
  #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -178,6 +187,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem(
+@@ -180,6 +189,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem(
    return PP_ERROR_NOTSUPPORTED;
  #endif
  }
@@ -358,11 +358,11 @@ index 5e468b261f400379d20bb5e8f6fed683229a6837..583474b7e5e2010bd1323be94f08845c
  int32_t PepperIsolatedFileSystemMessageFilter::OpenPluginPrivateFileSystem(
      ppapi::host::HostMessageContext* context) {
 diff --git a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h
-index ca7f87b973e6e060db2123929da6a3b9fc0ae5a4..f73b596ce78eff9c14ac27699d5ecbd9ff69a0a0 100644
+index 1d5ff1f6aa14812f2a6552f601900b03f3e3c8e7..5b6d0297c874146c21af37b983b2d8ee387b31ce 100644
 --- a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h
 +++ b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h
-@@ -19,7 +19,9 @@
- #include "ppapi/host/resource_message_filter.h"
+@@ -20,7 +20,9 @@
+ #include "storage/browser/fileapi/isolated_context.h"
  #include "url/gurl.h"
  
 +#if 0
@@ -371,7 +371,7 @@ index ca7f87b973e6e060db2123929da6a3b9fc0ae5a4..f73b596ce78eff9c14ac27699d5ecbd9
  
  namespace content {
  class BrowserPpapiHost;
-@@ -53,16 +55,20 @@ class PepperIsolatedFileSystemMessageFilter
+@@ -54,6 +56,7 @@ class PepperIsolatedFileSystemMessageFilter
  
    ~PepperIsolatedFileSystemMessageFilter() override;
  
@@ -379,9 +379,10 @@ index ca7f87b973e6e060db2123929da6a3b9fc0ae5a4..f73b596ce78eff9c14ac27699d5ecbd9
    Profile* GetProfile();
  
    // Returns filesystem id of isolated filesystem if valid, or empty string
-   // otherwise.  This must run on the UI thread because ProfileManager only
+@@ -61,10 +64,13 @@ class PepperIsolatedFileSystemMessageFilter
    // allows access on that thread.
-   std::string CreateCrxFileSystem(Profile* profile);
+   storage::IsolatedContext::ScopedFSHandle CreateCrxFileSystem(
+       Profile* profile);
 +#endif
  
    int32_t OnOpenFileSystem(ppapi::host::HostMessageContext* context,
@@ -392,7 +393,7 @@ index ca7f87b973e6e060db2123929da6a3b9fc0ae5a4..f73b596ce78eff9c14ac27699d5ecbd9
    int32_t OpenPluginPrivateFileSystem(ppapi::host::HostMessageContext* context);
  
    const int render_process_id_;
-@@ -73,8 +79,10 @@ class PepperIsolatedFileSystemMessageFilter
+@@ -75,8 +81,10 @@ class PepperIsolatedFileSystemMessageFilter
    // Not owned by this object.
    ppapi::host::PpapiHost* ppapi_host_;
  

+ 1 - 1
patches/common/chromium/printing.patch

@@ -166,7 +166,7 @@ index a2569836d04ff968e690215f56f6de3b6d884874..6ddec22641b74d5484c2e0d4f62e5d71
    bool printing_succeeded_;
  
 diff --git a/chrome/browser/printing/printing_message_filter.cc b/chrome/browser/printing/printing_message_filter.cc
-index 0291dfdec6aa85442c8cdd8019d437f217436ed2..e1c111a860e5b9b8ac79100b5530fb83f94b8894 100644
+index 1f79e7b127f35e2eaef923af5c4a5f0a7e5250a5..b93d8f59850b59f74271233440d1a3b2d0aded46 100644
 --- a/chrome/browser/printing/printing_message_filter.cc
 +++ b/chrome/browser/printing/printing_message_filter.cc
 @@ -21,6 +21,7 @@

+ 10 - 9
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 6986a9b55908f989275115ba8bd290f9e1d40ace..90c51ca81795547f7ec116e6c57af7043c162599 100644
+index 3291e61a244ccf5e88fb8cafe10d01ce9b79b92c..9b5bb201f1725ca433d33a023bc887f6e85f648c 100644
 --- a/content/browser/renderer_host/render_widget_host_view_base.cc
 +++ b/content/browser/renderer_host/render_widget_host_view_base.cc
-@@ -666,6 +666,15 @@ viz::FrameSinkId RenderWidgetHostViewBase::FrameSinkIdAtPoint(
+@@ -660,6 +660,15 @@ viz::FrameSinkId RenderWidgetHostViewBase::FrameSinkIdAtPoint(
    return frame_sink_id.is_valid() ? frame_sink_id : GetFrameSinkId();
  }
  
@@ -25,21 +25,22 @@ index 6986a9b55908f989275115ba8bd290f9e1d40ace..90c51ca81795547f7ec116e6c57af704
      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 e8dadd66ca8b81638c198d6ce5490b43384116a9..82534c4d1cc44b0192fd0e9a5e082d7d01dfab41 100644
+index 903131f45d4fa82af9a6315227505b54ee0f1560..6450a05a4829731d3dc2338fd51ef6d0720b7fcb 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 @@
+@@ -24,9 +24,11 @@
  #include "components/viz/common/surfaces/surface_id.h"
  #include "components/viz/host/hit_test/hit_test_query.h"
  #include "content/browser/renderer_host/event_with_latency_info.h"
 +#include "content/browser/web_contents/web_contents_view.h"
  #include "content/common/content_export.h"
+ #include "content/common/tab_switch_time_recorder.h"
  #include "content/public/browser/render_frame_metadata_provider.h"
 +#include "content/public/browser/render_widget_host.h"
  #include "content/public/browser/render_widget_host_view.h"
  #include "content/public/common/input_event_ack_state.h"
  #include "content/public/common/screen_info.h"
-@@ -83,10 +85,12 @@ class CursorManager;
+@@ -75,10 +77,12 @@ class CursorManager;
  class MouseWheelPhaseHandler;
  class RenderWidgetHostImpl;
  class RenderWidgetHostViewBaseObserver;
@@ -52,9 +53,9 @@ index e8dadd66ca8b81638c198d6ce5490b43384116a9..82534c4d1cc44b0192fd0e9a5e082d7d
  class WebCursor;
  class DelegatedFrameHost;
  struct TextInputState;
-@@ -142,6 +146,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
-   GetTouchSelectionControllerClientManager() override;
-   void SetLastTabChangeStartTime(base::TimeTicks start_time) final;
+@@ -136,6 +140,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
+                                      bool destination_is_loaded,
+                                      bool destination_is_frozen) final;
  
 +  virtual void InitAsGuest(RenderWidgetHostView* parent_host_view,
 +                           RenderWidgetHostViewGuest* guest_view) {}
@@ -62,7 +63,7 @@ index e8dadd66ca8b81638c198d6ce5490b43384116a9..82534c4d1cc44b0192fd0e9a5e082d7d
    // This only needs to be overridden by RenderWidgetHostViewBase subclasses
    // that handle content embedded within other RenderWidgetHostViews.
    gfx::PointF TransformPointToRootCoordSpaceF(
-@@ -368,6 +375,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
+@@ -364,6 +371,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
    virtual void ProcessGestureEvent(const blink::WebGestureEvent& event,
                                     const ui::LatencyInfo& latency);
  

+ 9 - 9
patches/common/chromium/render_widget_host_view_mac.patch

@@ -4,10 +4,10 @@ Date: Thu, 20 Sep 2018 17:46:28 -0700
 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 5f6728312a5676285eebcb120a59b2e76a11d8bc..b7a1a16c1b282f7739638d8375117192da77b5e7 100644
---- a/content/browser/renderer_host/render_widget_host_view_cocoa.mm
-+++ b/content/browser/renderer_host/render_widget_host_view_cocoa.mm
+diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
+index 8284524948c54c91e80e61c046ef7a8a7e66ba66..5e0218a0933df9440bcb86ac89373c417d31d206 100644
+--- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
++++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
 @@ -142,6 +142,11 @@ void ExtractUnderlines(NSAttributedString* string,
  
  }  // namespace
@@ -30,7 +30,7 @@ index 5f6728312a5676285eebcb120a59b2e76a11d8bc..b7a1a16c1b282f7739638d8375117192
    return [self acceptsMouseEventsWhenInactive];
  }
  
-@@ -793,6 +801,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv {
+@@ -792,6 +800,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv {
                                eventType == NSKeyDown &&
                                !(modifierFlags & NSCommandKeyMask);
  
@@ -41,7 +41,7 @@ index 5f6728312a5676285eebcb120a59b2e76a11d8bc..b7a1a16c1b282f7739638d8375117192
    // We only handle key down events and just simply forward other events.
    if (eventType != NSKeyDown) {
      clientHelper_->ForwardKeyboardEvent(event, latency_info);
-@@ -1547,9 +1559,11 @@ - (id)accessibilityFocusedUIElement {
+@@ -1505,9 +1517,11 @@ - (NSAccessibilityRole)accessibilityRole {
  // 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 5f6728312a5676285eebcb120a59b2e76a11d8bc..b7a1a16c1b282f7739638d8375117192
  
  - (NSArray*)validAttributesForMarkedText {
    // This code is just copied from WebKit except renaming variables.
-@@ -1558,7 +1572,10 @@ - (NSArray*)validAttributesForMarkedText {
+@@ -1516,7 +1530,10 @@ - (NSArray*)validAttributesForMarkedText {
          initWithObjects:NSUnderlineStyleAttributeName,
                          NSUnderlineColorAttributeName,
                          NSMarkedClauseSegmentAttributeName,
@@ -66,10 +66,10 @@ index 5f6728312a5676285eebcb120a59b2e76a11d8bc..b7a1a16c1b282f7739638d8375117192
    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 2f23c1b11c41fc368ce5f05c6b8bf2c8e66849c2..7ab6f530193a7e19da6222c9b396733327ec6006 100644
+index 605fe2face44403b470fb372fadb22c38b6d1068..e25d4e7abc435cf16522aa66a423f5c0b64eddb9 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 @@
+@@ -62,6 +62,7 @@
  #include "ui/events/keycodes/dom/dom_keyboard_layout_map.h"
  #include "ui/gfx/geometry/dip_util.h"
  #include "ui/gfx/mac/coordinate_conversion.h"

+ 3 - 3
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 b51701cb23a746fa8c85dd308db40599ebb513c4..d40202886f0bafce384a13306de531845758eb1c 100644
+index a1be2930c8dd785b1805260a82b37f8acfa80a5d..b7532fd8e220ecf1039bfa00412f9e930f7d1b02 100644
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -1646,7 +1646,7 @@ if (is_chrome_branded && !is_android) {
+@@ -1789,7 +1789,7 @@ if (is_chrome_branded && !is_android) {
    }
  }
  
@@ -64,7 +64,7 @@ index b51701cb23a746fa8c85dd308db40599ebb513c4..d40202886f0bafce384a13306de53184
    chrome_paks("packed_resources") {
      if (is_mac) {
        output_dir = "$root_gen_dir/repack"
-@@ -1670,6 +1670,12 @@ if (!is_android) {
+@@ -1813,6 +1813,12 @@ if (!is_android) {
    }
  }
  

+ 1 - 1
patches/common/chromium/revert_build_swiftshader_for_arm32.patch

@@ -6,7 +6,7 @@ Subject: Revert "Build swiftshader for ARM32."
 This reverts commit e7caa7ca82fc015675aea8cecf178c83a94ab3a7.
 
 diff --git a/ui/gl/BUILD.gn b/ui/gl/BUILD.gn
-index 003730ab8f993637005c4152b5a3bd3660f88a95..b003bf86bb02fce349508a1ef20d5fe003e94c05 100644
+index a54c5b0f49a1abd48688ef5359892ac4c4b5af16..ad9bf97a1e948f348b04791638cce9e038342ab2 100644
 --- a/ui/gl/BUILD.gn
 +++ b/ui/gl/BUILD.gn
 @@ -15,8 +15,8 @@ declare_args() {

+ 0 - 26
patches/common/chromium/revert_roll_clang_356356_357569.patch

@@ -1,26 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jeremy Apthorp <[email protected]>
-Date: Thu, 18 Apr 2019 11:07:51 -0700
-Subject: Revert "Roll clang 356356:357569."
-
-This reverts commit a50f2f33843d26fd7c0d1f1a2331aa45a392c6cd.
-
-This roll broke ARM builds. Tracking bug: crbug.com/953815
-
-diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
-index ab0311650bffadf8d3cfe03f8a55cea319e15550..b9faaefcd3c5f978af9d72f08f1ba230d5a27b24 100755
---- a/tools/clang/scripts/update.py
-+++ b/tools/clang/scripts/update.py
-@@ -35,10 +35,10 @@ import zipfile
- # Do NOT CHANGE this if you don't know what you're doing -- see
- # https://chromium.googlesource.com/chromium/src/+/master/docs/updating_clang.md
- # Reverting problematic clang rolls is safe, though.
--CLANG_REVISION = '357692'
-+CLANG_REVISION = '356356'
- 
- # This is incremented when pushing a new build of Clang at the same revision.
--CLANG_SUB_REVISION=1
-+CLANG_SUB_REVISION=3
- 
- PACKAGE_VERSION = "%s-%s" % (CLANG_REVISION, CLANG_SUB_REVISION)
- 

+ 2 - 2
patches/common/chromium/scroll_bounce_flag.patch

@@ -6,10 +6,10 @@ Subject: scroll_bounce_flag.patch
 Patch to make scrollBounce option work.
 
 diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
-index d4c55a577bde40d8d28641a7aa42a5218540cb32..6dcd14f54ba4f0778fbcf1e82689755033feb1ca 100644
+index ee84cf4e2791ccbe76f3527158c633e2b56e71c7..72033c83d8bb39dfbb748f22796f9ff69ef1e329 100644
 --- a/content/renderer/render_thread_impl.cc
 +++ b/content/renderer/render_thread_impl.cc
-@@ -1534,7 +1534,7 @@ bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() {
+@@ -1513,7 +1513,7 @@ bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() {
  }
  
  bool RenderThreadImpl::IsElasticOverscrollEnabled() {

+ 10 - 31
patches/common/chromium/ssl_security_state_tab_helper.patch

@@ -6,10 +6,10 @@ Subject: ssl_security_state_tab_helper.patch
 Allows populating security tab info for devtools in Electron.
 
 diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ssl/security_state_tab_helper.cc
-index aef4333e3d769d26b71822294d5f2fcedf3141c5..fe3d44e33213daa89f6ea5f4f84103686db6aece 100644
+index 6ef33c5357cf08c1f17e9f20bd8d659bf4807d1c..a7062ccbb1c11c092e114fe498370f500c44c96b 100644
 --- a/chrome/browser/ssl/security_state_tab_helper.cc
 +++ b/chrome/browser/ssl/security_state_tab_helper.cc
-@@ -12,10 +12,12 @@
+@@ -13,10 +13,12 @@
  #include "base/strings/pattern.h"
  #include "base/strings/string_util.h"
  #include "build/build_config.h"
@@ -19,10 +19,10 @@ index aef4333e3d769d26b71822294d5f2fcedf3141c5..fe3d44e33213daa89f6ea5f4f8410368
  #include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/browser/safe_browsing/ui_manager.h"
 +#endif
- #include "chrome/common/chrome_switches.h"
- #include "chrome/common/pref_names.h"
  #include "chrome/common/secure_origin_whitelist.h"
-@@ -45,8 +47,10 @@
+ #include "components/omnibox/browser/omnibox_field_trial.h"
+ #include "components/omnibox/common/omnibox_features.h"
+@@ -42,8 +44,10 @@
  #endif  // defined(OS_CHROMEOS)
  
  #if defined(FULL_SAFE_BROWSING)
@@ -33,7 +33,7 @@ index aef4333e3d769d26b71822294d5f2fcedf3141c5..fe3d44e33213daa89f6ea5f4f8410368
  
  namespace {
  
-@@ -82,7 +86,9 @@ bool IsOriginSecureWithWhitelist(
+@@ -63,7 +67,9 @@ void RecordSecurityLevel(
  
  }  // namespace
  
@@ -43,7 +43,7 @@ index aef4333e3d769d26b71822294d5f2fcedf3141c5..fe3d44e33213daa89f6ea5f4f8410368
  
  SecurityStateTabHelper::SecurityStateTabHelper(
      content::WebContents* web_contents)
-@@ -149,6 +155,7 @@ void SecurityStateTabHelper::DidFinishNavigation(
+@@ -129,6 +135,7 @@ void SecurityStateTabHelper::DidFinishNavigation(
      UMA_HISTOGRAM_BOOLEAN("interstitial.ssl.visited_site_after_warning", true);
    }
  
@@ -51,7 +51,7 @@ index aef4333e3d769d26b71822294d5f2fcedf3141c5..fe3d44e33213daa89f6ea5f4f8410368
    // 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.
-@@ -176,6 +183,7 @@ void SecurityStateTabHelper::DidFinishNavigation(
+@@ -156,6 +163,7 @@ void SecurityStateTabHelper::DidFinishNavigation(
            "Validation is still valid.");
      }
    }
@@ -59,7 +59,7 @@ index aef4333e3d769d26b71822294d5f2fcedf3141c5..fe3d44e33213daa89f6ea5f4f8410368
  }
  
  void SecurityStateTabHelper::DidChangeVisibleSecurityState() {
-@@ -199,6 +207,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
+@@ -179,6 +187,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
        web_contents()->GetController().GetVisibleEntry();
    if (!entry)
      return security_state::MALICIOUS_CONTENT_STATUS_NONE;
@@ -67,7 +67,7 @@ index aef4333e3d769d26b71822294d5f2fcedf3141c5..fe3d44e33213daa89f6ea5f4f8410368
    safe_browsing::SafeBrowsingService* sb_service =
        g_browser_process->safe_browsing_service();
    if (!sb_service)
-@@ -266,6 +275,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
+@@ -246,6 +255,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
          break;
      }
    }
@@ -75,24 +75,3 @@ index aef4333e3d769d26b71822294d5f2fcedf3141c5..fe3d44e33213daa89f6ea5f4f8410368
    return security_state::MALICIOUS_CONTENT_STATUS_NONE;
  }
  
-@@ -273,16 +283,20 @@ std::vector<std::string> SecurityStateTabHelper::GetSecureOriginsAndPatterns()
-     const {
-   const base::CommandLine& command_line =
-       *base::CommandLine::ForCurrentProcess();
-+#if 0
-   Profile* profile =
-       Profile::FromBrowserContext(web_contents()->GetBrowserContext());
-   PrefService* prefs = profile->GetPrefs();
-+#endif
-   std::string origins_str = "";
-   if (command_line.HasSwitch(
-           network::switches::kUnsafelyTreatInsecureOriginAsSecure)) {
-     origins_str = command_line.GetSwitchValueASCII(
-         network::switches::kUnsafelyTreatInsecureOriginAsSecure);
-+#if 0
-   } else if (prefs->HasPrefPath(prefs::kUnsafelyTreatInsecureOriginAsSecure)) {
-     origins_str = prefs->GetString(prefs::kUnsafelyTreatInsecureOriginAsSecure);
-+#endif
-   }
-   return network::ParseSecureOriginAllowlist(origins_str);
- }

+ 5 - 5
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 dd8bdad9432ef754b5f3bbfd97d94af9092714ae..50f63a2c8f8ec447545d2b2c80afef34ad4a7fef 100644
+index 763bec5cedfc44e59ccd40dcbcf7b3f9544cd56e..982b82ef2b517bd21f05f24efc8e0d78c111d495 100644
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -420,6 +420,10 @@ class RendererSandboxedProcessLauncherDelegate
+@@ -418,6 +418,10 @@ class RendererSandboxedProcessLauncherDelegate
      : public SandboxedProcessLauncherDelegate {
   public:
    RendererSandboxedProcessLauncherDelegate() {}
@@ -36,7 +36,7 @@ index dd8bdad9432ef754b5f3bbfd97d94af9092714ae..50f63a2c8f8ec447545d2b2c80afef34
  
    ~RendererSandboxedProcessLauncherDelegate() override {}
  
-@@ -439,6 +443,9 @@ class RendererSandboxedProcessLauncherDelegate
+@@ -437,6 +441,9 @@ class RendererSandboxedProcessLauncherDelegate
  
  #if BUILDFLAG(USE_ZYGOTE_HANDLE)
    service_manager::ZygoteHandle GetZygote() override {
@@ -46,7 +46,7 @@ index dd8bdad9432ef754b5f3bbfd97d94af9092714ae..50f63a2c8f8ec447545d2b2c80afef34
      const base::CommandLine& browser_command_line =
          *base::CommandLine::ForCurrentProcess();
      base::CommandLine::StringType renderer_prefix =
-@@ -452,6 +459,11 @@ class RendererSandboxedProcessLauncherDelegate
+@@ -450,6 +457,11 @@ class RendererSandboxedProcessLauncherDelegate
    service_manager::SandboxType GetSandboxType() override {
      return service_manager::SANDBOX_TYPE_RENDERER;
    }
@@ -58,7 +58,7 @@ index dd8bdad9432ef754b5f3bbfd97d94af9092714ae..50f63a2c8f8ec447545d2b2c80afef34
  };
  
  const char kSessionStorageHolderKey[] = "kSessionStorageHolderKey";
-@@ -1734,11 +1746,18 @@ bool RenderProcessHostImpl::Init() {
+@@ -1730,11 +1742,18 @@ bool RenderProcessHostImpl::Init() {
        cmd_line->PrependWrapper(renderer_prefix);
      AppendRendererCommandLine(cmd_line.get());
  

+ 3 - 3
patches/common/chromium/sysroot.patch

@@ -7,10 +7,10 @@ Make chrome's install-sysroot scripts point to our custom sysroot builds,
 which include extra deps that Electron needs (e.g. libnotify)
 
 diff --git a/build/linux/sysroot_scripts/install-sysroot.py b/build/linux/sysroot_scripts/install-sysroot.py
-index 115dce4e23ae2a8dd771b73ddbcd1a5b12bcbf9b..12f944a95ad49842d2a53cdbe8eb157e7605b621 100755
+index 858589ae0a6774d6c34a51e1db1ef852f40ad68d..c4a0ac5c9e16a217634602233bd709af6943470e 100755
 --- a/build/linux/sysroot_scripts/install-sysroot.py
 +++ b/build/linux/sysroot_scripts/install-sysroot.py
-@@ -30,9 +30,11 @@ import sys
+@@ -32,9 +32,11 @@ import sys
  import urllib2
  
  SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
@@ -24,7 +24,7 @@ index 115dce4e23ae2a8dd771b73ddbcd1a5b12bcbf9b..12f944a95ad49842d2a53cdbe8eb157e
  
  VALID_ARCHS = ('arm', 'arm64', 'i386', 'amd64', 'mips', 'mips64el')
  
-@@ -96,7 +98,7 @@ def GetSysrootDict(target_platform, target_arch):
+@@ -98,7 +100,7 @@ def GetSysrootDict(target_platform, target_arch):
    if target_arch not in VALID_ARCHS:
      raise Error('Unknown architecture: %s' % target_arch)
  

+ 1 - 1
patches/common/chromium/v8_context_snapshot_generator.patch

@@ -7,7 +7,7 @@ v8_context_snapshot_generator is a build time executable.
 The patch adds the config.
 
 diff --git a/tools/v8_context_snapshot/BUILD.gn b/tools/v8_context_snapshot/BUILD.gn
-index 771fc0df366c6461f18940546992b3efe97c4186..2cf5730fd721d3dba97ad43562516c75cf1fc157 100644
+index 2d7b357cfc2cd60e6e880a8c93b32166376540b5..002e9e67f8009e780182150705417c500a01c5cd 100644
 --- a/tools/v8_context_snapshot/BUILD.gn
 +++ b/tools/v8_context_snapshot/BUILD.gn
 @@ -109,6 +109,7 @@ if (use_v8_context_snapshot) {

+ 11 - 11
patches/common/chromium/verbose_generate_breakpad_symbols.patch

@@ -7,7 +7,7 @@ Temporarily add additional debugging statements to
 generate_breakpad_symbols.py to determine why it is hanging.
 
 diff --git a/components/crash/content/tools/generate_breakpad_symbols.py b/components/crash/content/tools/generate_breakpad_symbols.py
-index 58558b6cd1e3af826a7066c035e1ad589eff4cb5..d9f697749847caf59d78f5643d2efaf7815e050d 100755
+index dce68b1bd1ef58a5dfddb2bbdb56930ed943ad1d..4249d7b26f9037b60a40e073f56037f9ff036138 100755
 --- a/components/crash/content/tools/generate_breakpad_symbols.py
 +++ b/components/crash/content/tools/generate_breakpad_symbols.py
 @@ -60,7 +60,10 @@ def Resolve(path, exe_path, loader_path, rpaths):
@@ -22,7 +22,7 @@ index 58558b6cd1e3af826a7066c035e1ad589eff4cb5..d9f697749847caf59d78f5643d2efaf7
    """Return absolute paths to all shared library dependencies of the binary.
  
    This implementation assumes that we're running on a Linux system."""
-@@ -74,6 +77,9 @@ def GetSharedLibraryDependenciesLinux(binary):
+@@ -71,6 +74,9 @@ def GetSharedLibraryDependenciesLinux(binary):
      m = lib_re.match(line)
      if m:
        result.append(os.path.abspath(m.group(1)))
@@ -32,16 +32,16 @@ index 58558b6cd1e3af826a7066c035e1ad589eff4cb5..d9f697749847caf59d78f5643d2efaf7
    return result
  
  
-@@ -168,7 +174,7 @@ def GetSharedLibraryDependencies(options, binary, exe_path):
+@@ -183,7 +189,7 @@ def GetSharedLibraryDependencies(options, binary, exe_path):
    """Return absolute paths to all shared library dependencies of the binary."""
    deps = []
-   if sys.platform.startswith('linux'):
+   if options.platform == 'linux2':
 -    deps = GetSharedLibraryDependenciesLinux(binary)
 +    deps = GetSharedLibraryDependenciesLinux(binary, options)
-   elif sys.platform == 'darwin':
-     deps = GetSharedLibraryDependenciesMac(binary, exe_path)
-   else:
-@@ -228,7 +234,8 @@ def GetBinaryInfoFromHeaderInfo(header_info):
+   elif options.platform == 'android':
+     deps = GetSharedLibraryDependenciesAndroid(binary)
+   elif options.platform == 'darwin':
+@@ -257,7 +263,8 @@ def CreateSymbolDir(options, output_dir):
  
  def GenerateSymbols(options, binaries):
    """Dumps the symbols of binary and places them in the given directory."""
@@ -51,7 +51,7 @@ index 58558b6cd1e3af826a7066c035e1ad589eff4cb5..d9f697749847caf59d78f5643d2efaf7
    queue = Queue.Queue()
    print_lock = threading.Lock()
  
-@@ -248,8 +255,15 @@ def GenerateSymbols(options, binaries):
+@@ -277,8 +284,15 @@ def GenerateSymbols(options, binaries):
            reason = "Could not locate dump_syms executable."
            break
  
@@ -67,7 +67,7 @@ index 58558b6cd1e3af826a7066c035e1ad589eff4cb5..d9f697749847caf59d78f5643d2efaf7
          if not binary_info:
            should_dump_syms = False
            reason = "Could not obtain binary information."
-@@ -266,8 +280,14 @@ def GenerateSymbols(options, binaries):
+@@ -296,8 +310,14 @@ def GenerateSymbols(options, binaries):
          # See if there is a symbol file already found next to the binary
          potential_symbol_files = glob.glob('%s.breakpad*' % binary)
          for potential_symbol_file in potential_symbol_files:
@@ -80,5 +80,5 @@ index 58558b6cd1e3af826a7066c035e1ad589eff4cb5..d9f697749847caf59d78f5643d2efaf7
 +              with print_lock:
 +                print "Got symbol_info for %s." % (potential_symbol_file)
            if symbol_info == binary_info:
-             mkdir_p(os.path.dirname(output_path))
+             CreateSymbolDir(options, output_dir)
              shutil.copyfile(potential_symbol_file, output_path)

+ 18 - 16
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 1729f407f21be18891393f08e763ab18eceb1c1a..fab77addce46c326aa1e493808a0f4b61ecadd0e 100644
+index 5ddd9e7545d2139545fcf3e308d64a5a68a99735..27f69b81ba9ba2b96c7832ca7933ee496ec1b7e4 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -2066,6 +2066,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
+@@ -2067,6 +2067,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 1729f407f21be18891393f08e763ab18eceb1c1a..fab77addce46c326aa1e493808a0f4b6
    WebContentsViewDelegate* delegate =
        GetContentClient()->browser()->GetWebContentsViewDelegate(this);
  
-@@ -2081,6 +2087,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
+@@ -2082,6 +2088,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
            &render_view_host_delegate_view_);
      }
    }
@@ -30,10 +30,10 @@ index 1729f407f21be18891393f08e763ab18eceb1c1a..fab77addce46c326aa1e493808a0f4b6
    CHECK(view_.get());
  
 diff --git a/content/browser/web_contents/web_contents_view_guest.cc b/content/browser/web_contents/web_contents_view_guest.cc
-index 9d91d225fd9f3eeef7d9beec126e6cc6a58a76d7..8a443514dfbdab37f951bc7c54cf1989a2b01a16 100644
+index ecaf30bcb7b916a92a69641dd7b96a3633d407c0..0af625928ca6227a21cd4263a14a42b72095399c 100644
 --- a/content/browser/web_contents/web_contents_view_guest.cc
 +++ b/content/browser/web_contents/web_contents_view_guest.cc
-@@ -69,19 +69,26 @@ gfx::NativeWindow WebContentsViewGuest::GetTopLevelNativeWindow() const {
+@@ -68,19 +68,27 @@ gfx::NativeWindow WebContentsViewGuest::GetTopLevelNativeWindow() const {
  
  void WebContentsViewGuest::OnGuestAttached(WebContentsView* parent_view) {
  #if defined(USE_AURA)
@@ -44,25 +44,27 @@ index 9d91d225fd9f3eeef7d9beec126e6cc6a58a76d7..8a443514dfbdab37f951bc7c54cf1989
    // view hierarchy. We add this view as embedder's child here.
    // This would go in WebContentsViewGuest::CreateView, but that is too early to
    // access embedder_web_contents(). Therefore, we do it here.
--  if (!features::IsMultiProcessMash())
-+  if (!features::IsMultiProcessMash() &&
-+      parent_view->GetNativeView() != platform_view_->GetNativeView()) {
-     parent_view->GetNativeView()->AddChild(platform_view_->GetNativeView());
+-  parent_view->GetNativeView()->AddChild(platform_view_->GetNativeView());
++  if (parent_view->GetNativeView() != platform_view_->GetNativeView()) {
++    parent_view->GetNativeView()->AddChild(platform_view_->GetNativeView());
 +  }
  #endif  // defined(USE_AURA)
  }
  
  void WebContentsViewGuest::OnGuestDetached(WebContentsView* old_parent_view) {
  #if defined(USE_AURA)
--  if (!features::IsMultiProcessMash()) {
+-  old_parent_view->GetNativeView()->RemoveChild(
+-      platform_view_->GetNativeView());
 +  if (!platform_view_->GetNativeView())
 +    return;
-+  if (!features::IsMultiProcessMash() &&
-+      old_parent_view->GetNativeView() != platform_view_->GetNativeView()) {
-     old_parent_view->GetNativeView()->RemoveChild(
-         platform_view_->GetNativeView());
-   }
-@@ -136,11 +143,22 @@ RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForWidget(
++  if (old_parent_view->GetNativeView() != platform_view_->GetNativeView()) {
++    old_parent_view->GetNativeView()->RemoveChild(
++        platform_view_->GetNativeView());
++  }
+ #endif  // defined(USE_AURA)
+ }
+ 
+@@ -132,11 +140,22 @@ RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForWidget(
          render_widget_host->GetView());
    }
  

+ 2 - 2
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 2ff912c1b4fbf02a5c00dfd0206f21f9a3608160..a81fce5c072b91f2dda2fea0f87110d1499603a1 100644
+index ee5760ecbe0f836d0e49f53527252a48f4344b03..a413be0448816152f99d234a4e409bf0e9816be7 100644
 --- a/content/browser/web_contents/web_contents_view_aura.cc
 +++ b/content/browser/web_contents/web_contents_view_aura.cc
-@@ -754,6 +754,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const {
+@@ -775,6 +775,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const {
  
  bool WebContentsViewAura::IsValidDragTarget(
      RenderWidgetHostImpl* target_rwh) const {

+ 11 - 11
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 fad5f104f0113813133c69fe8a4392d73f153ba5..01c826ef12b4e04033377d4e5e50fcb871ca1e1d 100644
+index 5bcf6f95f630ae6232ec9be7d8de7360a1592566..3142a8286e6aaf508a06cee0e32c73903682261f 100644
 --- a/content/public/renderer/content_renderer_client.h
 +++ b/content/public/renderer/content_renderer_client.h
-@@ -383,6 +383,11 @@ class CONTENT_EXPORT ContentRendererClient {
+@@ -384,6 +384,11 @@ class CONTENT_EXPORT ContentRendererClient {
    virtual void DidInitializeWorkerContextOnWorkerThread(
        v8::Local<v8::Context> context) {}
  
@@ -21,10 +21,10 @@ index fad5f104f0113813133c69fe8a4392d73f153ba5..01c826ef12b4e04033377d4e5e50fcb8
    // 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 812c9b48c817cf01837e6513336c9dc76f1fda60..440339726d0bd5359f98dda971dbc4fd806c4094 100644
+index 2c8ade035da690db45fc629ef2aeebf701b20c59..3a23749a6b4a938320edcdc01857c5c741c66b6a 100644
 --- a/content/renderer/renderer_blink_platform_impl.cc
 +++ b/content/renderer/renderer_blink_platform_impl.cc
-@@ -1086,6 +1086,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
+@@ -1051,6 +1051,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
    WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread();
  }
  
@@ -38,10 +38,10 @@ index 812c9b48c817cf01837e6513336c9dc76f1fda60..440339726d0bd5359f98dda971dbc4fd
      const v8::Local<v8::Context>& worker) {
    GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread(
 diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h
-index 752d0929185111f4b8ad8bdb0ba5d54e4c9de294..924d3182acccf3e2f8030a3f7a7b1f62f5f29fc3 100644
+index 39d9cf7590c11a178acbf8f9c6dbc3d20088860c..bef9d6351c2a9456ffc5279343515c017a390d97 100644
 --- a/content/renderer/renderer_blink_platform_impl.h
 +++ b/content/renderer/renderer_blink_platform_impl.h
-@@ -212,6 +212,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
+@@ -200,6 +200,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
    void DidStartWorkerThread() override;
    void WillStopWorkerThread() override;
    void WorkerContextCreated(const v8::Local<v8::Context>& worker) override;
@@ -50,10 +50,10 @@ index 752d0929185111f4b8ad8bdb0ba5d54e4c9de294..924d3182acccf3e2f8030a3f7a7b1f62
    void RecordMetricsForBackgroundedRendererPurge() override;
  
 diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
-index 89475620b73b66b336842cee144cee53242a1403..b0e110e04329b0e55b42e9f57aa0d28499049222 100644
+index f2a375b8fc9fd8ef808898ace40139f533c5dae4..083e94481c4c9f8a485984c849e5d2960a4cf6b5 100644
 --- a/third_party/blink/public/platform/platform.h
 +++ b/third_party/blink/public/platform/platform.h
-@@ -676,6 +676,7 @@ class BLINK_PLATFORM_EXPORT Platform {
+@@ -656,6 +656,7 @@ class BLINK_PLATFORM_EXPORT Platform {
    virtual void DidStartWorkerThread() {}
    virtual void WillStopWorkerThread() {}
    virtual void WorkerContextCreated(const v8::Local<v8::Context>& worker) {}
@@ -62,11 +62,11 @@ index 89475620b73b66b336842cee144cee53242a1403..b0e110e04329b0e55b42e9f57aa0d284
        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 3b579edbe368f1974d352123729a748b7acf0583..9a0554c7cdd61ce73133a42ab10ba21e08430f07 100644
+index 512c3335456016c6d9afebe607999cff3e9f4709..7c90cb0cd86f528895f6ffebfcde854acb7cd124 100644
 --- a/third_party/blink/renderer/core/workers/worker_thread.cc
 +++ b/third_party/blink/renderer/core/workers/worker_thread.cc
-@@ -569,6 +569,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() {
-       SetExitCode(ExitCode::kGracefullyTerminated);
+@@ -637,6 +637,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() {
+     nested_runner_->QuitNow();
    }
  
 +  {

+ 1 - 1
patches/common/v8/.patches

@@ -3,6 +3,6 @@ build_gn.patch
 expose_mksnapshot.patch
 deps_provide_more_v8_backwards_compatibility.patch
 dcheck.patch
-revert_cctest_add_v8_export_private_to_arm_arm64_ports.patch
 export_symbols_needed_for_windows_build.patch
 workaround_an_undefined_symbol_error.patch
+revert_cctest_add_v8_export_private_to_arm_arm64_ports.patch

+ 7 - 7
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 a3ae21f1a9fcacd1f007f9c77c9ba48c2818df05..0e21793b1214c681770b72f64b9f0d6188c6a385 100644
+index 29c32d5ab77db52e4e02f140ac38ef46ff7bfc41..0b517b7a469451952723e10ad834d94c2f17e3e3 100644
 --- a/include/v8.h
 +++ b/include/v8.h
-@@ -4647,6 +4647,13 @@ class V8_EXPORT ArrayBuffer : public Object {
+@@ -4624,6 +4624,13 @@ class V8_EXPORT ArrayBuffer : public Object {
       */
      virtual void* AllocateUninitialized(size_t length) = 0;
  
@@ -29,11 +29,11 @@ index a3ae21f1a9fcacd1f007f9c77c9ba48c2818df05..0e21793b1214c681770b72f64b9f0d61
      /**
       * 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 7c496e2e857073057cb519c4b66b867b4a16929e..c2fc1fc9827f896c521606a75baecef6c60e8f8a 100644
---- a/src/api.cc
-+++ b/src/api.cc
-@@ -520,6 +520,10 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) {
+diff --git a/src/api/api.cc b/src/api/api.cc
+index 3eb1db63bec192fd2f397f3c4951eaca896ea81c..dcd2a79adf1f1b685f7384208786a18d9f593384 100644
+--- a/src/api/api.cc
++++ b/src/api/api.cc
+@@ -515,6 +515,10 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) {
    i::V8::SetSnapshotBlob(snapshot_blob);
  }
  

+ 4 - 4
patches/common/v8/build_gn.patch

@@ -5,10 +5,10 @@ Subject: build_gn.patch
 
 
 diff --git a/BUILD.gn b/BUILD.gn
-index 5b6ba9872f5b5b6844a6cd9094fc1d61b7089b5e..24bb79afe2458e64738ddd1b910250ede75c2a83 100644
+index aafcdf3d178284c247f0f502f02b8dd8c1aafafd..62fb301fd3e708d093e052916da98af99ed76597 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
-@@ -262,7 +262,7 @@ config("internal_config") {
+@@ -273,7 +273,7 @@ config("internal_config") {
      ":v8_header_features",
    ]
  
@@ -17,7 +17,7 @@ index 5b6ba9872f5b5b6844a6cd9094fc1d61b7089b5e..24bb79afe2458e64738ddd1b910250ed
      defines += [ "BUILDING_V8_SHARED" ]
    }
  }
-@@ -3708,7 +3708,7 @@ if (current_toolchain == v8_generator_toolchain) {
+@@ -3776,7 +3776,7 @@ if (current_toolchain == v8_generator_toolchain) {
        "src/interpreter/bytecodes.h",
      ]
  
@@ -26,7 +26,7 @@ index 5b6ba9872f5b5b6844a6cd9094fc1d61b7089b5e..24bb79afe2458e64738ddd1b910250ed
  
      deps = [
        ":v8_libbase",
-@@ -3729,6 +3729,8 @@ if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) {
+@@ -3801,6 +3801,8 @@ if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) {
  
      configs = [ ":internal_config" ]
  

+ 8 - 8
patches/common/v8/dcheck.patch

@@ -4,12 +4,12 @@ Date: Mon, 22 Oct 2018 10:47:12 -0700
 Subject: dcheck.patch
 
 
-diff --git a/src/api.cc b/src/api.cc
-index 679f7db6724976ae960182e838133d672c17f312..bd7cfa48aa219263551b7a9e523ae82324cac492 100644
---- a/src/api.cc
-+++ b/src/api.cc
-@@ -8592,7 +8592,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) {
- 
+diff --git a/src/api/api.cc b/src/api/api.cc
+index 56ef6b87cb7982deed05251d57b1008c54725f91..d0cc0b40be5f6219b6c6ccb8e3d9708734e7b14b 100644
+--- a/src/api/api.cc
++++ b/src/api/api.cc
+@@ -8246,7 +8246,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) {
+ }
  
  void Isolate::RunMicrotasks() {
 -  DCHECK_NE(MicrotasksPolicy::kScoped, GetMicrotasksPolicy());
@@ -18,10 +18,10 @@ index 679f7db6724976ae960182e838133d672c17f312..bd7cfa48aa219263551b7a9e523ae823
    isolate->default_microtask_queue()->RunMicrotasks(isolate);
  }
 diff --git a/src/heap/heap.cc b/src/heap/heap.cc
-index 4e1b1b8429b42f9d6b20faf60e45911656699021..c734ef5cb206a2d74c64f385ec45cb45fe38cef1 100644
+index 6ff808c76bc0905e5b42f3e9949631ff6a7fd300..07f7b61c78748614f5f8a6a3f72d7b5d20fae415 100644
 --- a/src/heap/heap.cc
 +++ b/src/heap/heap.cc
-@@ -4944,9 +4944,9 @@ void Heap::TearDown() {
+@@ -5074,9 +5074,9 @@ void Heap::TearDown() {
  void Heap::AddGCPrologueCallback(v8::Isolate::GCCallbackWithData callback,
                                   GCType gc_type, void* data) {
    DCHECK_NOT_NULL(callback);

+ 33 - 36
patches/common/v8/deps_provide_more_v8_backwards_compatibility.patch

@@ -22,10 +22,10 @@ Reviewed-By: Yang Guo <[email protected]>
 Reviewed-By: Michaël Zasso <[email protected]>
 
 diff --git a/include/v8.h b/include/v8.h
-index 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aab39d6533 100644
+index 0b517b7a469451952723e10ad834d94c2f17e3e3..4d2dcde69f3e11a19df85eed015278db2f46dc95 100644
 --- a/include/v8.h
 +++ b/include/v8.h
-@@ -1109,6 +1109,10 @@ class V8_EXPORT PrimitiveArray {
+@@ -1108,6 +1108,10 @@ class V8_EXPORT PrimitiveArray {
   public:
    static Local<PrimitiveArray> New(Isolate* isolate, int length);
    int Length() const;
@@ -36,7 +36,7 @@ index 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
    void Set(Isolate* isolate, int index, Local<Primitive> item);
    Local<Primitive> Get(Isolate* isolate, int index);
  };
-@@ -1817,6 +1821,8 @@ class V8_EXPORT StackTrace {
+@@ -1816,6 +1820,8 @@ class V8_EXPORT StackTrace {
    /**
     * Returns a StackFrame at a particular index.
     */
@@ -45,7 +45,7 @@ index 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
    Local<StackFrame> GetFrame(Isolate* isolate, uint32_t index) const;
  
    /**
-@@ -2505,6 +2511,13 @@ class V8_EXPORT Value : public Data {
+@@ -2509,6 +2515,13 @@ class V8_EXPORT Value : public Data {
  
    Local<Boolean> ToBoolean(Isolate* isolate) const;
  
@@ -59,7 +59,7 @@ index 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
    /**
     * Attempts to convert a string to an array index.
     * Returns an empty handle if the conversion fails.
-@@ -2521,7 +2534,14 @@ class V8_EXPORT Value : public Data {
+@@ -2525,7 +2538,14 @@ class V8_EXPORT Value : public Data {
        Local<Context> context) const;
    V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
  
@@ -74,7 +74,7 @@ index 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
    V8_WARN_UNUSED_RESULT Maybe<bool> Equals(Local<Context> context,
                                             Local<Value> that) const;
    bool StrictEquals(Local<Value> that) const;
-@@ -2628,6 +2648,8 @@ class V8_EXPORT String : public Name {
+@@ -2632,6 +2652,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 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
    int Utf8Length(Isolate* isolate) const;
  
    /**
-@@ -2684,12 +2706,23 @@ class V8_EXPORT String : public Name {
+@@ -2688,12 +2710,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 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
  
    /**
     * A zero length string.
-@@ -2877,6 +2910,9 @@ class V8_EXPORT String : public Name {
+@@ -2861,6 +2894,9 @@ class V8_EXPORT String : public Name {
     */
    static Local<String> Concat(Isolate* isolate, Local<String> left,
                                Local<String> right);
@@ -117,7 +117,7 @@ index 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
  
    /**
     * Creates a new external string using the data defined in the given
-@@ -2945,6 +2981,8 @@ class V8_EXPORT String : public Name {
+@@ -2925,6 +2961,8 @@ class V8_EXPORT String : public Name {
     */
    class V8_EXPORT Utf8Value {
     public:
@@ -126,7 +126,7 @@ index 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
      Utf8Value(Isolate* isolate, Local<v8::Value> obj);
      ~Utf8Value();
      char* operator*() { return str_; }
-@@ -2968,6 +3006,7 @@ class V8_EXPORT String : public Name {
+@@ -2948,6 +2986,7 @@ class V8_EXPORT String : public Name {
     */
    class V8_EXPORT Value {
     public:
@@ -134,7 +134,7 @@ index 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
      Value(Isolate* isolate, Local<v8::Value> obj);
      ~Value();
      uint16_t* operator*() { return str_; }
-@@ -5336,6 +5375,8 @@ class V8_EXPORT BooleanObject : public Object {
+@@ -5281,6 +5320,8 @@ class V8_EXPORT BooleanObject : public Object {
  class V8_EXPORT StringObject : public Object {
   public:
    static Local<Value> New(Isolate* isolate, Local<String> value);
@@ -143,7 +143,7 @@ index 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
  
    Local<String> ValueOf() const;
  
-@@ -10441,6 +10482,29 @@ template <class T> Value* Value::Cast(T* value) {
+@@ -10399,6 +10440,29 @@ template <class T> Value* Value::Cast(T* value) {
  }
  
  
@@ -173,11 +173,11 @@ index 0e21793b1214c681770b72f64b9f0d6188c6a385..b5af3e191886db921ae811ef5f5db4aa
  Boolean* Boolean::Cast(v8::Value* value) {
  #ifdef V8_ENABLE_CHECKS
    CheckCast(value);
-diff --git a/src/api.cc b/src/api.cc
-index c2fc1fc9827f896c521606a75baecef6c60e8f8a..679f7db6724976ae960182e838133d672c17f312 100644
---- a/src/api.cc
-+++ b/src/api.cc
-@@ -2227,6 +2227,10 @@ int PrimitiveArray::Length() const {
+diff --git a/src/api/api.cc b/src/api/api.cc
+index dcd2a79adf1f1b685f7384208786a18d9f593384..56ef6b87cb7982deed05251d57b1008c54725f91 100644
+--- a/src/api/api.cc
++++ b/src/api/api.cc
+@@ -2179,6 +2179,10 @@ int PrimitiveArray::Length() const {
    return array->length();
  }
  
@@ -188,7 +188,7 @@ index c2fc1fc9827f896c521606a75baecef6c60e8f8a..679f7db6724976ae960182e838133d67
  void PrimitiveArray::Set(Isolate* v8_isolate, int index,
                           Local<Primitive> item) {
    i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
-@@ -2240,6 +2244,10 @@ void PrimitiveArray::Set(Isolate* v8_isolate, int index,
+@@ -2192,6 +2196,10 @@ void PrimitiveArray::Set(Isolate* v8_isolate, int index,
    array->set(index, *i_item);
  }
  
@@ -199,7 +199,7 @@ index c2fc1fc9827f896c521606a75baecef6c60e8f8a..679f7db6724976ae960182e838133d67
  Local<Primitive> PrimitiveArray::Get(Isolate* v8_isolate, int index) {
    i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
    i::Handle<i::FixedArray> array = Utils::OpenHandle(this);
-@@ -2945,6 +2953,10 @@ void Message::PrintCurrentStackTrace(Isolate* isolate, FILE* out) {
+@@ -2875,6 +2883,10 @@ void Message::PrintCurrentStackTrace(Isolate* isolate, FILE* out) {
  
  // --- S t a c k T r a c e ---
  
@@ -210,7 +210,7 @@ index c2fc1fc9827f896c521606a75baecef6c60e8f8a..679f7db6724976ae960182e838133d67
  Local<StackFrame> StackTrace::GetFrame(Isolate* v8_isolate,
                                         uint32_t index) const {
    i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
-@@ -3570,6 +3582,34 @@ MaybeLocal<BigInt> Value::ToBigInt(Local<Context> context) const {
+@@ -3461,6 +3473,34 @@ MaybeLocal<BigInt> Value::ToBigInt(Local<Context> context) const {
    RETURN_ESCAPED(result);
  }
  
@@ -245,20 +245,19 @@ index c2fc1fc9827f896c521606a75baecef6c60e8f8a..679f7db6724976ae960182e838133d67
  bool Value::BooleanValue(Isolate* v8_isolate) const {
    return Utils::OpenHandle(this)->BooleanValue(
        reinterpret_cast<i::Isolate*>(v8_isolate));
-@@ -3956,6 +3996,12 @@ MaybeLocal<Uint32> Value::ToArrayIndex(Local<Context> context) const {
+@@ -3809,6 +3849,11 @@ MaybeLocal<Uint32> Value::ToArrayIndex(Local<Context> context) const {
+   return Local<Uint32>();
  }
  
- 
 +bool Value::Equals(Local<Value> that) const {
 +  return Equals(Isolate::GetCurrent()->GetCurrentContext(), that)
 +      .FromMaybe(false);
 +}
-+
 +
  Maybe<bool> Value::Equals(Local<Context> context, Local<Value> that) const {
    i::Isolate* isolate = Utils::OpenHandle(*context)->GetIsolate();
    auto self = Utils::OpenHandle(this);
-@@ -5234,6 +5280,10 @@ bool String::ContainsOnlyOneByte() const {
+@@ -5041,6 +5086,10 @@ bool String::ContainsOnlyOneByte() const {
    return helper.Check(*str);
  }
  
@@ -269,7 +268,7 @@ index c2fc1fc9827f896c521606a75baecef6c60e8f8a..679f7db6724976ae960182e838133d67
  int String::Utf8Length(Isolate* isolate) const {
    i::Handle<i::String> str = Utils::OpenHandle(this);
    str = i::String::Flatten(reinterpret_cast<i::Isolate*>(isolate), str);
-@@ -5386,6 +5436,14 @@ static int WriteUtf8Impl(i::Vector<const Char> string, char* write_start,
+@@ -5193,6 +5242,14 @@ static int WriteUtf8Impl(i::Vector<const Char> string, char* write_start,
  }
  }  // anonymous namespace
  
@@ -284,10 +283,10 @@ index c2fc1fc9827f896c521606a75baecef6c60e8f8a..679f7db6724976ae960182e838133d67
  int String::WriteUtf8(Isolate* v8_isolate, char* buffer, int capacity,
                        int* nchars_ref, int options) const {
    i::Handle<i::String> str = Utils::OpenHandle(this);
-@@ -5426,6 +5484,18 @@ static inline int WriteHelper(i::Isolate* isolate, const String* string,
+@@ -5231,6 +5288,17 @@ static inline int WriteHelper(i::Isolate* isolate, const String* string,
+   return end - start;
  }
  
- 
 +int String::WriteOneByte(uint8_t* buffer, int start,
 +                         int length, int options) const {
 +  return WriteOneByte(Isolate::GetCurrent(), buffer, start, length, options);
@@ -298,12 +297,11 @@ index c2fc1fc9827f896c521606a75baecef6c60e8f8a..679f7db6724976ae960182e838133d67
 +                  int options) const {
 +  return Write(Isolate::GetCurrent(), buffer, start, length, options);
 +}
-+
 +
  int String::WriteOneByte(Isolate* isolate, uint8_t* buffer, int start,
                           int length, int options) const {
    return WriteHelper(reinterpret_cast<i::Isolate*>(isolate), this, buffer,
-@@ -6393,6 +6463,11 @@ MaybeLocal<String> String::NewFromTwoByte(Isolate* isolate,
+@@ -6140,6 +6208,11 @@ MaybeLocal<String> String::NewFromTwoByte(Isolate* isolate,
    return result;
  }
  
@@ -315,19 +313,18 @@ index c2fc1fc9827f896c521606a75baecef6c60e8f8a..679f7db6724976ae960182e838133d67
  Local<String> v8::String::Concat(Isolate* v8_isolate, Local<String> left,
                                   Local<String> right) {
    i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
-@@ -6675,6 +6750,11 @@ bool v8::BooleanObject::ValueOf() const {
+@@ -6409,6 +6482,10 @@ bool v8::BooleanObject::ValueOf() const {
+   return jsvalue->value().IsTrue(isolate);
  }
  
- 
 +Local<v8::Value> v8::StringObject::New(Local<String> value) {
 +  return New(Isolate::GetCurrent(), value);
 +}
-+
 +
  Local<v8::Value> v8::StringObject::New(Isolate* v8_isolate,
                                         Local<String> value) {
    i::Handle<i::String> string = Utils::OpenHandle(*value);
-@@ -8957,6 +9037,9 @@ bool MicrotasksScope::IsRunningMicrotasks(Isolate* v8_isolate) {
+@@ -8598,6 +8675,9 @@ bool MicrotasksScope::IsRunningMicrotasks(Isolate* v8_isolate) {
    return microtask_queue->IsRunningMicrotasks();
  }
  
@@ -337,9 +334,9 @@ index c2fc1fc9827f896c521606a75baecef6c60e8f8a..679f7db6724976ae960182e838133d67
  String::Utf8Value::Utf8Value(v8::Isolate* isolate, v8::Local<v8::Value> obj)
      : str_(nullptr), length_(0) {
    if (obj.IsEmpty()) return;
-@@ -8976,6 +9059,9 @@ String::Utf8Value::~Utf8Value() {
-   i::DeleteArray(str_);
- }
+@@ -8615,6 +8695,9 @@ String::Utf8Value::Utf8Value(v8::Isolate* isolate, v8::Local<v8::Value> obj)
+ 
+ String::Utf8Value::~Utf8Value() { i::DeleteArray(str_); }
  
 +String::Value::Value(v8::Local<v8::Value> obj)
 +  : Value(Isolate::GetCurrent(), obj) {}

+ 3 - 3
patches/common/v8/export_symbols_needed_for_windows_build.patch

@@ -6,10 +6,10 @@ Subject: Export symbols needed for Windows build
 These symbols are required to build v8 with BUILD_V8_SHARED on Windows.
 
 diff --git a/src/objects.h b/src/objects.h
-index 60f6557423cf1d2e844739484883985deb9c764d..5043de65fe5224742f701b9445d232ce92d7262a 100644
+index 16f5ff3d192016df9d3f8687a9978854fd916d64..5a2f0e02b2e4ab4c5ab8edd9d1dccfd7a2ad5e3a 100644
 --- a/src/objects.h
 +++ b/src/objects.h
-@@ -816,7 +816,7 @@ enum class KeyCollectionMode {
+@@ -803,7 +803,7 @@ enum class KeyCollectionMode {
  // Utility superclass for stack-allocated objects that must be updated
  // on gc.  It provides two ways for the gc to update instances, either
  // iterating or updating after gc.
@@ -19,7 +19,7 @@ index 60f6557423cf1d2e844739484883985deb9c764d..5043de65fe5224742f701b9445d232ce
    explicit inline Relocatable(Isolate* isolate);
    inline virtual ~Relocatable();
 diff --git a/src/objects/ordered-hash-table.h b/src/objects/ordered-hash-table.h
-index 6afbb6b662d2fed0ad6258921aa6fe9e641ee7c2..e961d99251afafb9a8c12ce14b57fca4b73bf822 100644
+index 16db56818e5074e35cbb65b34219786c4cfe0d51..b14b8b44cedad707e99d175c9f63a1472ebe3c6e 100644
 --- a/src/objects/ordered-hash-table.h
 +++ b/src/objects/ordered-hash-table.h
 @@ -60,7 +60,7 @@ namespace internal {

+ 2 - 2
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 24bb79afe2458e64738ddd1b910250ede75c2a83..6344f50aa999f38e95d04e62c64d76420f39eb84 100644
+index 62fb301fd3e708d093e052916da98af99ed76597..315c7079ed488461a456aff799b4d1f17b896150 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
-@@ -3719,8 +3719,6 @@ if (current_toolchain == v8_generator_toolchain) {
+@@ -3787,8 +3787,6 @@ if (current_toolchain == v8_generator_toolchain) {
  
  if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) {
    v8_executable("mksnapshot") {

+ 40 - 58
patches/common/v8/revert_cctest_add_v8_export_private_to_arm_arm64_ports.patch

@@ -6,7 +6,7 @@ Subject: Revert "[cctest] Add V8_EXPORT_PRIVATE to arm/arm64 ports"
 This reverts commit 1a7d847cfac9a7363c59c980e47a7b7ff416e6da.
 
 diff --git a/src/arm/assembler-arm.h b/src/arm/assembler-arm.h
-index 852b983ac4a40c33d23dba77e9c2b48f653d1b4f..b78a7651d1e5c54e32e08ecb6483e7ad9a734ee7 100644
+index e3b079c32e8f8a29abfe117cba44d3b75f53c49d..e85d0108effe3abb3b88a1a41cce0234751759ef 100644
 --- a/src/arm/assembler-arm.h
 +++ b/src/arm/assembler-arm.h
 @@ -79,7 +79,7 @@ enum Coprocessor {
@@ -18,7 +18,7 @@ index 852b983ac4a40c33d23dba77e9c2b48f653d1b4f..b78a7651d1e5c54e32e08ecb6483e7ad
   public:
    // immediate
    V8_INLINE explicit Operand(int32_t immediate,
-@@ -182,8 +182,9 @@ class V8_EXPORT_PRIVATE Operand {
+@@ -185,8 +185,9 @@ class V8_EXPORT_PRIVATE Operand {
    friend class Assembler;
  };
  
@@ -29,7 +29,7 @@ index 852b983ac4a40c33d23dba77e9c2b48f653d1b4f..b78a7651d1e5c54e32e08ecb6483e7ad
   public:
    // [rn +/- offset]      Offset/NegOffset
    // [rn +/- offset]!     PreIndex/NegPreIndex
-@@ -239,9 +240,10 @@ class V8_EXPORT_PRIVATE MemOperand {
+@@ -242,9 +243,10 @@ class V8_EXPORT_PRIVATE MemOperand {
    friend class Assembler;
  };
  
@@ -41,7 +41,7 @@ index 852b983ac4a40c33d23dba77e9c2b48f653d1b4f..b78a7651d1e5c54e32e08ecb6483e7ad
   public:
    // [rn {:align}]       Offset
    // [rn {:align}]!      PostIndex
-@@ -262,6 +264,7 @@ class V8_EXPORT_PRIVATE NeonMemOperand {
+@@ -265,6 +267,7 @@ class V8_EXPORT_PRIVATE NeonMemOperand {
    int align_;
  };
  
@@ -49,7 +49,7 @@ index 852b983ac4a40c33d23dba77e9c2b48f653d1b4f..b78a7651d1e5c54e32e08ecb6483e7ad
  // Class NeonListOperand represents a list of NEON registers
  class NeonListOperand {
   public:
-@@ -1396,7 +1399,7 @@ class PatchingAssembler : public Assembler {
+@@ -1391,7 +1394,7 @@ class PatchingAssembler : public Assembler {
  // state, even if the list is modified by some other means. Note that this scope
  // can be nested but the destructors need to run in the opposite order as the
  // constructors. We do not have assertions for this.
@@ -59,7 +59,7 @@ index 852b983ac4a40c33d23dba77e9c2b48f653d1b4f..b78a7651d1e5c54e32e08ecb6483e7ad
    explicit UseScratchRegisterScope(Assembler* assembler);
    ~UseScratchRegisterScope();
 diff --git a/src/arm64/assembler-arm64.h b/src/arm64/assembler-arm64.h
-index 8db1a571b7d198c03a6cb6f1a8ab04597bea2776..8614975a1dbe54fe655f5e050742ccc76faa21da 100644
+index 2492f30278adae9fb3ff9e995cb9328b4ae8694c..f0ac332c21eb1172324f728c74ae40e131763fd1 100644
 --- a/src/arm64/assembler-arm64.h
 +++ b/src/arm64/assembler-arm64.h
 @@ -49,7 +49,7 @@ class Immediate {
@@ -72,7 +72,7 @@ index 8db1a571b7d198c03a6cb6f1a8ab04597bea2776..8614975a1dbe54fe655f5e050742ccc7
    int64_t value_;
    RelocInfo::Mode rmode_;
 diff --git a/src/arm64/decoder-arm64.h b/src/arm64/decoder-arm64.h
-index 3bc6934e814539022681e8ad4523a68a8f79b07b..a89bf38980e711c16caaf7a0158e36480b8ba978 100644
+index 477a126344a50eb9cf29cce216792a53ae98393e..a89bf38980e711c16caaf7a0158e36480b8ba978 100644
 --- a/src/arm64/decoder-arm64.h
 +++ b/src/arm64/decoder-arm64.h
 @@ -86,7 +86,7 @@ namespace internal {
@@ -95,15 +95,6 @@ index 3bc6934e814539022681e8ad4523a68a8f79b07b..a89bf38980e711c16caaf7a0158e3648
   public:
    DispatchingDecoderVisitor() {}
    virtual ~DispatchingDecoderVisitor() {}
-@@ -120,7 +121,7 @@ class V8_EXPORT_PRIVATE DispatchingDecoderVisitor : public DecoderVisitor {
-   //
-   // will call in order visitor methods in V3, V2, V1, V4.
-   void AppendVisitor(DecoderVisitor* visitor);
--  V8_EXPORT_PRIVATE void PrependVisitor(DecoderVisitor* visitor);
-+  void PrependVisitor(DecoderVisitor* visitor);
-   void InsertVisitorBefore(DecoderVisitor* new_visitor,
-                            DecoderVisitor* registered_visitor);
-   void InsertVisitorAfter(DecoderVisitor* new_visitor,
 @@ -141,6 +142,7 @@ class V8_EXPORT_PRIVATE DispatchingDecoderVisitor : public DecoderVisitor {
    std::list<DecoderVisitor*> visitors_;
  };
@@ -245,10 +236,10 @@ index 8514469227042b5740da73d42fc210a2282414e4..6f46e4b88c2e7c77f6fd58567e9aa2ae
    static bool IsValidImmPCOffset(ImmBranchType branch_type, ptrdiff_t offset);
    bool IsTargetInImmPCOffsetRange(Instruction* target);
 diff --git a/src/arm64/macro-assembler-arm64.h b/src/arm64/macro-assembler-arm64.h
-index 7521eadf696e9594d835d0088594da0ac768e9ff..6174e5b745976d0af5647ca945fcb8e72a0e6e91 100644
+index d345475f18a671879bcf6f5e9063cbcd5b20241b..c607496b373c27b9002c09b5c6d896fc18cf6a92 100644
 --- a/src/arm64/macro-assembler-arm64.h
 +++ b/src/arm64/macro-assembler-arm64.h
-@@ -2080,7 +2080,7 @@ class InstructionAccurateScope {
+@@ -2082,7 +2082,7 @@ class InstructionAccurateScope {
  // original state, even if the lists were modified by some other means. Note
  // that this scope can be nested but the destructors need to run in the opposite
  // order as the constructors. We do not have assertions for this.
@@ -257,27 +248,18 @@ index 7521eadf696e9594d835d0088594da0ac768e9ff..6174e5b745976d0af5647ca945fcb8e7
   public:
    explicit UseScratchRegisterScope(TurboAssembler* tasm)
        : available_(tasm->TmpList()),
-@@ -2091,7 +2091,7 @@ class V8_EXPORT_PRIVATE UseScratchRegisterScope {
-     DCHECK_EQ(availablefp_->type(), CPURegister::kVRegister);
-   }
- 
--  V8_EXPORT_PRIVATE ~UseScratchRegisterScope();
-+  ~UseScratchRegisterScope();
- 
-   // Take a register from the appropriate temps list. It will be returned
-   // automatically when the scope ends.
-@@ -2108,8 +2108,7 @@ class V8_EXPORT_PRIVATE UseScratchRegisterScope {
+@@ -2110,8 +2110,7 @@ class V8_EXPORT_PRIVATE UseScratchRegisterScope {
    VRegister AcquireSameSizeAs(const VRegister& reg);
  
   private:
--  V8_EXPORT_PRIVATE static CPURegister AcquireNextAvailable(
+-  static CPURegister AcquireNextAvailable(
 -      CPURegList* available);
 +  static CPURegister AcquireNextAvailable(CPURegList* available);
  
    // Available scratch registers.
    CPURegList* available_;     // kRegister
 diff --git a/src/arm64/register-arm64.h b/src/arm64/register-arm64.h
-index b19f41ef8488a9a117a8c88305c6dbe0dc188d39..956fd9ab04bcc4b314eb6253636e776463332b1b 100644
+index 54b927c3f407bfdaf69e8312360da9cd31c159d1..1da32ae6f4f0a9ee082a4e5c4e9871259a14cdef 100644
 --- a/src/arm64/register-arm64.h
 +++ b/src/arm64/register-arm64.h
 @@ -316,14 +316,14 @@ VectorFormat ScalarFormatFromLaneSize(int lanesize);
@@ -331,7 +313,7 @@ index b19f41ef8488a9a117a8c88305c6dbe0dc188d39..956fd9ab04bcc4b314eb6253636e7764
    template <typename... CPURegisters>
    explicit CPURegList(CPURegister reg0, CPURegisters... regs)
 diff --git a/src/arm64/simulator-arm64.h b/src/arm64/simulator-arm64.h
-index 12f9dcba8c565663a699247bd906c98e78e7790d..e4e3e09e45ad2e2859cbbb5c9720ffa4aaf6d2e6 100644
+index 2a5e25518badddd77febee11debdfb90868f8b8b..673ff8710cabad467fc08556ab96d3737c6d3e03 100644
 --- a/src/arm64/simulator-arm64.h
 +++ b/src/arm64/simulator-arm64.h
 @@ -656,11 +656,10 @@ class Simulator : public DecoderVisitor, public SimulatorBase {
@@ -382,10 +364,10 @@ index 00ed1c20c31bd312fe02920713fb0b937f1fa30e..f57dc861731c5146e26702147841a75d
  int LowestSetBitPosition(uint64_t value);
  int HighestSetBitPosition(uint64_t value);
  uint64_t LargestPowerOf2Divisor(uint64_t value);
-diff --git a/src/code-comments.h b/src/code-comments.h
-index 0c247fd247151a0bdfbf3a9f420c2eb2fa47b5cd..21543e7f498c0becfcc1121f2f17ebd90be0840e 100644
---- a/src/code-comments.h
-+++ b/src/code-comments.h
+diff --git a/src/codegen/code-comments.h b/src/codegen/code-comments.h
+index f366cd5547885d9e5dca19dd9177322dc375fa7c..fb4d47b6ec4e8982951e96f0226dbaf25185545c 100644
+--- a/src/codegen/code-comments.h
++++ b/src/codegen/code-comments.h
 @@ -35,7 +35,7 @@ struct CodeCommentEntry {
  
  class CodeCommentsWriter {
@@ -395,10 +377,10 @@ index 0c247fd247151a0bdfbf3a9f420c2eb2fa47b5cd..21543e7f498c0becfcc1121f2f17ebd9
    void Emit(Assembler* assm);
    size_t entry_count() const;
    uint32_t section_size() const;
-diff --git a/src/disasm.h b/src/disasm.h
-index f543af2609fa1e5b8fa8c7fcc74a073c52a3912e..d752b1a44b928dddd722a9cc68bf5b22629e60c7 100644
---- a/src/disasm.h
-+++ b/src/disasm.h
+diff --git a/src/diagnostics/disasm.h b/src/diagnostics/disasm.h
+index 2fe14f19321c67aaf1dd388472b14c8b5fbfe400..fcc38eb3b2242ce65f872636b9121c66f94b987a 100644
+--- a/src/diagnostics/disasm.h
++++ b/src/diagnostics/disasm.h
 @@ -14,7 +14,7 @@ typedef unsigned char byte;
  // Interface and default implementation for converting addresses and
  // register-numbers to text.  The default implementation is machine
@@ -426,10 +408,10 @@ index f543af2609fa1e5b8fa8c7fcc74a073c52a3912e..d752b1a44b928dddd722a9cc68bf5b22
  
    // Returns -1 if instruction does not mark the beginning of a constant pool,
    // or the number of entries in the constant pool beginning here.
-diff --git a/src/disassembler.h b/src/disassembler.h
-index d6bb84cd274575c78291eafdb6794d7ff690915c..5315d5598f3064cbf5563246bd5bd17fbb916900 100644
---- a/src/disassembler.h
-+++ b/src/disassembler.h
+diff --git a/src/diagnostics/disassembler.h b/src/diagnostics/disassembler.h
+index db1b8de69b8d0efff6a7f72094e2298a34753b8b..a58702f0d6bb572a666c0261c84c68a57afb390b 100644
+--- a/src/diagnostics/disassembler.h
++++ b/src/diagnostics/disassembler.h
 @@ -20,10 +20,8 @@ class Disassembler : public AllStatic {
    // Instruction'.
    // the code object is used for name resolution and may be null.
@@ -444,10 +426,10 @@ index d6bb84cd274575c78291eafdb6794d7ff690915c..5315d5598f3064cbf5563246bd5bd17f
  
  }  // namespace internal
 diff --git a/src/objects.cc b/src/objects.cc
-index cf301643a84e2a39a66909eab32a33c418990f28..bc526499502937a10eb56bfd6c75c0f5f9d678ad 100644
+index b29e37fa1cc451daafc80a53265fd02346e88220..f425ce8367e7edc050abb48fc2af9ede188ae1c8 100644
 --- a/src/objects.cc
 +++ b/src/objects.cc
-@@ -1237,7 +1237,7 @@ bool Object::ToInt32(int32_t* value) {
+@@ -1238,7 +1238,7 @@ bool Object::ToInt32(int32_t* value) {
  // static constexpr object declarations need a definition to make the
  // compiler happy.
  constexpr Object Smi::kZero;
@@ -457,7 +439,7 @@ index cf301643a84e2a39a66909eab32a33c418990f28..bc526499502937a10eb56bfd6c75c0f5
  Handle<SharedFunctionInfo> FunctionTemplateInfo::GetOrCreateSharedFunctionInfo(
      Isolate* isolate, Handle<FunctionTemplateInfo> info,
 diff --git a/src/objects/code.h b/src/objects/code.h
-index a02495c960d531355c62a11c26271ab08685b39e..310584c0b8808fa917f73fb822adaf855ac423a0 100644
+index a23763d893bda0003016d84b8f6f8d2c21365fcb..a078d30f2d84e65b087a3bcaf88002f1007a8034 100644
 --- a/src/objects/code.h
 +++ b/src/objects/code.h
 @@ -650,10 +650,9 @@ class DependentCode : public WeakFixedArray {
@@ -475,10 +457,10 @@ index a02495c960d531355c62a11c26271ab08685b39e..310584c0b8808fa917f73fb822adaf85
    void DeoptimizeDependentCodeGroup(Isolate* isolate, DependencyGroup group);
  
 diff --git a/src/objects/shared-function-info.h b/src/objects/shared-function-info.h
-index 5b79098fc0619b0d6ebaf48b5d8c6e56af7c32f0..688890ccd5d6a7ea7c4e7e265cea0e4a41d008c5 100644
+index 40d40e182917e4c7b9b6afec70c4735c89d7c5bb..e06c9eb74a8c3b8bbcaab8fb0b1f29d9f981ae46 100644
 --- a/src/objects/shared-function-info.h
 +++ b/src/objects/shared-function-info.h
-@@ -220,9 +220,7 @@ class InterpreterData : public Struct {
+@@ -221,9 +221,7 @@ class InterpreterData : public Struct {
  class SharedFunctionInfo : public HeapObject {
   public:
    NEVER_READ_ONLY_SPACE
@@ -490,10 +472,10 @@ index 5b79098fc0619b0d6ebaf48b5d8c6e56af7c32f0..688890ccd5d6a7ea7c4e7e265cea0e4a
    // [name]: Returns shared name if it exists or an empty string otherwise.
    inline String Name() const;
 diff --git a/src/objects/string.cc b/src/objects/string.cc
-index 323d7ed73dd26531e436d504878ba3fe7c4df6d7..98579e5753a6eafbbd4f0e44b518dc5377631d8a 100644
+index 732dd38e21789c70ada0baa4d7d2bd2232dd83b7..5818701376b2754ffcef4aa4bf859c8b5145e25a 100644
 --- a/src/objects/string.cc
 +++ b/src/objects/string.cc
-@@ -1517,8 +1517,5 @@ String ConsStringIterator::NextLeaf(bool* blew_stack) {
+@@ -1624,8 +1624,5 @@ String ConsStringIterator::NextLeaf(bool* blew_stack) {
    UNREACHABLE();
  }
  
@@ -503,7 +485,7 @@ index 323d7ed73dd26531e436d504878ba3fe7c4df6d7..98579e5753a6eafbbd4f0e44b518dc53
  }  // namespace internal
  }  // namespace v8
 diff --git a/src/objects/string.h b/src/objects/string.h
-index 707f29a2ae1d6a0b5effc5e88b192ba1980a7be0..72359fd0c1ad9c1d816b325d263bb613c9de3af0 100644
+index c7e9460904afe50613d811363d5d4c1281796fad..5b152501196c7aff9311f07e7262e4919a3a2a30 100644
 --- a/src/objects/string.h
 +++ b/src/objects/string.h
 @@ -6,7 +6,6 @@
@@ -514,7 +496,7 @@ index 707f29a2ae1d6a0b5effc5e88b192ba1980a7be0..72359fd0c1ad9c1d816b325d263bb613
  #include "src/objects/instance-type.h"
  #include "src/objects/name.h"
  #include "src/objects/smi.h"
-@@ -365,8 +364,8 @@ class String : public Name {
+@@ -369,8 +368,8 @@ class String : public Name {
  
    // Helper function for flattening strings.
    template <typename sinkchar>
@@ -525,7 +507,7 @@ index 707f29a2ae1d6a0b5effc5e88b192ba1980a7be0..72359fd0c1ad9c1d816b325d263bb613
  
    static inline bool IsAscii(const char* chars, int length) {
      return IsAscii(reinterpret_cast<const uint8_t*>(chars), length);
-@@ -422,11 +421,6 @@ class String : public Name {
+@@ -456,11 +455,6 @@ class String : public Name {
    OBJECT_CONSTRUCTORS(String, Name);
  };
  
@@ -538,7 +520,7 @@ index 707f29a2ae1d6a0b5effc5e88b192ba1980a7be0..72359fd0c1ad9c1d816b325d263bb613
   public:
    inline SubStringRange(String string, const DisallowHeapAllocation& no_gc,
 diff --git a/src/regexp/jsregexp.h b/src/regexp/jsregexp.h
-index 0a0b5c10d66d65054e4865d7e920c082daa93158..a44e9f95866ca93659cb3423284352e06d87b04d 100644
+index 9866caa900888273de74cfb012845748931d0fd0..4c7526a59342743f6068e5c61d24c8dad4efd43f 100644
 --- a/src/regexp/jsregexp.h
 +++ b/src/regexp/jsregexp.h
 @@ -1513,8 +1513,7 @@ class RegExpEngine: public AllStatic {
@@ -552,7 +534,7 @@ index 0a0b5c10d66d65054e4865d7e920c082daa93158..a44e9f95866ca93659cb3423284352e0
  
  
 diff --git a/src/wasm/wasm-module.h b/src/wasm/wasm-module.h
-index d31f5ff067c9b096a94705769c64586ffd546341..cce60d015af915e0984060dd2e84d6f7b46fc79a 100644
+index e1184c40b8482891352dbeaad8b49d2c29ec19e2..284e8fae87a90f7056346bc074388270af48914e 100644
 --- a/src/wasm/wasm-module.h
 +++ b/src/wasm/wasm-module.h
 @@ -120,7 +120,7 @@ struct WasmElemSegment {
@@ -565,12 +547,12 @@ index d31f5ff067c9b096a94705769c64586ffd546341..cce60d015af915e0984060dd2e84d6f7
    uint32_t table_index;
    WasmInitExpr offset;
 diff --git a/test/cctest/parsing/test-parse-decision.cc b/test/cctest/parsing/test-parse-decision.cc
-index e3b046baef67369153bafc4605ea0e636a88cd36..c0c4b2cd7e847c217fb8c868263fd74b9c8d9499 100644
+index 37ce657d44d09ce31506bb25fac25ae73fb6fc75..93bfb4776dee9f323b438bcce00194d75547f257 100644
 --- a/test/cctest/parsing/test-parse-decision.cc
 +++ b/test/cctest/parsing/test-parse-decision.cc
 @@ -14,7 +14,6 @@
- #include "src/handles-inl.h"
- #include "src/isolate.h"
+ #include "src/execution/isolate.h"
+ #include "src/handles/handles-inl.h"
  #include "src/objects-inl.h"
 -#include "src/objects/shared-function-info-inl.h"
  #include "src/utils.h"

+ 4 - 4
patches/common/v8/workaround_an_undefined_symbol_error.patch

@@ -12,7 +12,7 @@ By moving some functions out of the the arm64-assembler header file,
 this error no longer seems to happen.
 
 diff --git a/src/arm64/assembler-arm64.cc b/src/arm64/assembler-arm64.cc
-index eaafa2375b2746fb7a9f63a1fc6703660b2b123c..fa83830f21b068ff79872e5d9eb6031bffd84028 100644
+index 4408a44770bcc5106bc2dd843ef4954dad7ff7df..df9683fd5e9720255ff6b83e47ec64e2f83f7722 100644
 --- a/src/arm64/assembler-arm64.cc
 +++ b/src/arm64/assembler-arm64.cc
 @@ -4013,6 +4013,22 @@ void Assembler::MoveWide(const Register& rd, uint64_t imm, int shift,
@@ -39,10 +39,10 @@ index eaafa2375b2746fb7a9f63a1fc6703660b2b123c..fa83830f21b068ff79872e5d9eb6031b
                         const Operand& operand, FlagsUpdate S, AddSubOp op) {
    DCHECK_EQ(rd.SizeInBits(), rn.SizeInBits());
 diff --git a/src/arm64/assembler-arm64.h b/src/arm64/assembler-arm64.h
-index 8614975a1dbe54fe655f5e050742ccc76faa21da..1e0379b851a062c580cb5884176c3d4833ae5ea8 100644
+index d814722e6a9eb7b156fc86592cd321682bb68974..2492f30278adae9fb3ff9e995cb9328b4ae8694c 100644
 --- a/src/arm64/assembler-arm64.h
 +++ b/src/arm64/assembler-arm64.h
-@@ -2234,11 +2234,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase {
+@@ -2230,11 +2230,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase {
      return rm.code() << Rm_offset;
    }
  
@@ -55,7 +55,7 @@ index 8614975a1dbe54fe655f5e050742ccc76faa21da..1e0379b851a062c580cb5884176c3d48
  
    static Instr Ra(CPURegister ra) {
      DCHECK_NE(ra.code(), kSPRegInternalCode);
-@@ -2262,15 +2258,8 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase {
+@@ -2258,15 +2254,8 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase {
  
    // These encoding functions allow the stack pointer to be encoded, and
    // disallow the zero register.

+ 3 - 1
spec/api-menu-spec.js

@@ -835,7 +835,9 @@ describe('Menu module', () => {
     })
   })
 
-  describe('menu accelerators', () => {
+  // FIXME(nornagon): this is disabled due to an issue with nan in current v8.
+  // See https://github.com/electron/electron/issues/18409
+  describe.skip('menu accelerators', () => {
     let testFn = it
     try {
       // We have other tests that check if native modules work, if we fail to require

+ 2 - 1
spec/api-notification-dbus-spec.js

@@ -16,7 +16,8 @@ const { app } = remote
 const skip = process.platform !== 'linux' ||
              process.arch === 'ia32' ||
              process.arch.indexOf('arm') === 0 ||
-             !process.env.DBUS_SESSION_BUS_ADDRESS;
+             !process.env.DBUS_SESSION_BUS_ADDRESS ||
+             true;
 
 (skip ? describe.skip : describe)('Notification module (dbus)', () => {
   let mock, Notification, getCalls, reset

Some files were not shown because too many files changed in this diff