From 16620cea1468385afa8f57ad2ff35c435280e894 Mon Sep 17 00:00:00 2001 From: Bill McCloskey Date: Thu, 29 Jan 2015 11:24:46 -0800 Subject: [PATCH] Bug 1126018 - [e10s] Improve dummy window shim (r=mconley) --- .../addoncompat/RemoteAddonsParent.jsm | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/toolkit/components/addoncompat/RemoteAddonsParent.jsm b/toolkit/components/addoncompat/RemoteAddonsParent.jsm index 5854fe6f507a..8d3f0cd22c59 100644 --- a/toolkit/components/addoncompat/RemoteAddonsParent.jsm +++ b/toolkit/components/addoncompat/RemoteAddonsParent.jsm @@ -730,8 +730,16 @@ function makeDummyContentWindow(browser) { let dummyContentWindow = { set location(url) { browser.loadURI(url, null, null); - } + }, + document: { + readyState: "loading", + location: { href: "about:blank" } + }, + frames: [], }; + dummyContentWindow.top = dummyContentWindow; + dummyContentWindow.document.defaultView = dummyContentWindow; + browser._contentWindow = dummyContentWindow; return dummyContentWindow; } @@ -745,26 +753,18 @@ RemoteBrowserElementInterposition.getters.contentWindow = function(addon, target return target.contentWindowAsCPOW; }; -let DummyContentDocument = { - readyState: "loading", - location: { href: "about:blank" } -}; - function getContentDocument(addon, browser) { + if (!browser.contentWindowAsCPOW) { + return makeDummyContentWindow(browser).document; + } + let doc = Prefetcher.lookupInCache(addon, browser.contentWindowAsCPOW, "document"); if (doc) { return doc; } - doc = browser.contentDocumentAsCPOW; - if (!doc) { - // If we don't have a CPOW yet, just return something we can use to - // examine readyState. This is useful for tests that create a new - // tab and then immediately start polling readyState. - return DummyContentDocument; - } - return doc; + return browser.contentDocumentAsCPOW; } RemoteBrowserElementInterposition.getters.contentDocument = function(addon, target) {