browser/base/content/web-panels.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/browser/base/content/web-panels.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,103 @@
     1.4 +/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
     1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.8 +
     1.9 +const NS_ERROR_MODULE_NETWORK = 2152398848;
    1.10 +const NS_NET_STATUS_READ_FROM = NS_ERROR_MODULE_NETWORK + 8;
    1.11 +const NS_NET_STATUS_WROTE_TO  = NS_ERROR_MODULE_NETWORK + 9;
    1.12 +
    1.13 +function getPanelBrowser()
    1.14 +{
    1.15 +    return document.getElementById("web-panels-browser");
    1.16 +}
    1.17 +
    1.18 +var panelProgressListener = {
    1.19 +    onProgressChange : function (aWebProgress, aRequest,
    1.20 +                                 aCurSelfProgress, aMaxSelfProgress,
    1.21 +                                 aCurTotalProgress, aMaxTotalProgress) {
    1.22 +    },
    1.23 +    
    1.24 +    onStateChange : function(aWebProgress, aRequest, aStateFlags, aStatus)
    1.25 +    {
    1.26 +        if (!aRequest)
    1.27 +          return;
    1.28 +
    1.29 +        //ignore local/resource:/chrome: files
    1.30 +        if (aStatus == NS_NET_STATUS_READ_FROM || aStatus == NS_NET_STATUS_WROTE_TO)
    1.31 +           return;
    1.32 +
    1.33 +        if (aStateFlags & Ci.nsIWebProgressListener.STATE_START && 
    1.34 +            aStateFlags & Ci.nsIWebProgressListener.STATE_IS_NETWORK) {
    1.35 +            window.parent.document.getElementById('sidebar-throbber').setAttribute("loading", "true");
    1.36 +        }
    1.37 +        else if (aStateFlags & Ci.nsIWebProgressListener.STATE_STOP &&
    1.38 +                aStateFlags & Ci.nsIWebProgressListener.STATE_IS_NETWORK) {
    1.39 +            window.parent.document.getElementById('sidebar-throbber').removeAttribute("loading");
    1.40 +        }
    1.41 +    }
    1.42 +    ,
    1.43 +
    1.44 +    onLocationChange : function(aWebProgress, aRequest, aLocation, aFlags) {
    1.45 +        UpdateBackForwardCommands(getPanelBrowser().webNavigation);
    1.46 +    },
    1.47 +
    1.48 +    onStatusChange : function(aWebProgress, aRequest, aStatus, aMessage) {
    1.49 +    },
    1.50 +
    1.51 +    onSecurityChange : function(aWebProgress, aRequest, aState) { 
    1.52 +    },
    1.53 +
    1.54 +    QueryInterface : function(aIID)
    1.55 +    {
    1.56 +        if (aIID.equals(Ci.nsIWebProgressListener) ||
    1.57 +            aIID.equals(Ci.nsISupportsWeakReference) ||
    1.58 +            aIID.equals(Ci.nsISupports))
    1.59 +            return this;
    1.60 +        throw Cr.NS_NOINTERFACE;
    1.61 +    }
    1.62 +};
    1.63 +
    1.64 +var gLoadFired = false;
    1.65 +function loadWebPanel(aURI) {
    1.66 +    var panelBrowser = getPanelBrowser();
    1.67 +    if (gLoadFired) {
    1.68 +        panelBrowser.webNavigation
    1.69 +                    .loadURI(aURI, nsIWebNavigation.LOAD_FLAGS_NONE,
    1.70 +                             null, null, null);
    1.71 +    }
    1.72 +    panelBrowser.setAttribute("cachedurl", aURI);
    1.73 +}
    1.74 +
    1.75 +function load()
    1.76 +{
    1.77 +    var panelBrowser = getPanelBrowser();
    1.78 +    panelBrowser.webProgress.addProgressListener(panelProgressListener,
    1.79 +                                                 Ci.nsIWebProgress.NOTIFY_ALL);
    1.80 +    var cachedurl = panelBrowser.getAttribute("cachedurl")
    1.81 +    if (cachedurl) {
    1.82 +        panelBrowser.webNavigation
    1.83 +                    .loadURI(cachedurl, nsIWebNavigation.LOAD_FLAGS_NONE, null,
    1.84 +                             null, null);
    1.85 +    }
    1.86 +
    1.87 +    gLoadFired = true;
    1.88 +}
    1.89 +
    1.90 +function unload()
    1.91 +{
    1.92 +    getPanelBrowser().webProgress.removeProgressListener(panelProgressListener);
    1.93 +}
    1.94 +
    1.95 +function PanelBrowserStop()
    1.96 +{
    1.97 +    getPanelBrowser().webNavigation.stop(nsIWebNavigation.STOP_ALL)
    1.98 +}
    1.99 +
   1.100 +function PanelBrowserReload()
   1.101 +{
   1.102 +    getPanelBrowser().webNavigation
   1.103 +                     .sessionHistory
   1.104 +                     .QueryInterface(nsIWebNavigation)
   1.105 +                     .reload(nsIWebNavigation.LOAD_FLAGS_NONE);
   1.106 +}

mercurial