Don't handle browser messages before document object is created
When we recevied messages from browser, we will try to transfer the message to web page, and when we do that blink will create an empty document when there is no document object yet, which will make our init script run when window.location is still about:blank.
This commit is contained in:
parent
4ba3e101f6
commit
0bcc9b7713
2 changed files with 10 additions and 1 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue