From 28571cbae4c2f6555afaa9108cc32496923e2e74 Mon Sep 17 00:00:00 2001 From: "timeless%mozdev.org" Date: Tue, 15 Apr 2003 01:49:51 +0000 Subject: [PATCH] Bug 197671 Separate "When Navigator starts up" from "What a new tab/window does" preferences patch by ian@arlen.demon.co.uk r=timeless sr=jag git-svn-id: svn://10.0.0.236/trunk@141147 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/modules/libpref/src/init/all.js | 8 ++++++ .../browser/resources/content/navigator.js | 27 +++++++++++++++--- .../resources/content/tasksOverlay.js | 28 ++++++++++++++++++- 3 files changed, 58 insertions(+), 5 deletions(-) diff --git a/mozilla/modules/libpref/src/init/all.js b/mozilla/modules/libpref/src/init/all.js index 8904c4edb5a..e173661ab9a 100644 --- a/mozilla/modules/libpref/src/init/all.js +++ b/mozilla/modules/libpref/src/init/all.js @@ -198,6 +198,14 @@ pref("browser.tabs.opentabfor.urlbar", false); pref("browser.tabs.opentabfor.windowopen", false); pref("browser.tabs.opentabfor.bookmarks", false); + // lets new tab/window load something different than first window + // -1 - use navigator startup preference + // 0 - loads blank page + // 1 - loads home page + // 2 - loads last page visited + pref("browser.tabs.loadOnNewTab", 0); + pref("browser.windows.loadOnNewWindow", 0); + // view source pref("view_source.syntax_highlight", true); pref("view_source.wrap_long_lines", false); diff --git a/mozilla/xpfe/browser/resources/content/navigator.js b/mozilla/xpfe/browser/resources/content/navigator.js index c42e3139d25..4c40de3cc9a 100644 --- a/mozilla/xpfe/browser/resources/content/navigator.js +++ b/mozilla/xpfe/browser/resources/content/navigator.js @@ -1028,11 +1028,30 @@ function BrowserOpenWindow() function BrowserOpenTab() { if (!gInPrintPreviewMode) { - var handler = Components.classes['@mozilla.org/commandlinehandler/general-startup;1?type=browser'] - .getService(Components.interfaces.nsICmdLineHandler); - var uriToLoad = handler.defaultArgs.split("\n")[0]; - if (/^\s*$/.test(uriToLoad)) + var uriToLoad; + try { + switch ( pref.getIntPref("browser.tabs.loadOnNewTab") ) + { + case -1: + var handler = Components.classes['@mozilla.org/commandlinehandler/general-startup;1?type=browser'] + .getService(Components.interfaces.nsICmdLineHandler); + uriToLoad = handler.defaultArgs.split("\n")[0]; + if (!/\S/.test(uriToLoad)) + uriToLoad = "about:blank"; + break; + default: + uriToLoad = "about:blank"; + break; + case 1: + uriToLoad = pref.getCharPref("browser.startup.homepage"); + break; + case 2: + uriToLoad = getWebNavigation().currentURI.spec; + break; + } + } catch(e) { uriToLoad = "about:blank"; + } gBrowser.selectedTab = gBrowser.addTab(uriToLoad); var navBar = document.getElementById("nav-bar"); diff --git a/mozilla/xpfe/communicator/resources/content/tasksOverlay.js b/mozilla/xpfe/communicator/resources/content/tasksOverlay.js index 773cc08ff01..3550a69ea4d 100644 --- a/mozilla/xpfe/communicator/resources/content/tasksOverlay.js +++ b/mozilla/xpfe/communicator/resources/content/tasksOverlay.js @@ -110,9 +110,35 @@ function OpenBrowserWindow() var handler = Components.classes['@mozilla.org/commandlinehandler/general-startup;1?type=browser']; handler = handler.getService(); handler = handler.QueryInterface(Components.interfaces.nsICmdLineHandler); - var startpage = handler.defaultArgs; var url = handler.chromeUrlForTask; var wintype = document.firstChild.getAttribute('windowtype'); + var startpage; + + // if current window is a browser window then check pref for how new window should be opened + if (wintype == "navigator:browser") + { + try { + switch ( pref.getIntPref("browser.windows.loadOnNewWindow") ) + { + case -1: + startpage = handler.defaultArgs; + break; + default: + startpage = "about:blank"; + break; + case 1: + startpage = getHomePage().join("\n"); + break; + case 2: + startpage = getWebNavigation().currentURI.spec; + break; + } + } catch(e) { + startpage = "about:blank"; + } + } else { + startpage = handler.defaultArgs; + } // if and only if the current window is a browser window and it has a document with a character // set, then extract the current charset menu setting from the current document and use it to