From a2975ec273de515a432263d8138f13706a1e645a Mon Sep 17 00:00:00 2001 From: Michael Wu Date: Thu, 6 Jun 2013 17:40:49 -0400 Subject: [PATCH] Bug 869903 - Report background color on mozbrowserfirstpaint, r=jlebar --- dom/browser-element/BrowserElementChildPreload.js | 4 +++- dom/browser-element/mochitest/Makefile.in | 1 + .../mochitest/browserElement_FirstPaint.js | 12 +++++++++++- .../mochitest/file_browserElement_FirstPaint.html | 4 ++++ 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 dom/browser-element/mochitest/file_browserElement_FirstPaint.html diff --git a/dom/browser-element/BrowserElementChildPreload.js b/dom/browser-element/BrowserElementChildPreload.js index f8bcd2cf3152..c4108f63ff6f 100644 --- a/dom/browser-element/BrowserElementChildPreload.js +++ b/dom/browser-element/BrowserElementChildPreload.js @@ -187,7 +187,9 @@ BrowserElementChild.prototype = { // Registers a MozAfterPaint handler for the very first paint. this._addMozAfterPaintHandler(function () { - sendAsyncMsg('firstpaint'); + let bgColor = content.getComputedStyle(content.document.body) + .getPropertyValue('background-color'); + sendAsyncMsg('firstpaint', {backgroundColor: bgColor}); }); let self = this; diff --git a/dom/browser-element/mochitest/Makefile.in b/dom/browser-element/mochitest/Makefile.in index 8a9fc3944e8c..c6041a123560 100644 --- a/dom/browser-element/mochitest/Makefile.in +++ b/dom/browser-element/mochitest/Makefile.in @@ -69,6 +69,7 @@ MOCHITEST_FILES = \ file_browserElement_XFrameOptionsAllowFrom.html \ file_browserElement_XFrameOptionsAllowFrom.sjs \ browserElement_FirstPaint.js \ + file_browserElement_FirstPaint.html \ test_browserElement_inproc_FirstPaint.html \ browserElement_NextPaint.js \ test_browserElement_inproc_NextPaint.html \ diff --git a/dom/browser-element/mochitest/browserElement_FirstPaint.js b/dom/browser-element/mochitest/browserElement_FirstPaint.js index 37176e34505a..9a1a3ca02406 100644 --- a/dom/browser-element/mochitest/browserElement_FirstPaint.js +++ b/dom/browser-element/mochitest/browserElement_FirstPaint.js @@ -10,7 +10,9 @@ browserElementTestHelpers.addPermission(); function runTest() { var iframe = document.createElement('iframe'); + var iframe2 = document.createElement('iframe'); SpecialPowers.wrap(iframe).mozbrowser = true; + SpecialPowers.wrap(iframe2).mozbrowser = true; var gotFirstPaint = false; var gotFirstLocationChange = false; @@ -18,6 +20,8 @@ function runTest() { ok(!gotFirstPaint, "Got only one first paint."); gotFirstPaint = true; + is(e.detail.backgroundColor, "transparent", "Got the expected background color."); + if (gotFirstLocationChange) { iframe.src = browserElementTestHelpers.emptyPage1 + '?2'; } @@ -31,10 +35,16 @@ function runTest() { } } else if (e.detail.endsWith('?2')) { - SimpleTest.finish(); + document.body.appendChild(iframe2); } }); + iframe2.addEventListener('mozbrowserfirstpaint', function(e) { + is(e.detail.backgroundColor, "rgb(0, 128, 0)", "Got the expected background color."); + SimpleTest.finish(); + }); + iframe2.src = 'http://example.com/tests/dom/browser-element/mochitest/file_browserElement_FirstPaint.html'; + document.body.appendChild(iframe); iframe.src = browserElementTestHelpers.emptyPage1; diff --git a/dom/browser-element/mochitest/file_browserElement_FirstPaint.html b/dom/browser-element/mochitest/file_browserElement_FirstPaint.html new file mode 100644 index 000000000000..55f82ed1ed87 --- /dev/null +++ b/dom/browser-element/mochitest/file_browserElement_FirstPaint.html @@ -0,0 +1,4 @@ + + + +