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 +}