refactor: use v8 serialization for ipc (#20214)
* refactor: use v8 serialization for ipc * cloning process.env doesn't work * serialize host objects by enumerating key/values * new serialization can handle NaN, Infinity, and undefined correctly * can't allocate v8 objects during GC * backport microtasks fix * fix compile * fix node_stream_loader reentrancy * update subframe spec to expect undefined instead of null * write undefined instead of crashing when serializing host objects * fix webview spec * fix download spec * buffers are transformed into uint8arrays * can't serialize promises * fix chrome.i18n.getMessage * fix devtools tests * fix zoom test * fix debug build * fix lint * update ipcRenderer tests * fix printToPDF test * update patch * remove accidentally re-added remote-side spec * wip * don't attempt to serialize host objects * jump through different hoops to set options.webContents sometimes * whoops * fix lint * clean up error-handling logic * fix memory leak * fix lint * convert host objects using old base::Value serialization * fix lint more * fall back to base::Value-based serialization * remove commented-out code * add docs to breaking-changes.md * Update breaking-changes.md * update ipcRenderer and WebContents docs * lint * use named values for format tag * save a memcpy for ~30% speedup * get rid of calls to ShallowClone * extra debugging for paranoia * d'oh, use the correct named tags * apparently msstl doesn't like this DCHECK * funny story about that DCHECK * disable remote-related functions when enable_remote_module = false * nits * use EnableIf to disable remote methods in mojom * fix include * review comments
This commit is contained in:
parent
c250cd6e7c
commit
2fad53e66b
38 changed files with 623 additions and 169 deletions
|
@ -78,4 +78,5 @@ expose_setuseragent_on_networkcontext.patch
|
|||
feat_add_set_theme_source_to_allow_apps_to.patch
|
||||
revert_cleanup_remove_menu_subtitles_sublabels.patch
|
||||
ui_views_fix_jumbo_build.patch
|
||||
export_fetchapi_mojo_traits_to_fix_component_build.patch
|
||||
fix_windows_build.patch
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy Apthorp <jeremya@chromium.org>
|
||||
Date: Fri, 20 Sep 2019 16:44:18 -0400
|
||||
Subject: export FetchAPI mojo traits to fix component build
|
||||
|
||||
Without these, we get link errors in the component build when using the
|
||||
blink::CloneableMessage mojo traits.
|
||||
|
||||
diff --git a/third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h b/third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h
|
||||
index 1ddfc2108f9a0104247ea2559b597552cd20a342..f9a10b5b428e29a8824b87616f19292b38e38024 100644
|
||||
--- a/third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h
|
||||
+++ b/third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h
|
||||
@@ -11,12 +11,13 @@
|
||||
#include "mojo/public/cpp/bindings/pending_remote.h"
|
||||
#include "services/network/public/cpp/resource_request_body.h"
|
||||
#include "services/network/public/mojom/url_loader.mojom-forward.h"
|
||||
+#include "third_party/blink/public/common/common_export.h"
|
||||
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-forward.h"
|
||||
|
||||
namespace mojo {
|
||||
|
||||
template <>
|
||||
-struct StructTraits<blink::mojom::FetchAPIRequestBodyDataView,
|
||||
+struct BLINK_COMMON_EXPORT StructTraits<blink::mojom::FetchAPIRequestBodyDataView,
|
||||
scoped_refptr<network::ResourceRequestBody>> {
|
||||
static bool IsNull(const scoped_refptr<network::ResourceRequestBody>& r) {
|
||||
return !r;
|
||||
@@ -46,7 +47,7 @@ struct StructTraits<blink::mojom::FetchAPIRequestBodyDataView,
|
||||
};
|
||||
|
||||
template <>
|
||||
-struct StructTraits<blink::mojom::FetchAPIDataElementDataView,
|
||||
+struct BLINK_COMMON_EXPORT StructTraits<blink::mojom::FetchAPIDataElementDataView,
|
||||
network::DataElement> {
|
||||
static const network::mojom::DataElementType& type(
|
||||
const network::DataElement& element) {
|
|
@ -12,7 +12,7 @@ native_mate, and we should remove this patch once native_mate is erased
|
|||
from Electron.
|
||||
|
||||
diff --git a/gin/arguments.h b/gin/arguments.h
|
||||
index eaded13e2991..03e1495566d1 100644
|
||||
index eaded13e29919793494dfe2f7f85fad7dcb125cf..03e1495566d1ab561dcd67517053173911288cea 100644
|
||||
--- a/gin/arguments.h
|
||||
+++ b/gin/arguments.h
|
||||
@@ -28,14 +28,14 @@ class GIN_EXPORT Arguments {
|
||||
|
@ -60,7 +60,7 @@ index eaded13e2991..03e1495566d1 100644
|
|||
(is_for_property_ ? info_for_property_->GetReturnValue()
|
||||
: info_for_function_->GetReturnValue())
|
||||
diff --git a/gin/converter.h b/gin/converter.h
|
||||
index 27b4d0acd016..b19209a8534a 100644
|
||||
index 27b4d0acd016df378e4cb44ccda1a433244fe2c6..b19209a8534a497373c5a2f861b26502e96144c9 100644
|
||||
--- a/gin/converter.h
|
||||
+++ b/gin/converter.h
|
||||
@@ -250,7 +250,7 @@ std::enable_if_t<ToV8ReturnsMaybe<T>::value, bool> TryConvertToV8(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue