summaryrefslogtreecommitdiffstats
path: root/dom/browser-element/mochitest/browserElement_NextPaint.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/browser-element/mochitest/browserElement_NextPaint.js')
-rw-r--r--dom/browser-element/mochitest/browserElement_NextPaint.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/dom/browser-element/mochitest/browserElement_NextPaint.js b/dom/browser-element/mochitest/browserElement_NextPaint.js
new file mode 100644
index 000000000..749a8efe3
--- /dev/null
+++ b/dom/browser-element/mochitest/browserElement_NextPaint.js
@@ -0,0 +1,43 @@
+/* Any copyright is dedicated to the public domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Bug 808231 - Add mozbrowsernextpaint event.
+"use strict";
+
+SimpleTest.waitForExplicitFinish();
+browserElementTestHelpers.setEnabledPref(true);
+
+function runTest() {
+ var iframe = document.createElement('iframe');
+ iframe.setAttribute('mozbrowser', 'true');
+ document.body.appendChild(iframe);
+
+ // Add a first listener that we'll remove shortly after.
+ iframe.addNextPaintListener(wrongListener);
+
+ var gotFirstNextPaintEvent = false;
+ iframe.addNextPaintListener(function () {
+ ok(!gotFirstNextPaintEvent, 'got the first nextpaint event');
+
+ // Make sure we're only called once.
+ gotFirstNextPaintEvent = true;
+
+ iframe.addNextPaintListener(function () {
+ info('got the second nextpaint event');
+ SimpleTest.finish();
+ });
+
+ // Force the iframe to repaint.
+ SimpleTest.executeSoon(() => iframe.src += '#next');
+ });
+
+ // Remove the first listener to make sure it's not called.
+ iframe.removeNextPaintListener(wrongListener);
+ iframe.src = 'file_browserElement_NextPaint.html';
+}
+
+function wrongListener() {
+ ok(false, 'first listener should have been removed');
+}
+
+addEventListener('testready', runTest);