Bug 1638703 - Flush layout explicitly in some a11y non-e10s tests. r=Jamie

These tests insert a <browser> into the DOM via tabbrowser, and
immediately try to get a hold to the underlying document right after.

However the a11y tree is constructed after frame construction, and with
bug 1584935 there's no longer a guarantee that it gets done in time
without these explicit flushes.

Note that I couldn't reproduce these failures locally, so take the
diagnostic with a grain of salt, but I believe it's accurate and that
this is the right fix.

Differential Revision: https://phabricator.services.mozilla.com/D75715
This commit is contained in:
Emilio Cobos Álvarez 2020-05-17 22:08:47 +00:00
Родитель 2d3044d727
Коммит c12d8705fe
3 изменённых файлов: 8 добавлений и 0 удалений

Просмотреть файл

@ -44,6 +44,8 @@
tabBrowser().loadURI(aURL, {
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
});
// Flush layout, so as to guarantee that the a11y tree is constructed.
browserDocument().documentElement.getBoundingClientRect();
}
this.getID = function loadTab_getID()
@ -71,6 +73,8 @@
inBackground: true,
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
});
// Flush layout, so as to guarantee that the a11y tree is constructed.
browserDocument().documentElement.getBoundingClientRect();
}
this.getID = function loadTabInBackground_getID()

Просмотреть файл

@ -39,6 +39,8 @@
replace: true,
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
});
// Flush layout, so as to guarantee that the a11y tree is constructed.
browserDocument().documentElement.getBoundingClientRect();
}
this.finalCheck = function testTabRelations_finalCheck(aEvent)

Просмотреть файл

@ -38,6 +38,8 @@
replace: true,
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
});
// Flush layout, so as to guarantee that the a11y tree is constructed.
browserDocument().documentElement.getBoundingClientRect();
}
this.finalCheck = function testTabHierarchy_finalCheck(aEvent)