toolkit/components/viewsource/test/browser/head.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/
     3  */
     5 function openViewSourceWindow(aURI, aCallback) {
     6   let viewSourceWindow = openDialog("chrome://global/content/viewSource.xul", null, null, aURI);
     7   viewSourceWindow.addEventListener("pageshow", function pageShowHandler(event) {
     8     // Wait for the inner window to load, not viewSourceWindow.
     9     if (event.target.location == "view-source:" + aURI) {
    10       info("View source window opened: " + event.target.location);
    11       viewSourceWindow.removeEventListener("pageshow", pageShowHandler, false);
    12       aCallback(viewSourceWindow);
    13     }
    14   }, false);
    15 }
    17 function closeViewSourceWindow(aWindow, aCallback) {
    18   Services.wm.addListener({
    19     onCloseWindow: function() {
    20       Services.wm.removeListener(this);
    21       executeSoon(aCallback);
    22     }
    23   });
    24   aWindow.close();
    25 }
    27 function testViewSourceWindow(aURI, aTestCallback, aCloseCallback) {
    28   openViewSourceWindow(aURI, function(aWindow) {
    29     aTestCallback(aWindow);
    30     closeViewSourceWindow(aWindow, aCloseCallback);
    31   });
    32 }
    34 function openViewPartialSourceWindow(aReference, aCallback) {
    35   let viewSourceWindow = openDialog("chrome://global/content/viewPartialSource.xul",
    36                                     null, null, null, null, aReference, "selection");
    37   viewSourceWindow.addEventListener("pageshow", function pageShowHandler(event) {
    38     // Wait for the inner window to load, not viewSourceWindow.
    39     if (/^view-source:/.test(event.target.location)) {
    40       info("View source window opened: " + event.target.location);
    41       viewSourceWindow.removeEventListener("pageshow", pageShowHandler, false);
    42       aCallback(viewSourceWindow);
    43     }
    44   }, false);
    45 }
    47 registerCleanupFunction(function() {
    48   var windows = Services.wm.getEnumerator("navigator:view-source");
    49   ok(!windows.hasMoreElements(), "No remaining view source windows still open");
    50   while (windows.hasMoreElements())
    51     windows.getNext().close();
    52 });
    54 function openDocument(aURI, aCallback) {
    55   let tab = gBrowser.addTab(aURI);
    56   let browser = tab.linkedBrowser;
    57   browser.addEventListener("DOMContentLoaded", function pageLoadedListener() {
    58     browser.removeEventListener("DOMContentLoaded", pageLoadedListener, false);
    59     aCallback(tab);
    60   }, false);
    61   registerCleanupFunction(function() {
    62     gBrowser.removeTab(tab);
    63   });
    64 }
    66 function openDocumentSelect(aURI, aCSSSelector, aCallback) {
    67   openDocument(aURI, function(aTab) {
    68     let element = aTab.linkedBrowser.contentDocument.querySelector(aCSSSelector);
    69     let selection = aTab.linkedBrowser.contentWindow.getSelection();
    70     selection.selectAllChildren(element);
    72     openViewPartialSourceWindow(selection, aCallback);
    73   });
    74 }

mercurial