|
1 /* Any copyright is dedicated to the public domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 // Bug 787378 - Add mozbrowserfirstpaint event. |
|
5 "use strict"; |
|
6 |
|
7 SimpleTest.waitForExplicitFinish(); |
|
8 browserElementTestHelpers.setEnabledPref(true); |
|
9 browserElementTestHelpers.addPermission(); |
|
10 |
|
11 function runTest() { |
|
12 var iframe = document.createElement('iframe'); |
|
13 SpecialPowers.wrap(iframe).mozbrowser = true; |
|
14 |
|
15 var gotFirstPaint = false; |
|
16 var gotFirstLocationChange = false; |
|
17 iframe.addEventListener('mozbrowserfirstpaint', function(e) { |
|
18 ok(!gotFirstPaint, "Got only one first paint."); |
|
19 gotFirstPaint = true; |
|
20 |
|
21 if (gotFirstLocationChange) { |
|
22 iframe.src = browserElementTestHelpers.emptyPage1 + '?2'; |
|
23 } |
|
24 }); |
|
25 |
|
26 iframe.addEventListener('mozbrowserlocationchange', function(e) { |
|
27 if (e.detail == browserElementTestHelpers.emptyPage1) { |
|
28 gotFirstLocationChange = true; |
|
29 if (gotFirstPaint) { |
|
30 iframe.src = browserElementTestHelpers.emptyPage1 + '?2'; |
|
31 } |
|
32 } |
|
33 else if (e.detail.endsWith('?2')) { |
|
34 SimpleTest.finish(); |
|
35 } |
|
36 }); |
|
37 |
|
38 document.body.appendChild(iframe); |
|
39 |
|
40 iframe.src = browserElementTestHelpers.emptyPage1; |
|
41 } |
|
42 |
|
43 addEventListener('testready', runTest); |