Move DidClearWindowObject into RendererClientBase.
authorThiago de Arruda <tpadilha84@gmail.com>
Sat, 8 Apr 2017 13:43:19 +0000 (10:43 -0300)
committerThiago de Arruda <tpadilha84@gmail.com>
Sat, 8 Apr 2017 13:43:19 +0000 (10:43 -0300)
Also adapt AtomSandboxedRenderFrameObserver to forward DidClearWindowObject to
RendererClientBase.

atom/renderer/atom_renderer_client.cc
atom/renderer/atom_renderer_client.h
atom/renderer/atom_sandboxed_renderer_client.cc
atom/renderer/renderer_client_base.cc
atom/renderer/renderer_client_base.h

index 6137593..519b043 100644 (file)
@@ -25,7 +25,6 @@
 #include "native_mate/dictionary.h"
 #include "third_party/WebKit/public/web/WebDocument.h"
 #include "third_party/WebKit/public/web/WebLocalFrame.h"
-#include "third_party/WebKit/public/web/WebScriptSource.h"
 
 #include "atom/common/node_includes.h"
 
@@ -68,12 +67,6 @@ void AtomRendererClient::RenderViewCreated(content::RenderView* render_view) {
   RendererClientBase::RenderViewCreated(render_view);
 }
 
-void AtomRendererClient::DidClearWindowObject(
-    content::RenderFrame* render_frame) {
-  // Make sure every page will get a script context created.
-  render_frame->GetWebFrame()->executeScript(blink::WebScriptSource("void 0"));
-}
-
 void AtomRendererClient::RunScriptsAtDocumentStart(
     content::RenderFrame* render_frame) {
   // Inform the document start pharse.
index 4e45df1..01787fd 100644 (file)
@@ -20,7 +20,6 @@ class AtomRendererClient : public RendererClientBase {
   AtomRendererClient();
   virtual ~AtomRendererClient();
 
-  void DidClearWindowObject(content::RenderFrame* render_frame);
   void DidCreateScriptContext(
       v8::Handle<v8::Context> context, content::RenderFrame* render_frame);
   void WillReleaseScriptContext(
index 80f8cae..9eb11c8 100644 (file)
@@ -100,9 +100,7 @@ class AtomSandboxedRenderFrameObserver : public content::RenderFrameObserver {
 
   // content::RenderFrameObserver:
   void DidClearWindowObject() override {
-    // Make sure every page will get a script context created.
-    render_frame_->GetWebFrame()->executeScript(
-        blink::WebScriptSource("void 0"));
+    renderer_client_->DidClearWindowObject(render_frame_);
   }
 
   void DidCreateScriptContext(v8::Handle<v8::Context> context,
index 3ee72b3..6cb6cb9 100644 (file)
@@ -27,6 +27,7 @@
 #include "third_party/WebKit/public/web/WebFrameWidget.h"
 #include "third_party/WebKit/public/web/WebKit.h"
 #include "third_party/WebKit/public/web/WebPluginParams.h"
+#include "third_party/WebKit/public/web/WebScriptSource.h"
 #include "third_party/WebKit/public/web/WebSecurityPolicy.h"
 
 #if defined(OS_MACOSX)
@@ -151,6 +152,12 @@ void RendererClientBase::RenderViewCreated(content::RenderView* render_view) {
   }
 }
 
+void RendererClientBase::DidClearWindowObject(
+    content::RenderFrame* render_frame) {
+  // Make sure every page will get a script context created.
+  render_frame->GetWebFrame()->executeScript(blink::WebScriptSource("void 0"));
+}
+
 blink::WebSpeechSynthesizer* RendererClientBase::OverrideSpeechSynthesizer(
     blink::WebSpeechSynthesizerClient* client) {
   return new TtsDispatcher(client);
index 3a91255..167eefa 100644 (file)
@@ -19,6 +19,8 @@ class RendererClientBase : public content::ContentRendererClient {
   RendererClientBase();
   virtual ~RendererClientBase();
 
+  virtual void DidClearWindowObject(content::RenderFrame* render_frame);
+
  protected:
   void AddRenderBindings(v8::Isolate* isolate,
                          v8::Local<v8::Object> binding_object);