diff --git a/atom/renderer/atom_render_view_observer.cc b/atom/renderer/atom_render_view_observer.cc index 7af2f3490be..ceec7d60494 100644 --- a/atom/renderer/atom_render_view_observer.cc +++ b/atom/renderer/atom_render_view_observer.cc @@ -31,7 +31,8 @@ AtomRenderViewObserver::AtomRenderViewObserver( content::RenderView* render_view, AtomRendererClient* renderer_client) : content::RenderViewObserver(render_view), - renderer_client_(renderer_client) { + renderer_client_(renderer_client), + document_created_(false) { } AtomRenderViewObserver::~AtomRenderViewObserver() { @@ -39,6 +40,8 @@ AtomRenderViewObserver::~AtomRenderViewObserver() { void AtomRenderViewObserver::DidCreateDocumentElement( blink::WebLocalFrame* frame) { + document_created_ = true; + // Read --zoom-factor from command line. std::string zoom_factor_str = CommandLine::ForCurrentProcess()-> GetSwitchValueASCII(switches::kZoomFactor);; @@ -76,6 +79,9 @@ bool AtomRenderViewObserver::OnMessageReceived(const IPC::Message& message) { void AtomRenderViewObserver::OnBrowserMessage(const base::string16& channel, const base::ListValue& args) { + if (!document_created_) + return; + renderer_client_->atom_bindings()->OnBrowserMessage( render_view(), channel, args); } diff --git a/atom/renderer/atom_render_view_observer.h b/atom/renderer/atom_render_view_observer.h index 12837af62a8..2745c5d8c3e 100644 --- a/atom/renderer/atom_render_view_observer.h +++ b/atom/renderer/atom_render_view_observer.h @@ -36,6 +36,9 @@ class AtomRenderViewObserver : public content::RenderViewObserver { // Weak reference to renderer client. AtomRendererClient* renderer_client_; + // Whether the document object has been created. + bool document_created_; + DISALLOW_COPY_AND_ASSIGN(AtomRenderViewObserver); };