From 5f658de19fb12dd4b3952e9aae03aeaca4766fad Mon Sep 17 00:00:00 2001 From: Emmanuel Kimmerlin Date: Thu, 23 Nov 2017 07:25:16 +0100 Subject: [PATCH] :bug: #10470 - prevent to load preload in each iframe context --- atom/renderer/atom_sandboxed_renderer_client.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/atom/renderer/atom_sandboxed_renderer_client.cc b/atom/renderer/atom_sandboxed_renderer_client.cc index 069ff42e7bf6..aa438fc790fa 100644 --- a/atom/renderer/atom_sandboxed_renderer_client.cc +++ b/atom/renderer/atom_sandboxed_renderer_client.cc @@ -38,7 +38,6 @@ namespace { const std::string kIpcKey = "ipcNative"; const std::string kModuleCacheKey = "native-module-cache"; - v8::Local GetModuleCache(v8::Isolate* isolate) { mate::Dictionary global(isolate, isolate->GetCurrentContext()->Global()); v8::Local cache; @@ -155,6 +154,11 @@ void AtomSandboxedRendererClient::RenderViewCreated( void AtomSandboxedRendererClient::DidCreateScriptContext( v8::Handle context, content::RenderFrame* render_frame) { + + // Only allow preload for the main frame + if (!render_frame->IsMainFrame()) + return; + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); std::string preload_script = command_line->GetSwitchValueASCII( switches::kPreloadScript); @@ -192,6 +196,11 @@ void AtomSandboxedRendererClient::DidCreateScriptContext( void AtomSandboxedRendererClient::WillReleaseScriptContext( v8::Handle context, content::RenderFrame* render_frame) { + + // Only allow preload for the main frame + if (!render_frame->IsMainFrame()) + return; + auto isolate = context->GetIsolate(); v8::HandleScope handle_scope(isolate); v8::Context::Scope context_scope(context);