зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1506032: Wait for documentUnload and newRoot events are fired. r=pbro
Differential Revision: https://phabricator.services.mozilla.com/D33749 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
d5b5784233
Коммит
002c2ce79d
|
@ -147,7 +147,6 @@ run-if = e10s
|
|||
[browser_toolbox_view_source_03.js]
|
||||
[browser_toolbox_view_source_04.js]
|
||||
[browser_toolbox_window_reload_target.js]
|
||||
skip-if = true # bug 1522720, Bug 1506032
|
||||
[browser_toolbox_window_shortcuts.js]
|
||||
[browser_toolbox_window_title_changes.js]
|
||||
[browser_toolbox_window_title_frame_select.js]
|
||||
|
|
|
@ -85,14 +85,38 @@ function testReload(shortcut, toolbox, toolID) {
|
|||
const mm = gBrowser.selectedBrowser.messageManager;
|
||||
|
||||
return new Promise(resolve => {
|
||||
// The inspector needs some special care.
|
||||
const toolUpdated = toolID === "inspector"
|
||||
? toolbox.getPanel("inspector").once("new-root")
|
||||
: Promise.resolve();
|
||||
const observer = {
|
||||
_isDocumentUnloaded: false,
|
||||
_isNewRooted: false,
|
||||
onMutation(mutations) {
|
||||
for (const { type } of mutations) {
|
||||
if (type === "documentUnload") {
|
||||
this._isDocumentUnloaded = true;
|
||||
} else if (type === "newRoot") {
|
||||
this._isNewRooted = true;
|
||||
}
|
||||
}
|
||||
},
|
||||
isReady() {
|
||||
return this._isDocumentUnloaded && this._isNewRooted;
|
||||
},
|
||||
};
|
||||
|
||||
const complete = () => {
|
||||
if (toolbox.walker) {
|
||||
observer.onMutation = observer.onMutation.bind(observer);
|
||||
toolbox.walker.on("mutations", observer.onMutation);
|
||||
} else {
|
||||
observer.isReady = () => true;
|
||||
}
|
||||
|
||||
const complete = async () => {
|
||||
mm.removeMessageListener("devtools:test:load", complete);
|
||||
toolUpdated.then(resolve);
|
||||
// Wait for the documentUnload and newRoot were fired.
|
||||
await waitUntil(() => observer.isReady());
|
||||
if (toolbox.walker) {
|
||||
toolbox.walker.off("mutations", observer.onMutation);
|
||||
}
|
||||
resolve();
|
||||
};
|
||||
mm.addMessageListener("devtools:test:load", complete);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче