diff --git a/mozilla/browser/base/content/browser.js b/mozilla/browser/base/content/browser.js
index 113a6271f48..c7d4bef35fa 100644
--- a/mozilla/browser/base/content/browser.js
+++ b/mozilla/browser/base/content/browser.js
@@ -49,7 +49,6 @@ var gURLBar = null;
var gProxyButton = null;
var gProxyFavIcon = null;
var gProxyDeck = null;
-var gSearchService = null;
var gNavigatorBundle;
var gBrandBundle;
var gLastValidURLStr = "";
@@ -58,6 +57,8 @@ var gHaveUpdatedToolbarState = false;
var gClickSelectsAll = true;
var gIgnoreFocus = false;
var gIgnoreClick = false;
+var gToolbarMode = "icons";
+var gIconSize = "";
var gPrefService = null;
@@ -72,8 +73,6 @@ var gContextMenu = null;
// Global variable that caches the default search engine info
var gDefaultEngine = null;
-var gBookmarkPopup = null;
-
const nsIWebNavigation = Components.interfaces.nsIWebNavigation;
var gPrintSettingsAreGlobal = true;
var gSavePrintSettings = true;
@@ -509,10 +508,15 @@ function addBookmarkAs(aBrowser)
BookmarksUtils.addBookmarkForBrowser(aBrowser.webNavigation, true);
}
-function BrowserOpenWindow()
+function openLocation()
{
- //opens a window where users can select a web location to open
- openDialog("chrome://communicator/content/openLocation.xul", "_blank", "chrome,modal,titlebar", window);
+ if (gURLBar && !document.getElementById("nav-bar").hidden) {
+ gURLBar.focus();
+ gURLBar.select();
+ }
+ else {
+ openDialog("chrome://browser/content/openLocation.xul", "_blank", "chrome,modal,titlebar", window);
+ }
}
function BrowserOpenTab()
@@ -1047,20 +1051,6 @@ function checkForDefaultBrowser()
}
}
-function ShowAndSelectContentsOfURLBar()
-{
- var navBar = document.getElementById("nav-bar");
-
- // If it's hidden, show it.
- if (navBar.getAttribute("hidden") == "true")
- goToggleToolbar('nav-bar','toggle_navbar');
-
- if (gURLBar.value)
- gURLBar.select();
- else
- gURLBar.focus();
-}
-
// If "ESC" is pressed in the url bar, we replace the urlbar's value with the url of the page
// and highlight it, unless it is about:blank, where we reset it to "".
function handleURLBarRevert()
@@ -1214,6 +1204,7 @@ function BrowserFullScreen()
function onFullScreen()
{
FullScreen.toggle();
+
}
// Set up a lame hack to avoid opening two bookmarks.
@@ -2499,7 +2490,16 @@ var FullScreen =
for (i = 0; i < els.length; ++i) {
// XXX don't interfere with previously collapsed toolbars
if (els[i].getAttribute("fullscreentoolbar") == "true") {
- this.setToolbarButtonMode(els[i], aShow ? "" : "small");
+ if (!aShow) {
+ gToolbarMode = els[i].getAttribute("mode");
+ gIconSize = els[i].getAttribute("iconsize");
+ els[i].setAttribute("mode", "icons");
+ els[i].setAttribute("iconsize", "small");
+ }
+ else {
+ els[i].setAttribute("mode", gToolbarMode);
+ els[i].setAttribute("iconsize", gIconSize);
+ }
} else {
// use moz-collapsed so it doesn't persist hidden/collapsed,
// so that new windows don't have missing toolbars
@@ -2514,25 +2514,6 @@ var FullScreen =
for (i = 0; i < controls.length; ++i)
controls[i].hidden = aShow;
},
-
- setToolbarButtonMode: function(aToolbar, aMode)
- {
- aToolbar.setAttribute("toolbarmode", aMode);
- this.setToolbarButtonModeFor(aToolbar, "toolbarbutton", aMode);
- this.setToolbarButtonModeFor(aToolbar, "button", aMode);
- this.setToolbarButtonModeFor(aToolbar, "textbox", aMode);
- },
-
- setToolbarButtonModeFor: function(aToolbar, aTag, aMode)
- {
- var XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
- var els = aToolbar.getElementsByTagNameNS(XULNS, aTag);
-
- for (var i = 0; i < els.length; ++i) {
- els[i].setAttribute("toolbarmode", aMode);
- }
- }
-
};
const NS_ERROR_MODULE_NETWORK = 2152398848;
@@ -2799,7 +2780,9 @@ nsBrowserStatusHandler.prototype =
// Do not update urlbar if there was a subframe navigation
if (aWebProgress.DOMWindow == content) {
- if (!this.userTyped.value) {
+ //XXXBlake don't we have to reinit this.urlBar, etc.
+ // when the toolbar changes?
+ if (this.urlBar && !this.userTyped.value) {
// If the url has "wyciwyg://" as the protocol, strip it off.
// Nobody wants to see it on the urlbar for dynamically generated
// pages.
diff --git a/mozilla/browser/base/content/browser.xul b/mozilla/browser/base/content/browser.xul
index c9cd4fcc29d..79d250de12f 100644
--- a/mozilla/browser/base/content/browser.xul
+++ b/mozilla/browser/base/content/browser.xul
@@ -165,7 +165,8 @@ Contributor(s):
-
+
+
@@ -174,7 +175,7 @@ Contributor(s):
command="cmd_newNavigator"
modifiers="accel"/>
-
@@ -405,6 +406,7 @@ Contributor(s):
command="cmd_newNavigator"/>
+
diff --git a/mozilla/browser/base/content/customizeToolbar.js b/mozilla/browser/base/content/customizeToolbar.js
index 22795f3b7e6..2631dbb7002 100644
--- a/mozilla/browser/base/content/customizeToolbar.js
+++ b/mozilla/browser/base/content/customizeToolbar.js
@@ -55,8 +55,10 @@ function buildDialog()
if (!modeValue)
modeValue = "full";
modeList.value = modeValue;
- if (modeValue == "text")
+ if (modeValue == "text") {
useSmallIcons.disabled = true;
+ useSmallIcons.checked = false;
+ }
var cloneToolbarBox = document.getElementById("cloned-bar-container");
var paletteBox = document.getElementById("palette-box");
@@ -556,5 +558,12 @@ function updateToolbarMode(modeValue)
gToolbarChanged = true;
var iconSizeCheckbox = document.getElementById("smallicons");
- iconSizeCheckbox.disabled = modeValue == "text";
+ if (modeValue == "text") {
+ iconSizeCheckbox.disabled = true;
+ iconSizeCheckbox.checked = false;
+ updateIconSize(false);
+ }
+ else {
+ iconSizeCheckbox.disabled = false;
+ }
}
\ No newline at end of file
diff --git a/mozilla/browser/base/content/openLocation.js b/mozilla/browser/base/content/openLocation.js
new file mode 100644
index 00000000000..b81c8198cc6
--- /dev/null
+++ b/mozilla/browser/base/content/openLocation.js
@@ -0,0 +1,154 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Netscape Public
+ * License Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March
+ * 31, 1998.
+ *
+ * The Initial Developer of the Original Code is Netscape Communications
+ * Corporation. Portions created by Netscape are
+ * Copyright (C) 1998 Netscape Communications Corporation. All
+ * Rights Reserved.
+ *
+ * Contributor(s): Michael Lowe
+ * Blake Ross
+ */
+
+var browser;
+var dialog = {};
+var pref = null;
+try {
+ pref = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefBranch);
+} catch (ex) {
+ // not critical, remain silent
+}
+
+function onLoad()
+{
+ dialog.input = document.getElementById("dialog.input");
+ dialog.open = document.documentElement.getButton("accept");
+ dialog.openAppList = document.getElementById("openAppList");
+ dialog.openTopWindow = document.getElementById("currentWindow");
+ dialog.bundle = document.getElementById("openLocationBundle");
+
+ if ("arguments" in window && window.arguments.length >= 1)
+ browser = window.arguments[0];
+
+ dialog.openAppList.selectedItem = dialog.openTopWindow;
+
+ // change OK button text to 'open'
+ dialog.open.label = dialog.bundle.getString("openButtonLabel");
+
+ if (pref) {
+ try {
+ var value = pref.getIntPref("general.open_location.last_window_choice");
+ var element = dialog.openAppList.getElementsByAttribute("value", value)[0];
+ if (element)
+ dialog.openAppList.selectedItem = element;
+ dialog.input.value = pref.getComplexValue("general.open_location.last_url",
+ Components.interfaces.nsISupportsString).data;
+ }
+ catch(ex) {
+ }
+ if (dialog.input.value)
+ dialog.input.select(); // XXX should probably be done automatically
+ }
+
+ doEnabling();
+}
+
+function doEnabling()
+{
+ dialog.open.disabled = !dialog.input.value;
+}
+
+function open()
+{
+ var url;
+ if (browser)
+ url = browser.getShortcutOrURI(dialog.input.value);
+ else
+ url = dialog.input.value;
+
+ try {
+ switch (dialog.openAppList.value) {
+ case "0":
+ browser.loadURI(url);
+ break;
+ case "1":
+ window.opener.delayedOpenWindow(getBrowserURL(), "all,dialog=no", url);
+ break;
+ case "3":
+ if (browser.getBrowser && browser.getBrowser().localName == "tabbrowser")
+ browser.delayedOpenTab(url);
+ else
+ browser.loadURI(url); // Just do a normal load.
+ break;
+ }
+ }
+ catch(exception) {
+ }
+
+ if (pref) {
+ var str = Components.classes["@mozilla.org/supports-string;1"]
+ .createInstance(Components.interfaces.nsISupportsString);
+ str.data = dialog.input.value;
+ pref.setComplexValue("general.open_location.last_url",
+ Components.interfaces.nsISupportsString, str);
+ pref.setIntPref("general.open_location.last_window_choice", dialog.openAppList.value);
+ }
+
+ // Delay closing slightly to avoid timing bug on Linux.
+ window.close();
+ return false;
+}
+
+function createInstance(contractid, iidName)
+{
+ var iid = Components.interfaces[iidName];
+ return Components.classes[contractid].createInstance(iid);
+}
+
+const nsIFilePicker = Components.interfaces.nsIFilePicker;
+function onChooseFile()
+{
+ try {
+ var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
+ fp.init(window, dialog.bundle.getString("chooseFileDialogTitle"), nsIFilePicker.modeOpen);
+ if (dialog.openAppList.value == "2") {
+ // When loading into Composer, direct user to prefer HTML files and text files,
+ // so we call separately to control the order of the filter list
+ fp.appendFilters(nsIFilePicker.filterHTML | nsIFilePicker.filterText);
+ fp.appendFilters(nsIFilePicker.filterText);
+ fp.appendFilters(nsIFilePicker.filterAll);
+ }
+ else {
+ fp.appendFilters(nsIFilePicker.filterHTML | nsIFilePicker.filterText |
+ nsIFilePicker.filterAll | nsIFilePicker.filterImages | nsIFilePicker.filterXML);
+ }
+
+ if (fp.show() == nsIFilePicker.returnOK && fp.fileURL.spec && fp.fileURL.spec.length > 0)
+ dialog.input.value = fp.fileURL.spec;
+ }
+ catch(ex) {
+ }
+ doEnabling();
+}
+
+function useUBHistoryItem(aMenuItem)
+{
+ var urlbar = document.getElementById("dialog.input");
+ urlbar.value = aMenuItem.getAttribute("label");
+ urlbar.focus();
+ doEnabling();
+}
+
diff --git a/mozilla/browser/base/content/openLocation.xul b/mozilla/browser/base/content/openLocation.xul
new file mode 100644
index 00000000000..e4bb267e545
--- /dev/null
+++ b/mozilla/browser/base/content/openLocation.xul
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+ %brandDTD;
+
+ %openDialogDTD;
+]>
+
+
diff --git a/mozilla/browser/base/jar.mn b/mozilla/browser/base/jar.mn
index c65c7b67368..b1c148246e9 100644
--- a/mozilla/browser/base/jar.mn
+++ b/mozilla/browser/base/jar.mn
@@ -12,6 +12,8 @@ browser.jar:
content/browser/viewsource.js (content/viewsource.js)
content/browser/viewSource.xul (content/viewSource.xul)
content/browser/viewSourceOverlay.xul (content/viewSourceOverlay.xul)
+ content/browser/openLocation.xul (content/openLocation.xul)
+ content/browser/openLocation.js (content/openLocation.js)
classic.jar:
skin/classic/browser/browser.css (skin/browser.css)
@@ -49,6 +51,8 @@ en-US.jar:
locale/en-US/browser/customizeToolbar.dtd (locale/customizeToolbar.dtd)
locale/en-US/browser/aboutDialog.dtd (locale/aboutDialog.dtd)
locale/en-US/browser/viewSource.dtd (locale/viewSource.dtd)
+ locale/en-US/browser/openLocation.dtd (locale/openLocation.dtd)
+ locale/en-US/browser/openLocation.properties (locale/openLocation.properties)
US.jar:
locale/US/browser-region/region.properties (locale/region.properties)
diff --git a/mozilla/browser/base/locale/browser.dtd b/mozilla/browser/base/locale/browser.dtd
index dcb7ebb06d1..eab9aee019b 100644
--- a/mozilla/browser/base/locale/browser.dtd
+++ b/mozilla/browser/base/locale/browser.dtd
@@ -227,4 +227,7 @@
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/mozilla/browser/base/locale/openLocation.dtd b/mozilla/browser/base/locale/openLocation.dtd
new file mode 100644
index 00000000000..c8ca6c72cc7
--- /dev/null
+++ b/mozilla/browser/base/locale/openLocation.dtd
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mozilla/browser/base/locale/openLocation.properties b/mozilla/browser/base/locale/openLocation.properties
new file mode 100644
index 00000000000..59ea94e39c7
--- /dev/null
+++ b/mozilla/browser/base/locale/openLocation.properties
@@ -0,0 +1,3 @@
+openButtonLabel=Open
+chooseFileDialogTitle=Choose File
+existingNavigatorWindow=Existing Navigator window