dom/browser-element/mochitest/browserElement_NextPaint.js

changeset 2
7e26c7da4463
equal deleted inserted replaced
-1:000000000000 0:76b1e6030c68
1 /* Any copyright is dedicated to the public domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 // Bug 808231 - Add mozbrowsernextpaint 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 document.body.appendChild(iframe);
15
16 // Add a first listener that we'll remove shortly after.
17 iframe.addNextPaintListener(wrongListener);
18
19 var gotFirstNextPaintEvent = false;
20 iframe.addNextPaintListener(function () {
21 ok(!gotFirstNextPaintEvent, 'got the first nextpaint event');
22
23 // Make sure we're only called once.
24 gotFirstNextPaintEvent = true;
25
26 iframe.addNextPaintListener(function () {
27 info('got the second nextpaint event');
28 SimpleTest.finish();
29 });
30
31 // Force the iframe to repaint.
32 SimpleTest.executeSoon(function () iframe.src += '#next');
33 });
34
35 // Remove the first listener to make sure it's not called.
36 iframe.removeNextPaintListener(wrongListener);
37 iframe.src = 'file_browserElement_NextPaint.html';
38 }
39
40 function wrongListener() {
41 ok(false, 'first listener should have been removed');
42 }
43
44 addEventListener('testready', runTest);

mercurial