mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 00:08:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
142
docshell/test/test_bug570341.html
Normal file
142
docshell/test/test_bug570341.html
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=570341
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 570341</title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
<script>
|
||||
var start = Date.now();
|
||||
var moments = {};
|
||||
|
||||
var unload = 0;
|
||||
var wasEnabled = true;
|
||||
|
||||
function collectMoments() {
|
||||
var win = frames[0];
|
||||
var timing = (win.performance && win.performance.timing) || {};
|
||||
for (var p in timing) {
|
||||
moments[p] = timing[p];
|
||||
}
|
||||
for (var p in win) {
|
||||
if (p.substring(0,9) == '_testing_') {
|
||||
moments[p.substring(9)] = win[p];
|
||||
}
|
||||
}
|
||||
moments['evt_unload'] = unload;
|
||||
return moments;
|
||||
}
|
||||
|
||||
function showSequence(node){
|
||||
while(node.firstChild) {
|
||||
node.removeChild(node.firstChild);
|
||||
}
|
||||
var sequence = [];
|
||||
for (var p in moments) {
|
||||
sequence.push(p);
|
||||
}
|
||||
sequence.sort(function(a, b){
|
||||
return moments[a] - moments[b];
|
||||
});
|
||||
table = document.createElement('table');
|
||||
node.appendChild(table);
|
||||
row = document.createElement('tr');
|
||||
table.appendChild(row);
|
||||
cell = document.createElement('td');
|
||||
row.appendChild(cell);
|
||||
cell.appendChild(document.createTextNode('start'));
|
||||
cell = document.createElement('td');
|
||||
row.appendChild(cell);
|
||||
cell.appendChild(document.createTextNode(start));
|
||||
for (var i = 0; i < sequence.length; ++i) {
|
||||
var prop = sequence[i];
|
||||
row = document.createElement('tr');
|
||||
table.appendChild(row);
|
||||
cell = document.createElement('td');
|
||||
row.appendChild(cell);
|
||||
cell.appendChild(document.createTextNode(prop));
|
||||
cell = document.createElement('td');
|
||||
row.appendChild(cell);
|
||||
cell.appendChild(document.createTextNode(moments[prop]));
|
||||
}
|
||||
}
|
||||
|
||||
function checkValues(){
|
||||
var win = frames[0];
|
||||
ok(win.performance,
|
||||
'window.performance is missing or not accessible for frame');
|
||||
ok(!win.performance || win.performance.timing,
|
||||
'window.performance.timing is missing or not accessible for frame');
|
||||
collectMoments();
|
||||
|
||||
var sequences = [
|
||||
['navigationStart', 'unloadEventStart', 'unloadEventEnd'],
|
||||
['navigationStart', 'fetchStart', 'domainLookupStart', 'domainLookupEnd',
|
||||
'connectStart', 'connectEnd', 'requestStart', 'responseStart', 'responseEnd'],
|
||||
['responseStart', 'domLoading', 'domInteractive', 'domComplete'],
|
||||
['domContentLoadedEventStart', 'domContentLoadedEventEnd',
|
||||
'loadEventStart', 'loadEventEnd']
|
||||
]
|
||||
|
||||
for (var i = 0; i < sequences.length; ++i) {
|
||||
var seq = sequences[i];
|
||||
for (var j = 0; j < seq.length; ++j) {
|
||||
var prop = seq[j];
|
||||
if (j > 0) {
|
||||
var prevProp = seq[j-1];
|
||||
ok(moments[prevProp] <= moments[prop],
|
||||
['Expected ', prevProp, ' to happen before ', prop,
|
||||
', got ', prevProp, ' = ', moments[prevProp],
|
||||
', ', prop, ' = ', moments[prop]].join(''));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SimpleTest.finish()
|
||||
}
|
||||
|
||||
window.onload = function() {
|
||||
var win = frames[0];
|
||||
win.addEventListener('unload', function(){
|
||||
unload = Date.now();
|
||||
}, true);
|
||||
var seenLoad = 0;
|
||||
win.addEventListener('load', function (){
|
||||
seenLoad = Date.now();
|
||||
}, true);
|
||||
frames[0].location = 'bug570341_recordevents.html'
|
||||
var interval = setInterval(function () {
|
||||
// time constants here are arbitrary, chosen to allow the test to pass
|
||||
var stopPolling = (win.performance && win.performance.loadEventEnd) ||
|
||||
(seenLoad && Date.now() >= seenLoad + 3000) ||
|
||||
Date.now() >= start + 30000;
|
||||
if (stopPolling) {
|
||||
clearInterval(interval);
|
||||
checkValues();
|
||||
} else if (win._testing_evt_load) {
|
||||
seenLoad = Date.now();
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=570341">Mozilla Bug 570341</a>
|
||||
<div id="frames">
|
||||
<iframe name="child0" src="navigation/blank.html"></iframe>
|
||||
</div>
|
||||
<button type="button" onclick="showSequence(document.getElementById('display'))">
|
||||
Show Events</button>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script type="application/javascript">
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue