dom/browser-element/mochitest/browserElement_Reload.js

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 /* Any copyright is dedicated to the public domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 // Bug 741717 - Test the reload ability of <iframe mozbrowser>.
     6 "use strict";
     7 SimpleTest.waitForExplicitFinish();
     8 browserElementTestHelpers.setEnabledPref(true);
     9 browserElementTestHelpers.addPermission();
    11 var iframeScript = function() {
    12   sendAsyncMessage('test:innerHTML', {
    13     data: XPCNativeWrapper.unwrap(content).document.body.innerHTML
    14   });
    15 }
    17 var mm;
    18 var iframe;
    19 var loadedEvents = 0;
    20 var countAcc;
    22 function runTest() {
    23   iframe = document.createElement('iframe');
    24   SpecialPowers.wrap(iframe).mozbrowser = true;
    26   iframe.addEventListener('mozbrowserloadend', mozbrowserLoaded);
    28   iframe.src = 'file_bug741717.sjs';
    29   document.body.appendChild(iframe);
    30 }
    32 function iframeBodyRecv(data) {
    33   data = SpecialPowers.wrap(data);
    34   var previousCount = countAcc;
    35   var currentCount = parseInt(data.json.data, 10);
    36   countAcc = currentCount;
    37   switch (loadedEvents) {
    38   case 1:
    39     iframe.reload();
    40     break;
    41   case 2:
    42     ok(true, 'reload was triggered');
    43     ok(previousCount === currentCount, 'reload was a soft reload');
    44     iframe.reload(true);
    45     break;
    46   case 3:
    47     ok(currentCount > previousCount, 'reload was a hard reload');
    48     SimpleTest.finish();
    49   }
    50 }
    52 function mozbrowserLoaded() {
    53   loadedEvents++;
    54   mm = SpecialPowers.getBrowserFrameMessageManager(iframe);
    55   mm.addMessageListener('test:innerHTML', iframeBodyRecv);
    56   mm.loadFrameScript('data:,(' + iframeScript.toString() + ')();', false);
    57 }
    59 addEventListener('testready', runTest);

mercurial