зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1197378 - Make docshell tests pass in e10s. r=billm
This commit is contained in:
Родитель
f94484fc9a
Коммит
69b300592b
|
@ -22,15 +22,15 @@ support-files =
|
|||
parent.html
|
||||
|
||||
[test_bug13871.html]
|
||||
skip-if = buildapp == 'b2g' || buildapp == 'mulet' || toolkit == 'android' || e10s #RANDOM # Bug 1136180 disabled on B2G Desktop and Mulet for intermittent failures
|
||||
skip-if = buildapp == 'b2g' || buildapp == 'mulet' || toolkit == 'android' #RANDOM # Bug 1136180 disabled on B2G Desktop and Mulet for intermittent failures
|
||||
[test_bug270414.html]
|
||||
skip-if = buildapp == 'b2g' || buildapp == 'mulet' || toolkit == "android" || e10s # Bug 1136180 disabled on B2G Desktop and Mulet for intermittent failures
|
||||
skip-if = buildapp == 'b2g' || buildapp == 'mulet' || toolkit == "android" # Bug 1136180 disabled on B2G Desktop and Mulet for intermittent failures
|
||||
[test_bug278916.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug279495.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug344861.html]
|
||||
skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' || e10s
|
||||
skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android'
|
||||
[test_bug386782.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_bug430624.html]
|
||||
|
|
|
@ -5,6 +5,9 @@ This document contains a frame.
|
|||
<div><iframe src="blank.html"></iframe></div>
|
||||
<script>
|
||||
frames[0].name = window.name + "_child0";
|
||||
window.onload = function() {
|
||||
opener.postMessage("ready", "*");
|
||||
};
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
iframe { width: 90%; height: 50px; }
|
||||
</style>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
function runTest() {
|
||||
navigateByLocation(window0.frames[0]);
|
||||
navigateByOpen("window1_child0");
|
||||
navigateByForm("window2_child0");
|
||||
|
@ -31,10 +31,43 @@ window.onload = function () {
|
|||
}, 4);
|
||||
}
|
||||
|
||||
// Because our open()'d windows are cross-origin, we can't wait for onload.
|
||||
// We instead wait for a postMessage from parent.html.
|
||||
var windows = new Map();
|
||||
addEventListener("message", function windowLoaded(evt) {
|
||||
// Because window.open spins the event loop in order to open new windows,
|
||||
// we might receive the "ready" message before we call waitForLoad.
|
||||
// In that case, windows won't contain evt.source and we just note that the
|
||||
// window is ready. Otherwise, windows contains the "resolve" function for
|
||||
// that window's promise and we just have to call it.
|
||||
if (windows.has(evt.source)) {
|
||||
windows.get(evt.source)();
|
||||
} else {
|
||||
windows.set(evt.source, true);
|
||||
}
|
||||
});
|
||||
|
||||
var window0 = window.open("http://test1.example.org:80/tests/docshell/test/navigation/parent.html", "window0", "width=10,height=10");
|
||||
var window1 = window.open("http://test1.example.org:80/tests/docshell/test/navigation/parent.html", "window1", "width=10,height=10");
|
||||
var window2 = window.open("http://test1.example.org:80/tests/docshell/test/navigation/parent.html", "window2", "width=10,height=10");
|
||||
var window3 = window.open("http://test1.example.org:80/tests/docshell/test/navigation/parent.html", "window3", "width=10,height=10");
|
||||
|
||||
function waitForLoad(w) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
// If we already got the "ready" message, resolve immediately.
|
||||
if (windows.has(w)) {
|
||||
resolve();
|
||||
} else {
|
||||
windows.set(w, resolve);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Promise.all([ waitForLoad(window0),
|
||||
waitForLoad(window1),
|
||||
waitForLoad(window2),
|
||||
waitForLoad(window3) ])
|
||||
.then(runTest);
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
|
Загрузка…
Ссылка в новой задаче