зеркало из https://github.com/mozilla/pjs.git
kill browser-2.js
This commit is contained in:
Родитель
ac574a2f13
Коммит
4cd39a3698
|
@ -22,6 +22,8 @@
|
|||
* Contributor(s):
|
||||
* Blake Ross <blakeross@telocity.com>
|
||||
* Peter Annema <disttsc@bart.nl>
|
||||
* Samir Gehani <sgehani@netscape.com>
|
||||
*
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
@ -1862,3 +1864,314 @@ function OpenBrowserWindow()
|
|||
}
|
||||
}
|
||||
|
||||
const nsIWebNavigation = Components.interfaces.nsIWebNavigation;
|
||||
var gPrintSettings = null;
|
||||
var gChromeState = null; // chrome state before we went into print preview
|
||||
var gOldCloseHandler = null; // close handler before we went into print preview
|
||||
|
||||
function getWebNavigation()
|
||||
{
|
||||
try {
|
||||
return getBrowser().webNavigation;
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function BrowserReloadWithFlags(reloadFlags)
|
||||
{
|
||||
/* First, we'll try to use the session history object to reload so
|
||||
* that framesets are handled properly. If we're in a special
|
||||
* window (such as view-source) that has no session history, fall
|
||||
* back on using the web navigation's reload method.
|
||||
*/
|
||||
|
||||
var webNav = getWebNavigation();
|
||||
try {
|
||||
var sh = webNav.sessionHistory;
|
||||
if (sh)
|
||||
webNav = sh.QueryInterface(Components.interfaces.nsIWebNavigation);
|
||||
} catch (e) {
|
||||
}
|
||||
|
||||
try {
|
||||
webNav.reload(reloadFlags);
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
|
||||
function toggleAffectedChrome(aHide)
|
||||
{
|
||||
// chrome to toggle includes:
|
||||
// (*) menubar
|
||||
// (*) navigation bar
|
||||
// (*) personal toolbar
|
||||
// (*) tab browser ``strip''
|
||||
|
||||
if (!gChromeState)
|
||||
gChromeState = new Object;
|
||||
var chrome = new Array;
|
||||
var i = 0;
|
||||
chrome[i++] = document.getElementById("main-menubar");
|
||||
chrome[i++] = document.getElementById("nav-bar");
|
||||
chrome[i++] = document.getElementById("LocationToolbar");
|
||||
chrome[i++] = document.getElementById("PersonalToolbar");
|
||||
chrome[i++] = document.getElementById("status-bar");
|
||||
|
||||
// now that we've figured out which elements we're interested, toggle 'em
|
||||
for (i = 0; i < chrome.length; ++i)
|
||||
{
|
||||
if (aHide)
|
||||
chrome[i].hidden = true;
|
||||
else
|
||||
chrome[i].hidden = false;
|
||||
}
|
||||
|
||||
// now deal with the tab browser ``strip''
|
||||
var theTabbrowser = document.getElementById("content");
|
||||
if (aHide) // normal mode -> print preview
|
||||
{
|
||||
gChromeState.hadTabStrip = theTabbrowser.getStripVisibility();
|
||||
theTabbrowser.setStripVisibilityTo(false);
|
||||
}
|
||||
else // print preview -> normal mode
|
||||
{
|
||||
// tabs were showing before entering print preview
|
||||
if (gChromeState.hadTabStrip)
|
||||
{
|
||||
theTabbrowser.setStripVisibilityTo(true);
|
||||
gChromeState.hadTabStrip = false; // reset
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function showPrintPreviewToolbar()
|
||||
{
|
||||
toggleAffectedChrome(true);
|
||||
const kXULNS =
|
||||
"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
var printPreviewTB = document.createElementNS(kXULNS, "toolbar");
|
||||
printPreviewTB.setAttribute("printpreview", true);
|
||||
printPreviewTB.setAttribute("id", "print-preview-toolbar");
|
||||
var navTB = document.getElementById("nav-bar");
|
||||
navTB.parentNode.appendChild(printPreviewTB);
|
||||
}
|
||||
|
||||
function BrowserExitPrintPreview()
|
||||
{
|
||||
// exit print preview galley mode in content area
|
||||
var ifreq = _content.QueryInterface(
|
||||
Components.interfaces.nsIInterfaceRequestor);
|
||||
var webBrowserPrint = ifreq.getInterface(
|
||||
Components.interfaces.nsIWebBrowserPrint);
|
||||
webBrowserPrint.exitPrintPreview();
|
||||
_content.focus();
|
||||
|
||||
// remove the print preview toolbar
|
||||
var navTB = document.getElementById("nav-bar");
|
||||
var printPreviewTB = document.getElementById("print-preview-toolbar");
|
||||
navTB.parentNode.removeChild(printPreviewTB);
|
||||
|
||||
// restore chrome to original state
|
||||
toggleAffectedChrome(false);
|
||||
|
||||
// restore old onclose handler if we found one before previewing
|
||||
var mainWin = document.getElementById("main-window");
|
||||
mainWin.setAttribute("onclose", gOldCloseHandler);
|
||||
}
|
||||
|
||||
function GetPrintSettings(webBrowserPrint)
|
||||
{
|
||||
var prevPS = gPrintSettings;
|
||||
|
||||
try {
|
||||
if (gPrintSettings == null) {
|
||||
var useGlobalPrintSettings = true;
|
||||
var pref = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
if (pref) {
|
||||
useGlobalPrintSettings = pref.getBoolPref("print.use_global_printsettings", false);
|
||||
}
|
||||
|
||||
if (useGlobalPrintSettings) {
|
||||
gPrintSettings = webBrowserPrint.globalPrintSettings;
|
||||
} else {
|
||||
gPrintSettings = webBrowserPrint.newPrintSettings;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
dump("GetPrintSettings "+e);
|
||||
}
|
||||
|
||||
return gPrintSettings;
|
||||
}
|
||||
|
||||
function BrowserPrintPreview()
|
||||
{
|
||||
var mainWin = document.getElementById("main-window");
|
||||
|
||||
// save previous close handler to restoreon exiting print preview mode
|
||||
if (mainWin.hasAttribute("onclose"))
|
||||
gOldCloseHandler = mainWin.getAttribute("onclose");
|
||||
else
|
||||
gOldCloseHandler = null;
|
||||
mainWin.setAttribute("onclose", "BrowserExitPrintPreview(); return false;");
|
||||
|
||||
try {
|
||||
var ifreq = _content.QueryInterface(
|
||||
Components.interfaces.nsIInterfaceRequestor);
|
||||
var webBrowserPrint = ifreq.getInterface(
|
||||
Components.interfaces.nsIWebBrowserPrint);
|
||||
if (webBrowserPrint) {
|
||||
gPrintSettings = GetPrintSettings(webBrowserPrint);
|
||||
webBrowserPrint.printPreview(gPrintSettings);
|
||||
}
|
||||
// show the toolbar after we go into print preview mode so
|
||||
// that we can initialize the toolbar with total num pages
|
||||
showPrintPreviewToolbar();
|
||||
|
||||
_content.focus();
|
||||
} catch (e) {
|
||||
// Pressing cancel is expressed as an NS_ERROR_ABORT return value,
|
||||
// causing an exception to be thrown which we catch here.
|
||||
// Unfortunately this will also consume helpful failures, so add a
|
||||
// dump(e); // if you need to debug
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function BrowserPrintSetup()
|
||||
{
|
||||
|
||||
try {
|
||||
var ifreq = _content.QueryInterface(Components.interfaces.nsIInterfaceRequestor);
|
||||
var webBrowserPrint = ifreq.getInterface(Components.interfaces.nsIWebBrowserPrint);
|
||||
if (webBrowserPrint) {
|
||||
gPrintSettings = GetPrintSettings(webBrowserPrint);
|
||||
}
|
||||
|
||||
goPageSetup(gPrintSettings); // from utilityOverlay.js
|
||||
|
||||
if (webBrowserPrint) {
|
||||
if (webBrowserPrint.doingPrintPreview) {
|
||||
webBrowserPrint.printPreview(gPrintSettings);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
dump("BrowserPrintSetup "+e);
|
||||
}
|
||||
}
|
||||
|
||||
function BrowserPrint()
|
||||
{
|
||||
try {
|
||||
var ifreq = _content.QueryInterface(Components.interfaces.nsIInterfaceRequestor);
|
||||
var webBrowserPrint = ifreq.getInterface(Components.interfaces.nsIWebBrowserPrint);
|
||||
if (webBrowserPrint) {
|
||||
gPrintSettings = GetPrintSettings(webBrowserPrint);
|
||||
webBrowserPrint.print(gPrintSettings, null);
|
||||
}
|
||||
} catch (e) {
|
||||
// Pressing cancel is expressed as an NS_ERROR_ABORT return value,
|
||||
// causing an exception to be thrown which we catch here.
|
||||
// Unfortunately this will also consume helpful failures, so add a
|
||||
// dump(e); // if you need to debug
|
||||
}
|
||||
}
|
||||
|
||||
function BrowserSetDefaultCharacterSet(aCharset)
|
||||
{
|
||||
// no longer needed; set when setting Force; see bug 79608
|
||||
}
|
||||
|
||||
function BrowserSetForcedCharacterSet(aCharset)
|
||||
{
|
||||
var docCharset = getBrowser().docShell.QueryInterface(
|
||||
Components.interfaces.nsIDocCharset);
|
||||
docCharset.charset = aCharset;
|
||||
BrowserReloadWithFlags(nsIWebNavigation.LOAD_FLAGS_CHARSET_CHANGE);
|
||||
}
|
||||
|
||||
function BrowserSetForcedDetector()
|
||||
{
|
||||
getBrowser().documentCharsetInfo.forcedDetector = true;
|
||||
}
|
||||
|
||||
function BrowserFind()
|
||||
{
|
||||
var focusedWindow = document.commandDispatcher.focusedWindow;
|
||||
if (!focusedWindow || focusedWindow == window)
|
||||
focusedWindow = window._content;
|
||||
|
||||
findInPage(getBrowser(), window._content, focusedWindow)
|
||||
}
|
||||
|
||||
function BrowserFindAgain()
|
||||
{
|
||||
var focusedWindow = document.commandDispatcher.focusedWindow;
|
||||
if (!focusedWindow || focusedWindow == window)
|
||||
focusedWindow = window._content;
|
||||
|
||||
findAgainInPage(getBrowser(), window._content, focusedWindow)
|
||||
}
|
||||
|
||||
function BrowserCanFindAgain()
|
||||
{
|
||||
return canFindAgainInPage();
|
||||
}
|
||||
|
||||
function getMarkupDocumentViewer()
|
||||
{
|
||||
return getBrowser().markupDocumentViewer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Content area tooltip.
|
||||
* XXX - this must move into XBL binding/equiv! Do not want to pollute
|
||||
* navigator.js with functionality that can be encapsulated into
|
||||
* browser widget. TEMPORARY!
|
||||
*
|
||||
* NOTE: Any changes to this routine need to be mirrored in ChromeListener::FindTitleText()
|
||||
* (located in mozilla/embedding/browser/webBrowser/nsDocShellTreeOwner.cpp)
|
||||
* which performs the same function, but for embedded clients that
|
||||
* don't use a XUL/JS layer. It is important that the logic of
|
||||
* these two routines be kept more or less in sync.
|
||||
* (pinkerton)
|
||||
**/
|
||||
function FillInHTMLTooltip(tipElement)
|
||||
{
|
||||
var retVal = false;
|
||||
if (tipElement.namespaceURI == "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul")
|
||||
return retVal;
|
||||
|
||||
const XLinkNS = "http://www.w3.org/1999/xlink";
|
||||
|
||||
|
||||
var titleText = null;
|
||||
var XLinkTitleText = null;
|
||||
|
||||
while (!titleText && !XLinkTitleText && tipElement) {
|
||||
if (tipElement.nodeType == Node.ELEMENT_NODE) {
|
||||
titleText = tipElement.getAttribute("title");
|
||||
XLinkTitleText = tipElement.getAttributeNS(XLinkNS, "title");
|
||||
}
|
||||
tipElement = tipElement.parentNode;
|
||||
}
|
||||
|
||||
var texts = [titleText, XLinkTitleText];
|
||||
var tipNode = document.getElementById("aHTMLTooltip");
|
||||
|
||||
for (var i = 0; i < texts.length; ++i) {
|
||||
var t = texts[i];
|
||||
if (t && t.search(/\S/) >= 0) {
|
||||
tipNode.setAttribute("label", t);
|
||||
retVal = true;
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -71,7 +71,6 @@ Contributor(s): ______________________________________. -->
|
|||
<script type="application/x-javascript" src="chrome://browser/content/personalToolbar.js"/>
|
||||
|
||||
<script type="application/x-javascript" src="chrome://browser/content/browser.js"/>
|
||||
<script type="application/x-javascript" src="chrome://browser/content/browser-2.js"/>
|
||||
<script type="application/x-javascript" src="chrome://browser/content/navigatorDD.js"/>
|
||||
<script type="application/x-javascript" src="chrome://browser/content/sessionHistoryUI.js"/>
|
||||
<script type="application/x-javascript" src="chrome://global/content/charsetOverlay.js"/>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
browser.jar:
|
||||
content/browser/contents.rdf (content/contents.rdf)
|
||||
content/browser/browser-2.js (content/browser-2.js)
|
||||
content/browser/pageInfo.js (content/pageInfo.js)
|
||||
content/browser/pageInfo.xul (content/pageInfo.xul)
|
||||
content/browser/browser.xul (content/browser.xul)
|
||||
|
|
Загрузка…
Ссылка в новой задаче