From 19892c6983671822967b2170aa875381d0e828bc Mon Sep 17 00:00:00 2001 From: Milan Burda Date: Mon, 4 Oct 2021 20:00:25 +0200 Subject: [PATCH] fix: "Failed to serialize arguments" when emitting 'context-menu' for webview (#31259) * fix: sanitize params for 'context-menu' event sent over IPC for webview * Revert "fix: sanitize params for 'context-menu' event sent over IPC for webview" This reverts commit 7fee455138e8470756a677dcca1a830260ba8d97. * fix: make frame property non-enumerable in params for 'context-menu' event --- shell/common/gin_converters/content_converter.cc | 2 +- shell/common/gin_helper/dictionary.h | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/shell/common/gin_converters/content_converter.cc b/shell/common/gin_converters/content_converter.cc index 4d6b250cfa166..a025702eb5b9b 100644 --- a/shell/common/gin_converters/content_converter.cc +++ b/shell/common/gin_converters/content_converter.cc @@ -80,7 +80,7 @@ v8::Local Converter::ToV8( const auto& params = val.first; content::RenderFrameHost* render_frame_host = val.second; gin_helper::Dictionary dict = gin::Dictionary::CreateEmpty(isolate); - dict.SetGetter("frame", render_frame_host); + dict.SetGetter("frame", render_frame_host, v8::DontEnum); dict.Set("x", params.x); dict.Set("y", params.y); dict.Set("linkURL", params.link_url); diff --git a/shell/common/gin_helper/dictionary.h b/shell/common/gin_helper/dictionary.h index 5e55c418f2582..7c6368ad39781 100644 --- a/shell/common/gin_helper/dictionary.h +++ b/shell/common/gin_helper/dictionary.h @@ -111,7 +111,9 @@ class Dictionary : public gin::Dictionary { } template - bool SetGetter(const K& key, const V& val) { + bool SetGetter(const K& key, + const V& val, + v8::PropertyAttribute attribute = v8::None) { AccessorValue acc_value; acc_value.Value = val; @@ -136,7 +138,7 @@ class Dictionary : public gin::Dictionary { if (gin::TryConvertToV8(info.GetIsolate(), val, &v8_value)) info.GetReturnValue().Set(v8_value); }, - NULL, v8_value_accessor) + nullptr, v8_value_accessor, v8::DEFAULT, attribute) .ToChecked(); }