Skip to content

Commit

Permalink
Merge pull request from GHSA-h9jc-284h-533g
Browse files Browse the repository at this point in the history
  • Loading branch information
MarshallOfSound committed Apr 16, 2020
1 parent bb2773b commit 248beeb
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 11 deletions.
22 changes: 11 additions & 11 deletions shell/renderer/api/electron_api_context_bridge.cc
Original file line number Diff line number Diff line change
Expand Up @@ -398,19 +398,19 @@ v8::MaybeLocal<v8::Object> CreateProxyForAPI(
context_bridge::ObjectCache* object_cache,
int recursion_depth) {
gin_helper::Dictionary api(source_context->GetIsolate(), api_object);
gin_helper::Dictionary proxy =
gin::Dictionary::CreateEmpty(destination_context->GetIsolate());
object_cache->CacheProxiedObject(api.GetHandle(), proxy.GetHandle());
auto maybe_keys = api.GetHandle()->GetOwnPropertyNames(
source_context,
static_cast<v8::PropertyFilter>(v8::ONLY_ENUMERABLE | v8::SKIP_SYMBOLS),
v8::KeyConversionMode::kConvertToString);
if (maybe_keys.IsEmpty())
return v8::MaybeLocal<v8::Object>(proxy.GetHandle());
auto keys = maybe_keys.ToLocalChecked();

v8::Context::Scope destination_context_scope(destination_context);
{
gin_helper::Dictionary proxy =
gin::Dictionary::CreateEmpty(destination_context->GetIsolate());
object_cache->CacheProxiedObject(api.GetHandle(), proxy.GetHandle());
auto maybe_keys = api.GetHandle()->GetOwnPropertyNames(
source_context,
static_cast<v8::PropertyFilter>(v8::ONLY_ENUMERABLE | v8::SKIP_SYMBOLS),
v8::KeyConversionMode::kConvertToString);
if (maybe_keys.IsEmpty())
return v8::MaybeLocal<v8::Object>(proxy.GetHandle());
auto keys = maybe_keys.ToLocalChecked();

uint32_t length = keys->Length();
std::string key_str;
for (uint32_t i = 0; i < length; i++) {
Expand Down
2 changes: 2 additions & 0 deletions spec-main/api-context-bridge-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,7 @@ describe('contextBridge', () => {
string: 'string',
boolean: true,
arr: [123, 'string', true, ['foo']],
getObject: () => ({ thing: 123 }),
getNumber: () => 123,
getString: () => 'string',
getBoolean: () => true,
Expand Down Expand Up @@ -454,6 +455,7 @@ describe('contextBridge', () => {
[example.arr[3][0], String],
[example.getNumber, Function],
[example.getNumber(), Number],
[example.getObject(), Object],
[example.getString(), String],
[example.getBoolean(), Boolean],
[example.getArr(), Array],
Expand Down

0 comments on commit 248beeb

Please sign in to comment.