Index: browser/app/nsBrowserApp.cpp =================================================================== RCS file: /cvsroot/mozilla/browser/app/nsBrowserApp.cpp,v retrieving revision 1.18 diff -p -u -8 -r1.18 nsBrowserApp.cpp --- browser/app/nsBrowserApp.cpp 7 Dec 2004 04:52:57 -0000 1.18 +++ browser/app/nsBrowserApp.cpp 21 Feb 2005 11:20:53 -0000 @@ -40,17 +40,17 @@ #ifdef XP_WIN #include #include #endif #include "nsBuildID.h" static const nsXREAppData kAppData = { "Mozilla", - "Firefox", + "Firefox Debug", APP_VERSION, BUILD_ID, // ec8030f7-c20a-464f-9b0e-13a3a9e97384 { 0xec8030f7, 0xc20a, 0x464f, { 0x9b, 0x0e, 0x13, 0xa3, 0xa9, 0xe9, 0x73, 0x84 } }, "Copyright (c) 2004 mozilla.org", NS_XRE_ENABLE_PROFILE_MIGRATOR | NS_XRE_ENABLE_EXTENSION_MANAGER }; Index: browser/app/profile/firefox.js =================================================================== RCS file: /cvsroot/mozilla/browser/app/profile/firefox.js,v retrieving revision 1.35 diff -p -u -8 -r1.35 firefox.js --- browser/app/profile/firefox.js 16 Dec 2004 09:10:23 -0000 1.35 +++ browser/app/profile/firefox.js 21 Feb 2005 11:20:54 -0000 @@ -227,20 +227,32 @@ pref("dom.disable_window_status_change", pref("browser.trim_user_and_password", true); // popups.policy 1=allow,2=reject pref("privacy.popups.policy", 1); pref("privacy.popups.usecustom", true); pref("privacy.popups.firstTime", true); pref("privacy.popups.showBrowserMessage", true); +pref("privacy.item.history", true); +pref("privacy.item.formdata", true); +pref("privacy.item.passwords", false); +pref("privacy.item.downloads", true); +pref("privacy.item.cookies", false); +pref("privacy.item.cache", true); +pref("privacy.item.siteprefs", false); + +pref("privacy.sanitize.sanitizeOnShutdown", false); +pref("privacy.sanitize.promptOnSanitize", true); + pref("network.proxy.share_proxy_settings", false); // use the same proxy settings for all protocols pref("network.cookie.cookieBehavior", 0); // cookies enabled pref("network.cookie.enableForCurrentSessionOnly", false); +pref("network.cookie.denyRemovedCookies", false); // l12n and i18n pref("intl.accept_languages", "chrome://global/locale/intl.properties"); // collationOption is only set on linux for japanese. see bug 18338 and 62015 // we need to check if this pref is still useful. pref("intl.collationOption", "chrome://global-platform/locale/intl.properties"); pref("intl.charsetmenu.browser.static", "chrome://global/locale/intl.properties"); pref("intl.charsetmenu.browser.more1", "chrome://global/locale/intl.properties"); @@ -322,8 +334,23 @@ pref("accessibility.typeaheadfind.timeou pref("accessibility.typeaheadfind.linksonly", false); pref("accessibility.typeaheadfind.flashBar", 1); // Disable the default plugin for firefox pref("plugin.default_plugin_disabled", true); // plugin finder service pref("pfs.datasource.url", "chrome://mozapps/locale/plugins/plugins.properties"); + +#ifdef XP_WIN +pref("browser.preferences.instantApply", false); +#else +pref("browser.preferences.instantApply", true); +#endif +#ifdef XP_MACOSX +pref("browser.preferences.animateFadeIn", true); +#else +pref("browser.preferences.animateFadeIn", false); +#endif +pref("browser.display.screen_resolution", 96); + +pref("browser.download.show_plugins_in_list", true); +pref("browser.download.hide_plugins_without_extensions", true); Index: browser/base/jar.mn =================================================================== RCS file: /cvsroot/mozilla/browser/base/jar.mn,v retrieving revision 1.82 diff -p -u -8 -r1.82 jar.mn --- browser/base/jar.mn 30 Nov 2004 08:22:43 -0000 1.82 +++ browser/base/jar.mn 21 Feb 2005 11:20:54 -0000 @@ -19,15 +19,17 @@ browser.jar: content/browser/monitor.png (content/monitor.png) * content/browser/openLocation.js (content/openLocation.js) * content/browser/openLocation.xul (content/openLocation.xul) * content/browser/pageInfo.js (content/pageInfo.js) * content/browser/pageInfo.xul (content/pageInfo.xul) * content/browser/pageReport.js (content/pageReport.js) * content/browser/pageReport.xul (content/pageReport.xul) * content/browser/pageReportFirstTime.xul (content/pageReportFirstTime.xul) +* content/browser/sanitize.js (content/sanitize.js) +* content/browser/sanitize.xul (content/sanitize.xul) * content/browser/search.xml (content/search.xml) * content/browser/searchbarBindings.css (content/searchbarBindings.css) * content/browser/searchconfig.properties (content/searchconfig.properties) * content/browser/setWallpaper.xul (content/setWallpaper.xul) * content/browser/utilityOverlay.js (content/utilityOverlay.js) * content/browser/web-panels.js (content/web-panels.js) * content/browser/web-panels.xul (content/web-panels.xul) Index: browser/base/content/browser-menubar.inc =================================================================== RCS file: /cvsroot/mozilla/browser/base/content/browser-menubar.inc,v retrieving revision 1.42 diff -p -u -8 -r1.42 browser-menubar.inc --- browser/base/content/browser-menubar.inc 6 Feb 2005 17:42:55 -0000 1.42 +++ browser/base/content/browser-menubar.inc 21 Feb 2005 11:20:54 -0000 @@ -392,17 +392,20 @@ oncommand="toJavaScriptConsole();"/> #ifdef XP_WIN #else #endif - + + #ifndef XP_UNIX #else #ifdef XP_MACOSX Index: browser/base/content/browser-scripts.inc =================================================================== RCS file: /cvsroot/mozilla/browser/base/content/browser-scripts.inc,v retrieving revision 1.6 diff -p -u -8 -r1.6 browser-scripts.inc --- browser/base/content/browser-scripts.inc 1 Feb 2005 17:36:48 -0000 1.6 +++ browser/base/content/browser-scripts.inc 21 Feb 2005 11:20:55 -0000 @@ -43,8 +43,9 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: browser/components/Makefile.in =================================================================== RCS file: /cvsroot/mozilla/browser/components/Makefile.in,v retrieving revision 1.36 diff -p -u -8 -r1.36 Makefile.in --- browser/components/Makefile.in 17 Jan 2005 18:50:08 -0000 1.36 +++ browser/components/Makefile.in 21 Feb 2005 11:21:00 -0000 @@ -53,16 +53,15 @@ EXTRA_PP_COMPONENTS = \ nsBrowserContentHandler.js \ $(NULL) DIRS = \ bookmarks \ help \ migration \ history \ - prefwindow \ + preferences \ shell \ sidebar \ - cookieviewer \ build \ $(NULL) include $(topsrcdir)/config/rules.mk Index: browser/components/cookieviewer/.cvsignore =================================================================== RCS file: browser/components/cookieviewer/.cvsignore diff -N browser/components/cookieviewer/.cvsignore --- browser/components/cookieviewer/.cvsignore 31 Jul 2003 02:21:21 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1 +0,0 @@ -Makefile Index: browser/components/cookieviewer/Makefile.in =================================================================== RCS file: browser/components/cookieviewer/Makefile.in diff -N browser/components/cookieviewer/Makefile.in --- browser/components/cookieviewer/Makefile.in 29 Sep 2003 06:03:44 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,45 +0,0 @@ -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla 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/MPL/ -# -# 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 the Mozilla Browser code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2002 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Brian Ryner -# -# 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 -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -DEPTH = ../../.. -topsrcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -include $(DEPTH)/config/autoconf.mk - -include $(topsrcdir)/config/rules.mk Index: browser/components/cookieviewer/jar.mn =================================================================== RCS file: browser/components/cookieviewer/jar.mn diff -N browser/components/cookieviewer/jar.mn --- browser/components/cookieviewer/jar.mn 12 Jul 2004 17:15:03 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,6 +0,0 @@ -browser.jar: -* content/browser/cookieviewer/CookieViewer.xul (content/CookieViewer.xul) -* content/browser/cookieviewer/CookieViewer.js (content/CookieViewer.js) -* content/browser/cookieviewer/CookieExceptions.xul (content/CookieExceptions.xul) -* content/browser/cookieviewer/CookieExceptions.js (content/CookieExceptions.js) -* content/browser/cookieviewer/treeUtils.js (content/treeUtils.js) Index: browser/components/cookieviewer/content/CookieExceptions.js =================================================================== RCS file: browser/components/cookieviewer/content/CookieExceptions.js diff -N browser/components/cookieviewer/content/CookieExceptions.js --- browser/components/cookieviewer/content/CookieExceptions.js 28 Jan 2005 23:32:01 -0000 1.12 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,276 +0,0 @@ -const nsIPermissionManager = Components.interfaces.nsIPermissionManager; -const nsICookiePermission = Components.interfaces.nsICookiePermission; - -function Permission(id, host, rawHost, type, capability, perm) -{ - this.id = id; - this.host = host; - this.rawHost = rawHost; - this.type = type; - this.capability = capability; - this.perm = perm; -} - -var gPermissionManager = { - _type : "", - _addedPermissions : [], - _removedPermissions : [], - _pm : Components.classes["@mozilla.org/permissionmanager;1"] - .getService(Components.interfaces.nsIPermissionManager), - _bundle : null, - _tree : null, - - _view: { - _rowCount: 0, - get rowCount() - { - return this._rowCount; - }, - getCellText: function (aRow, aColumn) - { - if (aColumn.id == "siteCol") - return gPermissionManager._addedPermissions[aRow].rawHost; - else if (aColumn.id == "statusCol") - return gPermissionManager._addedPermissions[aRow].capability; - return ""; - }, - - isSeparator: function(aIndex) { return false; }, - isSorted: function() { return false; }, - isContainer: function(aIndex) { return false; }, - setTree: function(aTree){}, - getImageSrc: function(aRow, aColumn) {}, - getProgressMode: function(aRow, aColumn) {}, - getCellValue: function(aRow, aColumn) {}, - cycleHeader: function(column) {}, - getRowProperties: function(row,prop){}, - getColumnProperties: function(column,prop){}, - getCellProperties: function(row,column,prop){} - }, - - onOK: function () - { - var pm = Components.classes["@mozilla.org/permissionmanager;1"] - .getService(Components.interfaces.nsIPermissionManager); - for (var i = 0; i < this._removedPermissions.length; ++i) { - var p = this._removedPermissions[i]; - pm.remove(p.host, p.type); - } - - var uri = Components.classes["@mozilla.org/network/standard-url;1"] - .createInstance(Components.interfaces.nsIURI); - for (var i = 0; i < this._addedPermissions.length; ++i) { - var p = this._addedPermissions[i]; - uri.spec = p.host; - pm.add(uri, p.type, p.perm); - } - }, - - addPermission: function (aPermission) - { - var textbox = document.getElementById("url"); - var host = textbox.value.replace(/^\s*([-\w]*:\/+)?/, ""); // trim any leading space and scheme - try { - var ioService = Components.classes["@mozilla.org/network/io-service;1"] - .getService(Components.interfaces.nsIIOService); - var uri = ioService.newURI("http://"+host, null, null); - host = uri.host; - - // check for garbage - if (host == "" || host.replace(/\W/, "") == "") - throw("Error: Invalid hostname entered."); - } catch(ex) { - var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] - .getService(Components.interfaces.nsIPromptService); - var message = this._bundle.getString("invalidURI"); - var title = this._bundle.getString("invalidURITitle"); - promptService.alert(window, title, message); - - // clear out the textbox and disable the buttons - textbox.value = ""; - textbox.focus(); - this.onHostInput(textbox); - return; - } - - // we need this whether the perm exists or not - var stringKey = null; - switch (aPermission) { - case nsIPermissionManager.ALLOW_ACTION: - stringKey = "can"; - break; - case nsIPermissionManager.DENY_ACTION: - stringKey = "cannot"; - break; - case nsICookiePermission.ACCESS_SESSION: - stringKey = "canSession"; - break; - default: - break; - } - // check whether the permission already exists, if not, add it - var exists = false; - for (var i = 0; i < this._addedPermissions.length; ++i) { - if (this._addedPermissions[i].rawHost == host) { - exists = true; - this._addedPermissions[i].capability = this._bundle.getString(stringKey); - this._addedPermissions[i].perm = aPermission; - break; - } - } - - if (!exists) { - var p = new Permission(this._addedPermissions.length, - host, - (host.charAt(0) == ".") ? host.substring(1,host.length) : host, - this._type, - this._bundle.getString(stringKey), - aPermission); - this._addedPermissions.push(p); - - this._view._rowCount = this._addedPermissions.length; - this._tree.treeBoxObject.rowCountChanged(this._addedPermissions.length-1, 1); - this._tree.treeBoxObject.ensureRowIsVisible(this._addedPermissions.length-1); - } - textbox.value = ""; - textbox.focus(); - - // covers a case where the site exists already, so the buttons don't disable - this.onHostInput(textbox); - - // enable "remove all" button as needed - document.getElementById("removeAllPermissions").disabled = this._addedPermissions.length == 0; - }, - - onHostInput: function (aSiteField) - { - // trim any leading space - var site = aSiteField.value.replace(/^\s*([-\w]*:\/+)?/, ""); - - document.getElementById("btnSession").disabled = !site; - document.getElementById("btnBlock").disabled = !site; - document.getElementById("btnAllow").disabled = !site; - }, - - onLoad: function () - { - this._type = window.arguments[0].permissionType; - this._bundle = document.getElementById("permBundle"); - - var permissionsText = document.getElementById("permissionsText"); - while (permissionsText.hasChildNodes()) - permissionsText.removeChild(permissionsText.firstChild); - - var introString = this._bundle.getString(this._type + "permissionstext"); - permissionsText.appendChild(document.createTextNode(introString)); - - var titleString = this._bundle.getString(this._type + "permissionstitle"); - document.title = titleString; - - document.getElementById("btnBlock").hidden = !window.arguments[0].blockVisible; - document.getElementById("btnSession").hidden = !window.arguments[0].sessionVisible; - document.getElementById("btnAllow").hidden = !window.arguments[0].allowVisible; - document.getElementById("url").value = window.arguments[0].prefilledHost; - this.onHostInput(document.getElementById("url")); - - this._loadPermissions(); - }, - - onPermissionSelected: function () - { - var selections = GetTreeSelections(this._tree); - document.getElementById("removePermission").disabled = (selections.length < 1); - }, - - onPermissionDeleted: function () - { - DeleteSelectedItemFromTree(this._tree, this._view, - this._addedPermissions, this._removedPermissions, - "removePermission", "removeAllPermissions"); - }, - - onAllPermissionsDeleted: function () - { - DeleteAllFromTree(this._tree, this._view, - this._addedPermissions, this._removedPermissions, - "removePermission", "removeAllPermissions"); - }, - - onPermissionKeyPress: function (aEvent) - { - if (aEvent.keyCode == 46) - this.onPermissionDeleted(); - }, - - _lastPermissionSortColumn: "", - _lastPermissionSortAscending: false, - - onPermissionSort: function (aColumn, aUpdateSelection) - { - this._lastPermissionSortAscending = SortTree(this._tree, - this._view, - this._addedPermissions, - aColumn, - this._lastPermissionSortColumn, - this._lastPermissionSortAscending, - aUpdateSelection); - this._lastPermissionSortColumn = aColumn; - }, - - _loadPermissions: function () - { - this._tree = document.getElementById("permissionsTree"); - - // load permissions into a table - var count = 0; - var enumerator = this._pm.enumerator; - while (enumerator.hasMoreElements()) { - var nextPermission = enumerator.getNext().QueryInterface(Components.interfaces.nsIPermission); - if (nextPermission.type == this._type) { - var host = nextPermission.host; - var capability = null; - switch (nextPermission.capability) { - case nsIPermissionManager.ALLOW_ACTION: - capability = "can"; - break; - case nsIPermissionManager.DENY_ACTION: - capability = "cannot"; - break; - // we should only ever hit this for cookies - case nsICookiePermission.ACCESS_SESSION: - capability = "canSession"; - break; - default: - break; - } - var capabilityString = this._bundle.getString(capability); - var p = new Permission(count++, host, - (host.charAt(0) == ".") ? host.substring(1,host.length) : host, - nextPermission.type, - capabilityString, - nextPermission.capability); - this._addedPermissions.push(p); - } - } - - this._view._rowCount = this._addedPermissions.length; - - // sort and display the table - this._tree.treeBoxObject.view = this._view; - this.onPermissionSort("rawHost", false); - - // disable "remove all" button if there are none - document.getElementById("removeAllPermissions").disabled = this._addedPermissions.length == 0; - }, - - setHost: function (aHost) - { - document.getElementById("url").value = aHost; - } -}; - -function setHost(aHost) -{ - gPermissionManager.setHost(aHost); -} - Index: browser/components/cookieviewer/content/CookieExceptions.xul =================================================================== RCS file: browser/components/cookieviewer/content/CookieExceptions.xul diff -N browser/components/cookieviewer/content/CookieExceptions.xul --- browser/components/cookieviewer/content/CookieExceptions.xul 1 Feb 2005 17:36:49 -0000 1.8 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,96 +0,0 @@ - -# -*- Mode: SGML; indent-tabs-mode: nil -*- -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla 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/MPL/ -# -# 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 the Initial Developer are Copyright (C) 1998-1999 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Blake Ross (original author) -# -# 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 -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - - - - - - - - - - Index: browser/components/prefwindow/content/pref-calibrate-screen.xul =================================================================== RCS file: browser/components/prefwindow/content/pref-calibrate-screen.xul diff -N browser/components/prefwindow/content/pref-calibrate-screen.xul --- browser/components/prefwindow/content/pref-calibrate-screen.xul 1 Feb 2005 17:36:51 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,85 +0,0 @@ - -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla 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/MPL/ -# -# 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 the Initial Developer are Copyright (C) 1998-2000 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# -# 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 -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Index: browser/components/prefwindow/content/pref-languages.js =================================================================== RCS file: browser/components/prefwindow/content/pref-languages.js diff -N browser/components/prefwindow/content/pref-languages.js --- browser/components/prefwindow/content/pref-languages.js 22 Dec 2004 12:32:34 -0000 1.6 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,447 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla 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/MPL/ - * - * 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.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Adrian Havill - * Steffen Wilberg - * - * 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 - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -//GLOBALS - -//locale bundles -var gRegionsBundle; -var gLanguagesBundle; -var gAcceptedBundle; -var gPrefLangBundle; - -//dictionary of all supported locales -var gAvailLanguageDict; - -//XUL listbox handles -var gAvailableLanguages; -var gActiveLanguages; - -// label and accesskey of the available_languages menulist -var gSelectLabel; -var gSelectAccesskey; - -//XUL window pref window interface object -var gPrefString = new String(); - -//Reg expression for splitting multiple pref values -var gSeparatorRe = /\s*,\s*/; - -// PrefWindow -var gPrefWindow; - - -function Init() -{ - gRegionsBundle = document.getElementById("bundle_regions"); - gLanguagesBundle = document.getElementById("bundle_languages"); - gPrefLangBundle = document.getElementById("bundle_prefLang"); - gAcceptedBundle = document.getElementById("bundle_accepted"); - ReadAvailableLanguages(); - - try { - window.opener.top.initPanel(window.location.href, window); - } - catch(ex) { } //pref service backup - - gActiveLanguages = document.getElementById("active_languages"); - gPrefString = gActiveLanguages.getAttribute("prefvalue"); - LoadActiveLanguages(); - - gPrefWindow = window.opener.parent.hPrefWindow; - gAvailableLanguages = document.getElementById("available_languages"); - SelectLanguage(); - - LoadAvailableLanguages(); - gSelectLabel = gAvailableLanguages.label; - gSelectAccesskey = gAvailableLanguages.getAttribute("accesskey"); -} - - -function onLanguagesDialogOK() -{ - gPrefWindow.wsm.savePageData(window.location.href, window); - return true; -} - - -function ReadAvailableLanguages() -{ - gAvailLanguageDict = new Array(); - var visible = new String(); - var str = new String(); - var i =0; - - var gAcceptedBundleEnum = gAcceptedBundle.stringBundle.getSimpleEnumeration(); - - var curItem; - var stringName; - var stringNameProperty; - - while (gAcceptedBundleEnum.hasMoreElements()) { - - //progress through the bundle - curItem = gAcceptedBundleEnum.getNext(); - - //"unpack" the item, nsIPropertyElement is now partially scriptable - curItem = curItem.QueryInterface(Components.interfaces.nsIPropertyElement); - - //dump string name (key) - stringName = curItem.key; - stringNameProperty = stringName.split("."); - - if (stringNameProperty[1] == "accept") { - - //dump the UI string (value) - visible = curItem.value; - - //if (visible == "true") { - - str = stringNameProperty[0]; - var stringLangRegion = stringNameProperty[0].split("-"); - - if (stringLangRegion[0]) { - var tit; - var language; - var region; - var use_region_format = false; - - try { - language = gLanguagesBundle.getString(stringLangRegion[0]); - } - catch (ex) { - language = ""; - } - - if (stringLangRegion.length > 1) { - - try { - region = gRegionsBundle.getString(stringLangRegion[1]); - use_region_format = true; - } - catch (ex) { } - } - - if (use_region_format) { - tit = gPrefLangBundle.stringBundle.formatStringFromName("languageRegionCodeFormat", - [language, region, str], 3); - } else { - tit = gPrefLangBundle.stringBundle.formatStringFromName("languageCodeFormat", - [language, str], 2); - } - - } //if language - - if (str && tit) { - - gAvailLanguageDict[i] = new Array(3); - gAvailLanguageDict[i][0] = tit; - gAvailLanguageDict[i][1] = str; - gAvailLanguageDict[i][2] = visible; - i++; - - } // if str && tit - //} //if visible - } //if accepted - } //while - gAvailLanguageDict.sort( // sort on first element - function (a, b) { - if (a[0] < b[0]) return -1; - if (a[0] > b[0]) return 1; - return 0; - }); -} //ReadAvailableLanguages - - -function LoadAvailableLanguages() -{ - if (gAvailLanguageDict) - for (var i = 0; i < gAvailLanguageDict.length; i++) - if (gAvailLanguageDict[i][2] == "true") - AddMenuOrListItem(document, gAvailableLanguages.menupopup, "menuitem", gAvailLanguageDict[i][1], gAvailLanguageDict[i][0]); -} - - -function LoadActiveLanguages() -{ - if (gPrefString) { - var arrayOfPrefs = gPrefString.split(gSeparatorRe); - - for (var i = 0; i < arrayOfPrefs.length; i++) { - var str = arrayOfPrefs[i]; - var tit = GetLanguageTitle(str); - - if (str) { - if (!tit) - tit = "[" + str + "]"; - AddMenuOrListItem(document, gActiveLanguages, "listitem", str, tit); - } //if - } //for - } //if -} - - -function LangAlreadyActive(langId) -{ - var found = false; - try { - var arrayOfPrefs = gPrefString.split(gSeparatorRe); - - if (arrayOfPrefs) - for (var i = 0; i < arrayOfPrefs.length; i++) { - if (arrayOfPrefs[i] == langId) { - found = true; - break; - } - } - - return found; - } - - catch(ex){ - return false; - } -} //LangAlreadyActive - - -function SelectAvailableLanguage() -{ - var selItem = gAvailableLanguages.selectedItem; - var languageId = selItem.getAttribute("id"); - var addButton = document.getElementById("add"); - - // since we're not displaying "select" anymore, don't underline some random "s" - gAvailableLanguages.removeAttribute("accesskey"); - - // if the langauge is not already active, activate the "add" button - if (!LangAlreadyActive(languageId)) - addButton.disabled = false; - else - addButton.disabled = true; -} - -function AddAvailableLanguage() -{ - var selItem = gAvailableLanguages.selectedItem; - var languageId = selItem.getAttribute("id"); - var languageName = selItem.getAttribute("label"); - var addButton = document.getElementById("add"); - - if (!LangAlreadyActive(languageId)) - AddMenuOrListItem(document, gActiveLanguages, "listitem", languageId, languageName); - - // restore the "select" label and accesskey, disable the "add" button again - gAvailableLanguages.setAttribute("label", gSelectLabel); - gAvailableLanguages.setAttribute("accesskey", gSelectAccesskey); - addButton.disabled = true; - - // select the item we just added in the active_languages listbox - var lastItem = gActiveLanguages.lastChild; - gActiveLanguages.selectItem(lastItem); - gActiveLanguages.ensureElementIsVisible(lastItem); - - UpdateSavePrefString(); -} - - -function RemoveActiveLanguage() -{ - var nextNode = null; - var numSelected = gActiveLanguages.selectedItems.length; - var deleted_all = false; - - while (gActiveLanguages.selectedItems.length > 0) { - var selectedNode = gActiveLanguages.selectedItems[0]; - - nextNode = selectedNode.nextSibling; - if (!nextNode && selectedNode.previousSibling) - nextNode = selectedNode.previousSibling; - - gActiveLanguages.removeChild(selectedNode); - } //while - - if (nextNode) - gActiveLanguages.selectItem(nextNode) - - UpdateSavePrefString(); -} - - -function GetLanguageTitle(id) -{ - - if (gAvailLanguageDict) - for (var j = 0; j < gAvailLanguageDict.length; j++) { - - if ( gAvailLanguageDict[j][1] == id) { - //title = - return gAvailLanguageDict[j][0]; - } - } - return ""; -} - - -function AddMenuOrListItem(doc, listbox, type, langID, langTitle) -{ - try { //let's beef up our error handling for languages without label / title - - // Create a listitem for the new Language - var item = doc.createElement(type); - - // Copy over the attributes - item.setAttribute("label", langTitle); - item.setAttribute("id", langID); - listbox.appendChild(item); - - } - catch (ex) { } -} - - -function UpdateSavePrefString() -{ - var num_languages = 0; - gPrefString = ""; - - for (var item = gActiveLanguages.firstChild; item != null; item = item.nextSibling) { - - var languageId = item.getAttribute("id"); - - if (languageId.length > 1) { - num_languages++; - - //separate >1 languages by commas - if (num_languages > 1) { - gPrefString = gPrefString + "," + " " + languageId; - } else { - gPrefString = languageId; - } //if - } //if - }//for - - gActiveLanguages.setAttribute("prefvalue", gPrefString); -} - - -function MoveUp() { - - if (gActiveLanguages.selectedItems.length == 1) { - var selected = gActiveLanguages.selectedItems[0]; - var before = selected.previousSibling - if (before) { - before.parentNode.insertBefore(selected, before); - gActiveLanguages.selectItem(selected); - gActiveLanguages.ensureElementIsVisible(selected); - } - } - - if (gActiveLanguages.selectedIndex == 0) - { - // selected item is first - var moveUp = document.getElementById("up"); - moveUp.disabled = true; - } - - if (gActiveLanguages.childNodes.length > 1) - { - // more than one item so we can move selected item back down - var moveDown = document.getElementById("down"); - moveDown.disabled = false; - } - - UpdateSavePrefString(); -} //MoveUp - - -function MoveDown() { - - if (gActiveLanguages.selectedItems.length == 1) { - var selected = gActiveLanguages.selectedItems[0]; - if (selected.nextSibling) { - if (selected.nextSibling.nextSibling) { - gActiveLanguages.insertBefore(selected, selected.nextSibling.nextSibling); - } - else { - gActiveLanguages.appendChild(selected); - } - gActiveLanguages.selectItem(selected); - } - } - - if (gActiveLanguages.selectedIndex == gActiveLanguages.childNodes.length - 1) - { - // selected item is last - var moveDown = document.getElementById("down"); - moveDown.disabled = true; - } - - if (gActiveLanguages.childNodes.length > 1) - { - // more than one item so we can move selected item back up - var moveUp = document.getElementById("up"); - moveUp.disabled = false; - } - - UpdateSavePrefString(); - -} //MoveDown - - -function SelectLanguage() { - if (gActiveLanguages.selectedItems.length) { - document.getElementById("remove").disabled = false; - - var selected = gActiveLanguages.selectedItems[0]; - document.getElementById("down").disabled = !selected.nextSibling; - document.getElementById("up").disabled = !selected.previousSibling; - } - else { - document.getElementById("remove").disabled = true; - document.getElementById("down").disabled = true; - document.getElementById("up").disabled = true; - } - - if (gPrefWindow.getPrefIsLocked(document.getElementById("up").getAttribute("prefstring"))) - document.getElementById("up").disabled = true; - if (gPrefWindow.getPrefIsLocked(document.getElementById("down").getAttribute("prefstring"))) - document.getElementById("down").disabled = true; - if (gPrefWindow.getPrefIsLocked(document.getElementById("remove").getAttribute("prefstring"))) - document.getElementById("remove").disabled = true; - if (gPrefWindow.getPrefIsLocked(gAvailableLanguages.getAttribute("prefstring"))) - gAvailableLanguages.disabled = true; // the "add" button just stays disabled -} // SelectLanguage Index: browser/components/prefwindow/content/pref-languages.xul =================================================================== RCS file: browser/components/prefwindow/content/pref-languages.xul diff -N browser/components/prefwindow/content/pref-languages.xul --- browser/components/prefwindow/content/pref-languages.xul 19 Jul 2004 22:38:07 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - &languages.customize.prefLangDescript; - &languages.customize.active.label; - - - - - - - - Index: browser/components/prefwindow/content/pref-masterpass.js =================================================================== RCS file: browser/components/prefwindow/content/pref-masterpass.js diff -N browser/components/prefwindow/content/pref-masterpass.js --- browser/components/prefwindow/content/pref-masterpass.js 1 Feb 2005 17:36:51 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,269 +0,0 @@ -# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla 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/MPL/ -# -# 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.org Code. The Initial Developer of the Original Code is Netscape Communications Corporation. Portions created by Netscape are Copyright (C) 2001 Netscape Communications Corporation. All Rights Reserved. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Bob Lord -# Terry Hayes -# -# 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 -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -const nsPK11TokenDB = "@mozilla.org/security/pk11tokendb;1"; -const nsIPK11TokenDB = Components.interfaces.nsIPK11TokenDB; -const nsIDialogParamBlock = Components.interfaces.nsIDialogParamBlock; -const nsPKCS11ModuleDB = "@mozilla.org/security/pkcs11moduledb;1"; -const nsIPKCS11ModuleDB = Components.interfaces.nsIPKCS11ModuleDB; -const nsIPKCS11Slot = Components.interfaces.nsIPKCS11Slot; -const nsIPK11Token = Components.interfaces.nsIPK11Token; - - -var params; -var tokenName=""; -var pw1; - -function onLoad() -{ - pw1 = document.getElementById("pw1"); - - process(); -} - - -function process() -{ - var secmoddb = Components.classes[nsPKCS11ModuleDB].getService(nsIPKCS11ModuleDB); - var bundle = document.getElementById("prefBundle"); - - // If the token is unitialized, don't use the old password box. - // Otherwise, do. - - var slot = secmoddb.findSlotByName(tokenName); - if (slot) { - var oldpwbox = document.getElementById("oldpw"); - var msgBox = document.getElementById("message"); - var status = slot.status; - if (status == nsIPKCS11Slot.SLOT_UNINITIALIZED - || status == nsIPKCS11Slot.SLOT_READY) { - - oldpwbox.setAttribute("hidden", "true"); - msgBox.setAttribute("value", bundle.getString("password_not_set")); - msgBox.setAttribute("hidden", "false"); - - if (status == nsIPKCS11Slot.SLOT_READY) { - oldpwbox.setAttribute("inited", "empty"); - } else { - oldpwbox.setAttribute("inited", "true"); - } - - // Select first password field - document.getElementById('pw1').focus(); - - } else { - // Select old password field - oldpwbox.setAttribute("hidden", "false"); - msgBox.setAttribute("hidden", "true"); - oldpwbox.setAttribute("inited", "false"); - oldpwbox.focus(); - } - } - - if (params) { - // Return value 0 means "canceled" - params.SetInt(1, 0); - } - - checkPasswords(); -} - -function setPassword() -{ - var pk11db = Components.classes[nsPK11TokenDB].getService(nsIPK11TokenDB); - var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] - .getService(Components.interfaces.nsIPromptService); - var token = pk11db.findTokenByName(tokenName); - - var oldpwbox = document.getElementById("oldpw"); - var initpw = oldpwbox.getAttribute("inited"); - var bundle = document.getElementById("prefBundle"); - - var success = false; - - if (initpw == "false" || initpw == "empty") { - try { - var oldpw = ""; - var passok = 0; - - if (initpw == "empty") { - passok = 1; - } else { - oldpw = oldpwbox.value; - passok = token.checkPassword(oldpw); - } - - if (passok) { - if (initpw == "empty" && pw1.value == "") { - // This makes no sense that we arrive here, - // we reached a case that should have been prevented by checkPasswords. - } else { - if (pw1.value == "") { - var secmoddb = Components.classes[nsPKCS11ModuleDB].getService(nsIPKCS11ModuleDB); - if (secmoddb.isFIPSEnabled) { - // empty passwords are not allowed in FIPS mode - promptService.alert(window, - bundle.getString("pw_change_failed_title"), - bundle.getString("pw_change2empty_in_fips_mode")); - passok = 0; - } - } - if (passok) { - token.changePassword(oldpw, pw1.value); - if (pw1.value == "") { - promptService.alert(window, - bundle.getString("pw_change_success_title"), - bundle.getString("pw_erased_ok") - + " " + bundle.getString("pw_empty_warning")); - } else { - promptService.alert(window, - bundle.getString("pw_change_success_title"), - bundle.getString("pw_change_ok")); - } - success = true; - } - } - } else { - oldpwbox.focus(); - oldpwbox.setAttribute("value", ""); - promptService.alert(window, - bundle.getString("pw_change_failed_title"), - bundle.getString("incorrect_pw")); - } - } catch (e) { - promptService.alert(window, - bundle.getString("pw_change_failed_title"), - bundle.getString("failed_pw_change")); - } - } else { - token.initPassword(pw1.value); - if (pw1.value == "") { - promptService.alert(window, - bundle.getString("pw_change_success_title"), - bundle.getString("pw_not_wanted") - + " " + bundle.getString("pw_empty_warning")); - } - success = true; - } - - // Terminate dialog - if (success) - window.close(); -} - -function setPasswordStrength() -{ -// Here is how we weigh the quality of the password -// number of characters -// numbers -// non-alpha-numeric chars -// upper and lower case characters - - var pw=document.getElementById('pw1').value; - -//length of the password - var pwlength=(pw.length); - if (pwlength>5) - pwlength=5; - - -//use of numbers in the password - var numnumeric = pw.replace (/[0-9]/g, ""); - var numeric=(pw.length - numnumeric.length); - if (numeric>3) - numeric=3; - -//use of symbols in the password - var symbols = pw.replace (/\W/g, ""); - var numsymbols=(pw.length - symbols.length); - if (numsymbols>3) - numsymbols=3; - -//use of uppercase in the password - var numupper = pw.replace (/[A-Z]/g, ""); - var upper=(pw.length - numupper.length); - if (upper>3) - upper=3; - - - var pwstrength=((pwlength*10)-20) + (numeric*10) + (numsymbols*15) + (upper*10); - - // make sure we're give a value between 0 and 100 - if ( pwstrength < 0 ) { - pwstrength = 0; - } - - if ( pwstrength > 100 ) { - pwstrength = 100; - } - - var mymeter=document.getElementById('pwmeter'); - mymeter.setAttribute("value",pwstrength); - - return; -} - -function checkPasswords() -{ - var pw1=document.getElementById('pw1').value; - var pw2=document.getElementById('pw2').value; - var ok=document.documentElement.getButton("accept"); - - var oldpwbox = document.getElementById("oldpw"); - if (oldpwbox) { - var initpw = oldpwbox.getAttribute("inited"); - - if (initpw == "empty" && pw1 == "") { - // The token has already been initialized, therefore this dialog - // was called with the intention to change the password. - // The token currently uses an empty password. - // We will not allow changing the password from empty to empty. - ok.setAttribute("disabled","true"); - return; - } - } - - if (pw1 == pw2){ - ok.setAttribute("disabled","false"); - } else - { - ok.setAttribute("disabled","true"); - } - -} Index: browser/components/prefwindow/content/pref-masterpass.xul =================================================================== RCS file: browser/components/prefwindow/content/pref-masterpass.xul diff -N browser/components/prefwindow/content/pref-masterpass.xul --- browser/components/prefwindow/content/pref-masterpass.xul 1 Feb 2005 17:36:51 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,112 +0,0 @@ - -# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla 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/MPL/ -# -# 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.org Code. The Initial Developer of the Original Code is Netscape Communications Corporation. Portions created by Netscape are Copyright (C) 2001 Netscape Communications Corporation. All Rights Reserved. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Bob Lord -# Terry Hayes -# -# 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 -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - - - - -%brandDTD; - -%prefMasterpassDTD; -]> - - - - - - - - - - - Index: browser/locales/jar.mn =================================================================== RCS file: /cvsroot/mozilla/browser/locales/jar.mn,v retrieving revision 1.6 diff -p -u -8 -r1.6 jar.mn --- browser/locales/jar.mn 26 Jan 2005 13:33:53 -0000 1.6 +++ browser/locales/jar.mn 21 Feb 2005 11:21:07 -0000 @@ -13,45 +13,48 @@ locale/browser/metaData.properties (%chrome/browser/metaData.properties) locale/browser/openLocation.dtd (%chrome/browser/openLocation.dtd) locale/browser/openLocation.properties (%chrome/browser/openLocation.properties) locale/browser/page-drawer.dtd (%chrome/browser/page-drawer.dtd) * locale/browser/pageInfo.dtd (%chrome/browser/pageInfo.dtd) locale/browser/pageInfo.properties (%chrome/browser/pageInfo.properties) locale/browser/pageReport.dtd (%chrome/browser/pageReport.dtd) locale/browser/pageReportFirstTime.dtd (%chrome/browser/pageReportFirstTime.dtd) + locale/browser/sanitize.dtd (%chrome/browser/sanitize.dtd) locale/browser/searchbar.properties (%chrome/browser/searchbar.properties) locale/browser/setWallpaper.dtd (%chrome/browser/setWallpaper.dtd) locale/browser/shellservice.properties (%chrome/browser/shellservice.properties) * locale/browser/bookmarks/bookmarks.dtd (%chrome/browser/bookmarks/bookmarks.dtd) * locale/browser/bookmarks/addBookmark.dtd (%chrome/browser/bookmarks/addBookmark.dtd) * locale/browser/bookmarks/bookmarks.properties (%chrome/browser/bookmarks/bookmarks.properties) * locale/browser/bookmarks/bookmarksProperties.dtd (%chrome/browser/bookmarks/bookmarksProperties.dtd) * locale/browser/cookieviewer/CookieExceptions.dtd (%chrome/browser/cookieviewer/CookieExceptions.dtd) * locale/browser/cookieviewer/CookieViewer.dtd (%chrome/browser/cookieviewer/CookieViewer.dtd) * locale/browser/cookieviewer/CookieViewer.properties (%chrome/browser/cookieviewer/CookieViewer.properties) locale/browser/history/history.dtd (%chrome/browser/history/history.dtd) locale/browser/migration/migration.dtd (%chrome/browser/migration/migration.dtd) locale/browser/migration/migration.properties (%chrome/browser/migration/migration.properties) - locale/browser/pref/addPopup.properties (%chrome/browser/pref/addPopup.properties) - locale/browser/pref/plugins.dtd (%chrome/browser/pref/plugins.dtd) - locale/browser/pref/pref.dtd (%chrome/browser/pref/pref.dtd) - locale/browser/pref/pref-advanced.dtd (%chrome/browser/pref/pref-advanced.dtd) - locale/browser/pref/pref-advancedscripts.dtd (%chrome/browser/pref/pref-advancedscripts.dtd) - locale/browser/pref/pref-connection.dtd (%chrome/browser/pref/pref-connection.dtd) - locale/browser/pref/pref-extensions.dtd (%chrome/browser/pref/pref-extensions.dtd) - locale/browser/pref/pref-features.dtd (%chrome/browser/pref/pref-features.dtd) - locale/browser/pref/pref-features-images.dtd (%chrome/browser/pref/pref-features-images.dtd) - locale/browser/pref/pref-fonts.dtd (%chrome/browser/pref/pref-fonts.dtd) - locale/browser/pref/pref-languages.dtd (%chrome/browser/pref/pref-languages.dtd) - locale/browser/pref/pref-languages.properties (%chrome/browser/pref/pref-languages.properties) - locale/browser/pref/pref-navigator.dtd (%chrome/browser/pref/pref-navigator.dtd) - locale/browser/pref/pref-masterpass.dtd (%chrome/browser/pref/pref-masterpass.dtd) - locale/browser/pref/pref-privacy.dtd (%chrome/browser/pref/pref-privacy.dtd) - locale/browser/pref/pref-themes.dtd (%chrome/browser/pref/pref-themes.dtd) - locale/browser/pref/prefutilities.properties (%chrome/browser/pref/prefutilities.properties) + locale/browser/preferences/advanced.dtd (%chrome/browser/preferences/advanced.dtd) + locale/browser/preferences/changeaction.dtd (%chrome/browser/preferences/changeaction.dtd) + locale/browser/preferences/colors.dtd (%chrome/browser/preferences/colors.dtd) + locale/browser/preferences/cookies.dtd (%chrome/browser/preferences/cookies.dtd) + locale/browser/preferences/content.dtd (%chrome/browser/preferences/content.dtd) + locale/browser/preferences/connection.dtd (%chrome/browser/preferences/connection.dtd) + locale/browser/preferences/downloads.dtd (%chrome/browser/preferences/downloads.dtd) + locale/browser/preferences/downloadactions.dtd (%chrome/browser/preferences/downloadactions.dtd) + locale/browser/preferences/fonts.dtd (%chrome/browser/preferences/fonts.dtd) + locale/browser/preferences/fontscaling.dtd (%chrome/browser/preferences/fontscaling.dtd) + locale/browser/preferences/general.dtd (%chrome/browser/preferences/general.dtd) + locale/browser/preferences/languages.dtd (%chrome/browser/preferences/languages.dtd) + locale/browser/preferences/ocsp.dtd (%chrome/browser/preferences/ocsp.dtd) + locale/browser/preferences/permissions.dtd (%chrome/browser/preferences/permissions.dtd) + locale/browser/preferences/preferences.dtd (%chrome/browser/preferences/preferences.dtd) + locale/browser/preferences/preferences.properties (%chrome/browser/preferences/preferences.properties) + locale/browser/preferences/privacy.dtd (%chrome/browser/preferences/privacy.dtd) + locale/browser/preferences/sanitize.dtd (%chrome/browser/preferences/sanitize.dtd) + locale/browser/preferences/tabs.dtd (%chrome/browser/preferences/tabs.dtd) locale/browser/sidebar/sidebar.properties (%chrome/browser/sidebar/sidebar.properties) locale/browser-region/region.properties (%chrome/browser-region/region.properties) * locale/browser-region/contents.rdf (generic/chrome/browser-region/contents.rdf) * locale/@AB_CD@/cookie/contents.rdf (generic/chrome/cookie/contents.rdf) locale/@AB_CD@/cookie/cookieAcceptDialog.dtd (%chrome/cookie/cookieAcceptDialog.dtd) locale/@AB_CD@/cookie/cookieAcceptDialog.properties (%chrome/cookie/cookieAcceptDialog.properties) #includesubst @AB_CD@/extra-jar.mn Index: browser/locales/en-US/chrome/browser/browser.dtd =================================================================== RCS file: /cvsroot/mozilla/browser/locales/en-US/chrome/browser/browser.dtd,v retrieving revision 1.10 diff -p -u -8 -r1.10 browser.dtd --- browser/locales/en-US/chrome/browser/browser.dtd 28 Jan 2005 16:09:55 -0000 1.10 +++ browser/locales/en-US/chrome/browser/browser.dtd 21 Feb 2005 11:21:07 -0000 @@ -160,16 +160,19 @@ + + + Index: browser/locales/en-US/chrome/browser/browser.properties =================================================================== RCS file: /cvsroot/mozilla/browser/locales/en-US/chrome/browser/browser.properties,v retrieving revision 1.8 diff -p -u -8 -r1.8 browser.properties --- browser/locales/en-US/chrome/browser/browser.properties 30 Nov 2004 08:22:50 -0000 1.8 +++ browser/locales/en-US/chrome/browser/browser.properties 21 Feb 2005 11:21:07 -0000 @@ -88,8 +88,12 @@ saveFormInformationNo=Don't Save # missing plugin installer missingpluginsMessage.title=Additional plugins are required to display all the media on this page. missingpluginsMessage.button.label=Install Missing Plugins... NotFound=Phrase not found WrappedToTop=Reached end of page, continued from top WrappedToBottom=Reached top of page, continued from bottom + +# Sanitize +sanitizeWithPromptLabel=Sanitize %S... +sanitizeButton=Sanitize Now Index: browser/locales/en-US/chrome/browser/sanitize.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/sanitize.dtd diff -N browser/locales/en-US/chrome/browser/sanitize.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/sanitize.dtd 21 Feb 2005 11:21:07 -0000 @@ -0,0 +1,11 @@ + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/advanced.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/advanced.dtd diff -N browser/locales/en-US/chrome/browser/preferences/advanced.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/advanced.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/advancedScript.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/advancedScript.dtd diff -N browser/locales/en-US/chrome/browser/preferences/advancedScript.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/advancedScript.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,10 @@ + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/changeaction.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/changeaction.dtd diff -N browser/locales/en-US/chrome/browser/preferences/changeaction.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/changeaction.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/colors.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/colors.dtd diff -N browser/locales/en-US/chrome/browser/preferences/colors.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/colors.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/connection.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/connection.dtd diff -N browser/locales/en-US/chrome/browser/preferences/connection.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/connection.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/content.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/content.dtd diff -N browser/locales/en-US/chrome/browser/preferences/content.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/content.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/cookies.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/cookies.dtd diff -N browser/locales/en-US/chrome/browser/preferences/cookies.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/cookies.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/downloadactions.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/downloadactions.dtd diff -N browser/locales/en-US/chrome/browser/preferences/downloadactions.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/downloadactions.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/downloads.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/downloads.dtd diff -N browser/locales/en-US/chrome/browser/preferences/downloads.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/downloads.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/fonts.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/fonts.dtd diff -N browser/locales/en-US/chrome/browser/preferences/fonts.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/fonts.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/fontscaling.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/fontscaling.dtd diff -N browser/locales/en-US/chrome/browser/preferences/fontscaling.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/fontscaling.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,6 @@ + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/general.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/general.dtd diff -N browser/locales/en-US/chrome/browser/preferences/general.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/general.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/languages.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/languages.dtd diff -N browser/locales/en-US/chrome/browser/preferences/languages.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/languages.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/ocsp.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/ocsp.dtd diff -N browser/locales/en-US/chrome/browser/preferences/ocsp.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/ocsp.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,9 @@ + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/permissions.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/permissions.dtd diff -N browser/locales/en-US/chrome/browser/preferences/permissions.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/permissions.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/preferences.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/preferences.dtd diff -N browser/locales/en-US/chrome/browser/preferences/preferences.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/preferences.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,13 @@ + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/preferences.properties =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/preferences.properties diff -N browser/locales/en-US/chrome/browser/preferences/preferences.properties --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/preferences.properties 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,100 @@ +#### General + +choosehomepage=Choose Home Page +choosebookmark=%brand% can set your home page to a site you have already added to your Bookmarks. Select a Bookmark below and click OK. +choosefile=Choose a file + +#### Content + +setMasterPassword=Set Master Password... +changeMasterPassword=Change Master Password... + +#### Fonts + +labelDefaultFont=Default (%S) + +#### Permissions Manager + +cookiepermissionstext=You can specify which web sites are always or never allowed to use cookies. Type the exact address of the site you want to manage and then click Block, Allow for Session, or Allow. +cookiepermissionstitle=Exceptions - Cookies +installpermissionstext=You can specify which web sites are allowed to install software. Type the exact address of the site you want to allow and then click Allow. +installpermissionstitle=Allowed Sites - Software Installation +popuppermissionstext=You can specify which web sites are allowed to open popup windows. Type the exact address of the site you want to allow and then click Allow. +popuppermissionstitle=Allowed Sites - Popups +downloadpermissionstext=You can specify which web sites are allowed to download files to your computer. Type the exact address of the site you want to allow and then click Allow. +downloadpermissionstitle=Allowed Sites - Downloading Software +imagepermissionstext=You can specify which web sites are allowed to load images. Type the exact address of the site you want to manage and then click Block or Allow. +imagepermissionstitle=Exceptions - Images +invalidURI=Please enter a valid hostname +invalidURITitle=Invalid Hostname Entered + +#### Master Password + +password_not_set=(not set) +failed_pw_change=Unable to change Master Password. +incorrect_pw=You did not enter the correct current Master Password. Please try again. +pw_change_ok=Master Password successfully changed. +pw_erased_ok=Warning! You have deleted your Master Password. +pw_not_wanted=Warning! You have decided not to use a Master Password. +pw_empty_warning=Your stored web and email passwords, form data, and private keys will not be protected. +pw_change2empty_in_fips_mode=You are currently in FIPS mode. FIPS requires a non-empty Master Password. +pw_change_success_title=Password Change Succeeded +pw_change_failed_title=Password Change Failed + +#### Fonts + +# LOCALIZATION NOTE: Next two strings are for language name representations with +# and without the region. +# e.g. languageRegionCodeFormat : "French/Canada [fr-ca]" languageCodeFormat : "French [fr]" +# %1$S = language name, %2$S = region name, %3$S = language-region code +languageRegionCodeFormat=%1$S/%2$S [%3$S] +# %1$S = language name, %2$S = language-region code +languageCodeFormat=%1$S [%2$S] + +# LOCALIZATION NOTE: dpi stands for 'dots per inch' +fontScalingResolutionFormat=%S dpi + +#### Downloads + +desktopFolderName=Desktop +myDownloadsFolderName=My Downloads + +#### Download Actions + +extensionNone=(NONE) +removeButtonSingle=Remove Action +removeButtonMultiple=Remove Actions +removeTitleSingle=Remove Action +removeTitleMultiple=Remove Actions +removeMessageSingle=The selected Action will no longer be performed when files of the affected types are downloaded. Are you sure you want to remove this Action? +removeMessageMultiple=The selected Actions will no longer be performed when files of the affected types are downloaded. Are you sure you want to remove these Actions? +fileEnding=%S file +saveToDisk=Save to Disk +openWith=Open with %S +actionsFiltered=The following Actions match your search: +actionsAll=Automatically perform the associated Action with each of the following file types: + + +#### Change Action + +extensionStringFormat=%S, %S +downloadHelperNoneSelected=None Selected +pluginHelperNoneAvailable=None Available +fpTitleChooseApp=Select Helper Application +fpTitleChooseDL=Select Download Folder + +#### Cookie Viewer + +hostColon=Host: +domainColon=Domain: +forSecureOnly=Encrypted connections only +forAnyConnection=Any type of connection +AtEndOfSession = at end of session +can=Allow +canSession=Allow for Session +cannot=Block +noCookieSelected= +cookiesAll=The following cookies are stored on your computer: +cookiesFiltered=The following cookies match your search: +removeCookies=Remove Cookies +removeCookie=Remove Cookie Index: browser/locales/en-US/chrome/browser/preferences/privacy.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/privacy.dtd diff -N browser/locales/en-US/chrome/browser/preferences/privacy.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/privacy.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/sanitize.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/sanitize.dtd diff -N browser/locales/en-US/chrome/browser/preferences/sanitize.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/sanitize.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + Index: browser/locales/en-US/chrome/browser/preferences/tabs.dtd =================================================================== RCS file: browser/locales/en-US/chrome/browser/preferences/tabs.dtd diff -N browser/locales/en-US/chrome/browser/preferences/tabs.dtd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/locales/en-US/chrome/browser/preferences/tabs.dtd 21 Feb 2005 11:21:08 -0000 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + Index: browser/themes/pinstripe/browser/preferences/Options.png =================================================================== RCS file: browser/themes/pinstripe/browser/preferences/Options.png diff -N browser/themes/pinstripe/browser/preferences/Options.png Binary files /dev/null and Options.png differ Index: browser/themes/pinstripe/browser/preferences/preferences.css =================================================================== RCS file: browser/themes/pinstripe/browser/preferences/preferences.css diff -N browser/themes/pinstripe/browser/preferences/preferences.css --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/themes/pinstripe/browser/preferences/preferences.css 21 Feb 2005 11:21:09 -0000 @@ -0,0 +1,175 @@ +/* +# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla 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/MPL/ +# +# 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 the Firefox Preferences System. +# +# The Initial Developer of the Original Code is Ben Goodger. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Ben Goodger +# +# 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 +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** +*/ +prefwindow { + padding: 0 !important; +} + +prefpane { + padding: 12px; +} + +.paneSelector { + list-style-image: url("chrome://browser/skin/preferences/Options.png"); + padding: 0 5px; + border-bottom: 1px solid #a3a3a3; + background: url("chrome://global/skin/toolbar/toolbar-pinstripe-overlay.png") repeat; + margin: 0; +} + +.paneSelector radio { + border-right: 1px solid transparent; + border-left: 1px transparent; + padding: 3px 0 3px 0; + margin: 0; + -moz-appearance: none !important; +} + +radio[pane][selected="true"] { + background-color: #DDDDDD; + background-image: none; + border-right: 1px solid #b9b9b9; + border-left: 1px solid #b9b9b9; + color: ButtonText !important; +} + +radio[pane=paneGeneral] { + -moz-image-region: rect(0px, 32px, 32px, 0px) +} +radio[pane=paneGeneral][selected="true"] { + +} + +radio[pane=panePrivacy] { + -moz-image-region: rect(0px, 64px, 32px, 32px) +} +radio[pane=panePrivacy][selected="true"] { + +} + +radio[pane=paneContent] { + -moz-image-region: rect(0px, 96px, 32px, 64px) +} +radio[pane=paneContent][selected="true"] { + +} + +radio[pane=paneDownloads] { + -moz-image-region: rect(0px, 224px, 32px, 192px) +} +radio[pane=paneDownloads][selected="true"] { + +} + +radio[pane=paneAdvanced] { + -moz-image-region: rect(0px, 192px, 32px, 160px) +} +radio[pane=paneAdvanced][selected="true"] { + +} + +#browserStartupHomepage { + padding: 2px 2px 3px 4px; +} + +#downloadFolderIcon { + width: 16px; + height: 16px; +} + +#downloadFolderContainer { + margin: 2px 4px 2px 27px; + -moz-appearance: textfield; +} + +#downloadFolderContainer2 { + background-color: -moz-Dialog; + color: -moz-DialogText; + margin: 1px; + padding: 0px 0px 0px 3px; +} + +#downloadFolder { + -moz-appearance: none; + background-color: transparent; + border: none; + padding: 1px 0px 0px 0px; + margin: none; +} + +prefpane button { + -moz-appearance: button-small; +} + +prefpane .groupbox-body { + border: none !important; + -moz-border-radius: 0px !important; + background-image: none !important; + padding: 8px 4px 4px 4px; + +} + +prefpane .groupbox-title { + background: url("chrome://global/skin/50pct_transparent_grey.png") repeat-x bottom left; + margin-bottom: 4px; +} + +caption { + border-bottom: 1px solid #ECECEC; + padding: 4px 4px 0px 0px !important; +} + +#paneContent { + padding-top: 8px; +} + +#paneContent row { + padding: 0 4px; +} + +#browserUseCurrent, #browserUseBookmark, #browserUseBlank { + margin-top: 10px; +} + +#advancedPrefs { + margin: 0 8px; +} + +#browserStartupHomepage { + padding: 0; +} + Index: browser/themes/winstripe/browser/preferences/preferences.css =================================================================== RCS file: browser/themes/winstripe/browser/preferences/preferences.css diff -N browser/themes/winstripe/browser/preferences/preferences.css --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ browser/themes/winstripe/browser/preferences/preferences.css 21 Feb 2005 11:21:09 -0000 @@ -0,0 +1,230 @@ +/* +# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla 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/MPL/ +# +# 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 the Firefox Preferences System. +# +# The Initial Developer of the Original Code is Ben Goodger. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Ben Goodger +# +# 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 +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** +*/ + +/* Global Styles */ +#BrowserPreferences radio[pane] { + list-style-image: url("chrome://browser/skin/pref/Options.png"); +} + +radio[pane=paneGeneral] { + -moz-image-region: rect(0px, 32px, 32px, 0px) +} +radio[pane=paneGeneral]:hover, radio[pane=paneGeneral][selected="true"] { + -moz-image-region: rect(32px, 32px, 64px, 0px) +} + +radio[pane=panePrivacy] { + -moz-image-region: rect(0px, 64px, 32px, 32px) +} +radio[pane=panePrivacy]:hover, radio[pane=panePrivacy][selected="true"] { + -moz-image-region: rect(32px, 64px, 64px, 32px) +} + +radio[pane=paneContent] { + -moz-image-region: rect(0px, 96px, 32px, 64px) +} +radio[pane=paneContent]:hover, radio[pane=paneContent][selected="true"] { + -moz-image-region: rect(32px, 96px, 64px, 64px) +} + +radio[pane=paneDownloads] { + -moz-image-region: rect(0px, 128px, 32px, 96px) +} +radio[pane=paneDownloads]:hover, radio[pane=paneDownloads][selected="true"] { + -moz-image-region: rect(32px, 128px, 64px, 96px) +} + +radio[pane=paneTabs] { + -moz-image-region: rect(0px, 128px, 32px, 96px) +} +radio[pane=paneTabs]:hover, radio[pane=paneTabs][selected="true"] { + -moz-image-region: rect(32px, 128px, 64px, 96px) +} + +radio[pane=paneAdvanced] { + -moz-image-region: rect(0px, 160px, 32px, 128px) +} +radio[pane=paneAdvanced]:hover, radio[pane=paneAdvanced][selected="true"] { + -moz-image-region: rect(32px, 160px, 64px, 128px) +} + +/* General Pane */ +#browserStartupHomepage { + padding: 2px 2px 3px 4px; +} + +/* File Field Widget */ +filefield { + margin: 2px 4px 2px 4px; + -moz-appearance: textfield; +} + +.fileFieldContentBox { + background-color: -moz-Dialog; + color: -moz-DialogText; + margin: 1px; +} + +filefield[disabled="true"] .fileFieldContentBox { + -moz-opacity: 0.5; +} + +filefield[disabled="true"] .fileFieldIcon { + -moz-opacity: 0.2; +} + +.fileFieldIcon { + width: 16px; + height: 16px; + margin: 2px 4px 2px 2px; +} + +.fileFieldLabel { + -moz-appearance: none; + background-color: transparent; + border: none; + padding: 1px 0px 0px 0px; + margin: 0px; +} + +/* Modeless Window Dialogs */ +.windowDialog, +.windowDialog prefpane { + padding: 0px; +} + +.contentPane { + margin: 9px 8px 5px 8px; +} + +.actionButtons { + margin: 0px 3px 6px 3px !important; +} + +/* Cookies Manager */ +#cookiesChildren::-moz-tree-image(domainCol) { + width: 16px; + height: 16px; + margin: 0px 2px; + list-style-image: url("chrome://global/skin/icons/folder-item.png") !important; + -moz-image-region: rect(0px, 16px, 16px, 0px); +} + +#cookiesChildren::-moz-tree-image(domainCol, container) { + -moz-image-region: rect(0px, 32px, 16px, 16px); +} + +#cookiesChildren::-moz-tree-image(domainCol, container, open) { + -moz-image-region: rect(16px, 32px, 32px, 16px); +} + +#cookieInfoBox { + border: 1px solid ThreeDShadow; + -moz-border-radius: 0px; + margin: 4px; + padding: 0px; +} + +#cookieInfoBox textbox { + background-color: transparent; +} + +#backgroundBox { + background-color: #FFFFFF; + opacity: 0.5; +} + +/* Download Actions Manager */ +#fileExtension { + width: 5em; +} + +#extensionChildren::-moz-tree-image(fileExtension) { + margin: 0px 5px 0px 0px; +} + +#typeField { + font-weight: bold; +} + +/* Change Action Dialog */ +#typeIcon { + width: 32px; + height: 32px; + margin-right: 3px; +} + +#typeField { + background-color: transparent; + margin: 1px 5px 2px 6px !important; +} + +#extensionField { + color: GrayText; + font-weight: bold; +} ++#ChangeActionDialog { + padding: 0px; +} ++ #ChangeActionDialog .dialog-button-box { + padding: 8px 10px 10px 8px;+} ++ #changeActionHeader { + border-bottom: 2px groove ThreeDFace; + margin: 0px; + padding: 10px; + background-color: -moz-Field; + color: -moz-FieldText; +} ++ #changeActionContent { + padding: 8px 10px 10px 9px; +} ++ #defaultAppIcon { + width: 16px; height: 16px; + margin-left: 2px; + }+ +#defaultAppName { + margin-left: 6px !important; + font-weight: bold; +}Index: content/xul/document/src/nsXULDocument.cpp =================================================================== RCS file: /cvsroot/mozilla/content/xul/document/src/nsXULDocument.cpp,v retrieving revision 1.646 diff -p -u -8 -r1.646 nsXULDocument.cpp --- content/xul/document/src/nsXULDocument.cpp 18 Feb 2005 21:28:20 -0000 1.646 +++ content/xul/document/src/nsXULDocument.cpp 21 Feb 2005 11:21:24 -0000 @@ -2649,16 +2649,204 @@ nsXULDocument::AddChromeOverlays() } mUnloadedOverlays->AppendElement(uri); } return NS_OK; } +NS_IMETHODIMP +nsXULDocument::LoadOverlay(const nsAString& aURL, nsIObserver* aObserver) +{ + nsresult rv; + + nsCOMPtr uri; + rv = NS_NewURI(getter_AddRefs(uri), aURL, nsnull); + if (NS_FAILED(rv)) return rv; + + if (aObserver) { + nsIObserver* obs = nsnull; + if (!mOverlayLoadObservers.IsInitialized()) + mOverlayLoadObservers.Init(); + else + obs = mOverlayLoadObservers.GetWeak(uri); + if (!obs) + mOverlayLoadObservers.Put(uri, aObserver); + else { + // We don't support loading the same overlay twice into the same + // document - that doesn't make sense anyway. + return NS_ERROR_FAILURE; + } + } + PRBool shouldReturn; + return LoadOverlayInternal(uri, PR_TRUE, &shouldReturn); +} + +nsresult +nsXULDocument::LoadOverlayInternal(nsIURI* aURI, PRBool aIsDynamic, PRBool* aShouldReturn) +{ + nsresult rv; + + *aShouldReturn = PR_FALSE; + + nsCOMPtr secMan = do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv); + NS_ENSURE_SUCCESS(rv, rv); + +#ifdef PR_LOGGING + if (PR_LOG_TEST(gXULLog, PR_LOG_DEBUG)) { + nsCAutoString urlspec; + aURI->GetSpec(urlspec); + + PR_LOG(gXULLog, PR_LOG_DEBUG, + ("xul: loading overlay %s", urlspec.get())); + } +#endif + + mResolutionPhase = nsForwardReference::eStart; + + // Chrome documents are allowed to load overlays from anywhere. + // Also, any document may load a chrome:// overlay. + // In all other cases, the overlay is only allowed to load if + // the master document and prototype document have the same origin. + + PRBool overlayIsChrome = IsChromeURI(aURI); + if (!IsChromeURI(mDocumentURI) && !overlayIsChrome) { + // Make sure we're allowed to load this overlay. + rv = secMan->CheckSameOriginURI(mDocumentURI, aURI); + if (NS_FAILED(rv)) return rv; + } + + // Look in the prototype cache for the prototype document with + // the specified overlay URI. + if (overlayIsChrome) + gXULCache->GetPrototype(aURI, getter_AddRefs(mCurrentPrototype)); + else + mCurrentPrototype = nsnull; + + // Same comment as nsChromeProtocolHandler::NewChannel and + // nsXULDocument::StartDocumentLoad + // - Ben Goodger + // + // We don't abort on failure here because there are too many valid + // cases that can return failure, and the null-ness of |proto| is + // enough to trigger the fail-safe parse-from-disk solution. + // Example failure cases (for reference) include: + // + // NS_ERROR_NOT_AVAILABLE: the URI was not found in the FastLoad file, + // parse from disk + // other: the FastLoad file, XUL.mfl, could not be found, probably + // due to being accessed before a profile has been selected + // (e.g. loading chrome for the profile manager itself). + // The .xul file must be parsed from disk. + + PRBool useXULCache; + gXULCache->GetEnabled(&useXULCache); + mIsWritingFastLoad = useXULCache; + + if (useXULCache && mCurrentPrototype) { + PRBool loaded; + rv = mCurrentPrototype->AwaitLoadDone(this, &loaded); + if (NS_FAILED(rv)) return rv; + + if (! loaded) { + // Return to the main event loop and eagerly await the + // prototype overlay load's completion. When the content + // sink completes, it will trigger an EndLoad(), which'll + // wind us back up here, in ResumeWalk(). + *aShouldReturn = PR_TRUE; + return NS_OK; + } + + // Found the overlay's prototype in the cache, fully loaded. + rv = AddPrototypeSheets(); + if (NS_FAILED(rv)) return rv; + + // Now prepare to walk the prototype to create its content + rv = PrepareToWalk(); + if (NS_FAILED(rv)) return rv; + + PR_LOG(gXULLog, PR_LOG_DEBUG, ("xul: overlay was cached")); + + // If this is a dynamic overlay and we have the prototype in the chrome + // cache already, we must manually call ResumeWalk. + if (aIsDynamic) + return ResumeWalk(); + } + else { + // Not there. Initiate a load. + PR_LOG(gXULLog, PR_LOG_DEBUG, ("xul: overlay was not cached")); + + nsCOMPtr parser; + rv = PrepareToLoadPrototype(aURI, "view", nsnull, getter_AddRefs(parser)); + if (NS_FAILED(rv)) return rv; + + // Predicate mIsWritingFastLoad on the XUL cache being enabled, + // so we don't have to re-check whether the cache is enabled all + // the time. + mIsWritingFastLoad = useXULCache; + + nsCOMPtr listener = do_QueryInterface(parser); + if (! listener) + return NS_ERROR_UNEXPECTED; + + // Add an observer to the parser; this'll get called when + // Necko fires its On[Start|Stop]Request() notifications, + // and will let us recover from a missing overlay. + ParserObserver* parserObserver = new ParserObserver(this); + if (! parserObserver) + return NS_ERROR_OUT_OF_MEMORY; + + NS_ADDREF(parserObserver); + parser->Parse(aURI, parserObserver); + NS_RELEASE(parserObserver); + + nsCOMPtr group = do_QueryReferent(mDocumentLoadGroup); + rv = NS_OpenURI(listener, nsnull, aURI, nsnull, group); + if (NS_FAILED(rv)) { + // Just move on to the next overlay. NS_OpenURI could fail + // just because a channel could not be opened, which can happen + // if a file or chrome package does not exist. + ReportMissingOverlay(aURI); + return rv; + } + + // If it's a 'chrome:' prototype document, then put it into + // the prototype cache; other XUL documents will be reloaded + // each time. We must do this after NS_OpenURI and AsyncOpen, + // or chrome code will wrongly create a cached chrome channel + // instead of a real one. + if (useXULCache && overlayIsChrome) { + rv = gXULCache->PutPrototype(mCurrentPrototype); + if (NS_FAILED(rv)) return rv; + } + + // Return to the main event loop and eagerly await the + // overlay load's completion. When the content sink + // completes, it will trigger an EndLoad(), which'll wind + // us back in ResumeWalk(). + if (!aIsDynamic) + *aShouldReturn = PR_TRUE; + } + return NS_OK; +} + +PR_STATIC_CALLBACK(PLDHashOperator) +FirePendingMergeNotification(nsIURI* aKey, nsCOMPtr& aObserver, void* aClosure) +{ + aObserver->Observe(aKey, "xul-overlay-merged", EmptyString().get()); + + typedef nsInterfaceHashtable table; + table* observers = NS_STATIC_CAST(table*, aClosure); + if (observers) + observers->Remove(aKey); + + return PL_DHASH_REMOVE; +} + nsresult nsXULDocument::ResumeWalk() { // Walk the prototype and build the delegate content model. The // walk is performed in a top-down, left-to-right fashion. That // is, a parent is built before any of its children; a node is // only built after all of its siblings to the left are fully // constructed. @@ -2965,43 +3153,88 @@ nsXULDocument::ResumeWalk() // If we get here, there is nothing left for us to walk. The content // model is built and ready for layout. rv = ResolveForwardReferences(); if (NS_FAILED(rv)) return rv; rv = ApplyPersistentAttributes(); if (NS_FAILED(rv)) return rv; - // Everything after this point we only want to do once we're - // certain that we've been embedded in a presentation shell. - - nsAutoString title; - mRootContent->GetAttr(kNameSpaceID_None, nsHTMLAtoms::title, title); - SetTitle(title); - - StartLayout(); - - if (mIsWritingFastLoad && IsChromeURI(mDocumentURI)) - gXULCache->WritePrototype(mMasterPrototype); - - for (PRInt32 i = mObservers.Count() - 1; i >= 0; --i) { - nsIDocumentObserver* observer = (nsIDocumentObserver*) mObservers[i]; - observer->EndLoad(this); - } - NS_ASSERTION(mPlaceHolderRequest, "Bug 119310, perhaps overlayinfo referenced a overlay that doesn't exist"); - if (mPlaceHolderRequest) { - // Remove the placeholder channel; if we're the last channel in the - // load group, this will fire the OnEndDocumentLoad() method in the - // docshell, and run the onload handlers, etc. - nsCOMPtr group = do_QueryReferent(mDocumentLoadGroup); - if (group) { - rv = group->RemoveRequest(mPlaceHolderRequest, nsnull, NS_OK); - if (NS_FAILED(rv)) return rv; + if (!mInitialLayoutComplete) { + // Everything after this point we only want to do once we're + // certain that we've been embedded in a presentation shell. + + nsAutoString title; + mRootContent->GetAttr(kNameSpaceID_None, nsHTMLAtoms::title, title); + SetTitle(title); + + StartLayout(); + + if (mIsWritingFastLoad && IsChromeURI(mDocumentURI)) + gXULCache->WritePrototype(mMasterPrototype); + + for (PRInt32 i = mObservers.Count() - 1; i >= 0; --i) { + nsIDocumentObserver* observer = (nsIDocumentObserver*) mObservers[i]; + observer->EndLoad(this); + } + NS_ASSERTION(mPlaceHolderRequest, "Bug 119310, perhaps overlayinfo referenced a overlay that doesn't exist"); + if (mPlaceHolderRequest) { + // Remove the placeholder channel; if we're the last channel in the + // load group, this will fire the OnEndDocumentLoad() method in the + // docshell, and run the onload handlers, etc. + nsCOMPtr group = do_QueryReferent(mDocumentLoadGroup); + if (group) { + rv = group->RemoveRequest(mPlaceHolderRequest, nsnull, NS_OK); + if (NS_FAILED(rv)) return rv; + } + } + mInitialLayoutComplete = PR_TRUE; - mPlaceHolderRequest = nsnull; + // Walk the set of pending load notifications and notify any observers. + // See below for detail. + if (mPendingOverlayLoadNotifications.IsInitialized()) + mPendingOverlayLoadNotifications.Enumerate(FirePendingMergeNotification, (void*)&mOverlayLoadObservers); + } + else { + if (mOverlayLoadObservers.IsInitialized()) { + nsCOMPtr overlayURI; + mCurrentPrototype->GetURI(getter_AddRefs(overlayURI)); + nsCOMPtr obs; + if (mInitialLayoutComplete) { + // We have completed initial layout, so just send the notification. + mOverlayLoadObservers.Get(overlayURI, getter_AddRefs(obs)); + NS_ASSERTION(obs, "null overlay load observer?!"); + obs->Observe(overlayURI, "xul-overlay-merged", EmptyString().get()); + mOverlayLoadObservers.Remove(overlayURI); + } + else { + // If we have not yet displayed the document for the first time + // (i.e. we came in here as the result of a dynamic overlay load + // which was spawned by a binding-attached event caused by + // StartLayout() on the master prototype - we must remember that + // this overlay has been merged and tell the listeners after + // StartLayout() is completely finished rather than doing so + // immediately - otherwise we may be executing code that needs to + // access XBL Binding implementations on nodes for which frames + // have not yet been constructed because their bindings have not + // yet been attached. This can be a race condition because dynamic + // overlay loading can take varying amounts of time depending on + // whether or not the overlay prototype is in the XUL cache. The + // most likely effect of this bug is odd UI initialization due to + // methods and properties that do not work. + if (!mPendingOverlayLoadNotifications.IsInitialized()) + mPendingOverlayLoadNotifications.Init(); + else + mPendingOverlayLoadNotifications.Get(overlayURI, getter_AddRefs(obs)); + if (!obs) { + mOverlayLoadObservers.Get(overlayURI, getter_AddRefs(obs)); + NS_ASSERTION(obs, "null overlay load observer?"); + mPendingOverlayLoadNotifications.Put(overlayURI, obs); + } + } } } return rv; } void nsXULDocument::ReportMissingOverlay(nsIURI* aURI) @@ -3331,17 +3564,17 @@ nsXULDocument::CreateOverlayElement(nsXU // element. I'd use an XML element, but it gets its knickers in a // knot with DOM ranges when you try to remove its children. nsCOMPtr element; rv = nsXULElement::Create(aPrototype, this, PR_FALSE, getter_AddRefs(element)); if (NS_FAILED(rv)) return rv; OverlayForwardReference* fwdref = - new OverlayForwardReference(this, element); + new OverlayForwardReference(this, element, mInitialLayoutComplete); if (! fwdref) return NS_ERROR_OUT_OF_MEMORY; // transferring ownership to ya... rv = AddForwardReference(fwdref); if (NS_FAILED(rv)) return rv; *aResult = element; @@ -3561,17 +3794,17 @@ nsXULDocument::OverlayForwardReference:: nsresult rv; nsAutoString id; rv = mOverlay->GetAttr(kNameSpaceID_None, nsXULAtoms::id, id); if (NS_FAILED(rv)) return eResolve_Error; if (id.IsEmpty()) { // overlay had no id, use the root element - mDocument->InsertElement(mDocument->mRootContent, mOverlay); + mDocument->InsertElement(mDocument->mRootContent, mOverlay, mDidInitialReflow); mResolved = PR_TRUE; return eResolve_Succeeded; } nsCOMPtr domtarget; rv = mDocument->GetElementById(id, getter_AddRefs(domtarget)); if (NS_FAILED(rv)) return eResolve_Error; @@ -3580,17 +3813,17 @@ nsXULDocument::OverlayForwardReference:: if (! domtarget) return eResolve_Later; nsCOMPtr target = do_QueryInterface(domtarget); NS_ASSERTION(target != nsnull, "not an nsIContent"); if (! target) return eResolve_Error; - rv = Merge(target, mOverlay); + rv = Merge(target, mOverlay, mDidInitialReflow); if (NS_FAILED(rv)) return eResolve_Error; // Add child and any descendants to the element map rv = mDocument->AddSubtreeToDocument(target); if (NS_FAILED(rv)) return eResolve_Error; #ifdef PR_LOGGING if (PR_LOG_TEST(gXULLog, PR_LOG_NOTICE)) { @@ -3605,23 +3838,32 @@ nsXULDocument::OverlayForwardReference:: mResolved = PR_TRUE; return eResolve_Succeeded; } nsresult nsXULDocument::OverlayForwardReference::Merge(nsIContent* aTargetNode, - nsIContent* aOverlayNode) + nsIContent* aOverlayNode, + PRBool aNotify) { // This function is given: // aTargetNode: the node in the document whose 'id' attribute // matches a toplevel node in our overlay. // aOverlayNode: the node in the overlay document that matches // a node in the actual document. + // aNotify: whether or not content manipulation methods should + // use the aNotify parameter. After the initial + // reflow (i.e. in the dynamic overlay merge case), + // we want all the content manipulation methods we + // call to notify so that frames are constructed + // etc. Otherwise do not, since that's during initial + // document construction before StartLayout has been + // called which will do everything for us. // // This function merges the tree from the overlay into the tree in // the document, overwriting attributes and appending child content // nodes appropriately. (See XUL overlay reference for details) nsresult rv; // Merge attributes from the overlay content node to that of the @@ -3647,23 +3889,23 @@ nsXULDocument::OverlayForwardReference:: nsAutoString tempID; rv = aOverlayNode->GetAttr(kNameSpaceID_None, nsXULAtoms::id, tempID); // Element in the overlay has the 'removeelement' attribute set // so remove it from the actual document. if (attr == nsXULAtoms::removeelement && value.EqualsLiteral("true")) { - rv = RemoveElement(aTargetNode->GetParent(), aTargetNode); + rv = RemoveElement(aTargetNode->GetParent(), aTargetNode, aNotify); if (NS_FAILED(rv)) return rv; return NS_OK; } - rv = aTargetNode->SetAttr(nameSpaceID, attr, prefix, value, PR_FALSE); + rv = aTargetNode->SetAttr(nameSpaceID, attr, prefix, value, aNotify); if (NS_FAILED(rv)) return rv; } // Walk our child nodes, looking for elements that have the 'id' // attribute set. If we find any, we must do a parent check in the // actual document to ensure that the structure matches that of // the actual document. If it does, we can call ourselves and attempt @@ -3714,29 +3956,29 @@ nsXULDocument::OverlayForwardReference:: if (NS_FAILED(rv)) return rv; nsCOMPtr elementParent(do_QueryInterface(nodeParent)); nsAutoString parentID; elementParent->GetAttribute(NS_LITERAL_STRING("id"), parentID); if (parentID.Equals(documentParentID)) { // The element matches. "Go Deep!" nsCOMPtr childDocumentContent(do_QueryInterface(nodeInDocument)); - rv = Merge(childDocumentContent, currContent); + rv = Merge(childDocumentContent, currContent, aNotify); if (NS_FAILED(rv)) return rv; rv = aOverlayNode->RemoveChildAt(0, PR_FALSE); if (NS_FAILED(rv)) return rv; continue; } } rv = aOverlayNode->RemoveChildAt(0, PR_FALSE); if (NS_FAILED(rv)) return rv; - rv = InsertElement(aTargetNode, currContent); + rv = InsertElement(aTargetNode, currContent, aNotify); if (NS_FAILED(rv)) return rv; } return NS_OK; } @@ -3972,17 +4214,17 @@ nsXULDocument::CheckBroadcasterHookup(ns #endif *aNeedsHookup = PR_FALSE; *aDidResolve = PR_TRUE; return NS_OK; } nsresult -nsXULDocument::InsertElement(nsIContent* aParent, nsIContent* aChild) +nsXULDocument::InsertElement(nsIContent* aParent, nsIContent* aChild, PRBool aNotify) { // Insert aChild appropriately into aParent, accounting for a // 'pos' attribute set on aChild. nsresult rv; nsAutoString posStr; PRBool wasInserted = PR_FALSE; @@ -4024,17 +4266,17 @@ nsXULDocument::InsertElement(nsIContent* NS_ASSERTION(content != nsnull, "null ptr"); if (!content) return NS_ERROR_UNEXPECTED; PRInt32 pos = aParent->IndexOf(content); if (pos != -1) { pos = isInsertAfter ? pos + 1 : pos; - rv = aParent->InsertChildAt(aChild, pos, PR_FALSE, PR_TRUE); + rv = aParent->InsertChildAt(aChild, pos, aNotify, PR_TRUE); if (NS_FAILED(rv)) return rv; wasInserted = PR_TRUE; } } } @@ -4042,41 +4284,41 @@ nsXULDocument::InsertElement(nsIContent* rv = aChild->GetAttr(kNameSpaceID_None, nsXULAtoms::position, posStr); if (NS_FAILED(rv)) return rv; if (rv == NS_CONTENT_ATTR_HAS_VALUE) { // Positions are one-indexed. PRInt32 pos = posStr.ToInteger(NS_REINTERPRET_CAST(PRInt32*, &rv)); if (NS_SUCCEEDED(rv)) { - rv = aParent->InsertChildAt(aChild, pos - 1, PR_FALSE, + rv = aParent->InsertChildAt(aChild, pos - 1, aNotify, PR_TRUE); if (NS_SUCCEEDED(rv)) wasInserted = PR_TRUE; // If the insertion fails, then we should still // attempt an append. Thus, rather than returning rv // immediately, we fall through to the final // "catch-all" case that just does an AppendChildTo. } } } if (! wasInserted) { - rv = aParent->AppendChildTo(aChild, PR_FALSE, PR_TRUE); + rv = aParent->AppendChildTo(aChild, aNotify, PR_TRUE); if (NS_FAILED(rv)) return rv; } return NS_OK; } nsresult -nsXULDocument::RemoveElement(nsIContent* aParent, nsIContent* aChild) +nsXULDocument::RemoveElement(nsIContent* aParent, nsIContent* aChild, PRBool aNotify) { PRInt32 nodeOffset = aParent->IndexOf(aChild); - return aParent->RemoveChildAt(nodeOffset, PR_TRUE); + return aParent->RemoveChildAt(nodeOffset, aNotify); } //---------------------------------------------------------------------- // // CachedChromeStreamListener // nsXULDocument::CachedChromeStreamListener::CachedChromeStreamListener(nsXULDocument* aDocument, PRBool aProtoLoaded) Index: content/xul/document/src/nsXULDocument.h =================================================================== RCS file: /cvsroot/mozilla/content/xul/document/src/nsXULDocument.h,v retrieving revision 1.168 diff -p -u -8 -r1.168 nsXULDocument.h --- content/xul/document/src/nsXULDocument.h 18 Feb 2005 21:28:20 -0000 1.168 +++ content/xul/document/src/nsXULDocument.h 21 Feb 2005 11:21:25 -0000 @@ -64,17 +64,19 @@ class nsIFocusController; class nsIObjectInputStream; class nsIObjectOutputStream; class nsIXULPrototypeScript; #else #include "nsIObjectInputStream.h" #include "nsIObjectOutputStream.h" #include "nsXULElement.h" #endif - +#include "nsURIHashKey.h" +#include "nsInterfaceHashtable.h" + struct JSObject; struct PRLogModuleInfo; #include "nsIFastLoadService.h" // XXXbe temporary? /** * The XUL document class */ @@ -200,16 +202,19 @@ protected: nsIParser** aResult); nsresult PrepareToLoadPrototype(nsIURI* aURI, const char* aCommand, nsIPrincipal* aDocumentPrincipal, nsIParser** aResult); + nsresult + LoadOverlayInternal(nsIURI* aURI, PRBool aIsDynamic, PRBool* aShouldReturn); + nsresult ApplyPersistentAttributes(); nsresult ApplyPersistentAttributesToElements(nsIRDFResource* aResource, nsISupportsArray* aElements); nsresult AddElementToDocumentPre(nsIContent* aElement); nsresult @@ -435,22 +440,24 @@ protected: * Used to hook up overlays */ class OverlayForwardReference : public nsForwardReference { protected: nsXULDocument* mDocument; // [WEAK] nsCOMPtr mOverlay; // [OWNER] PRBool mResolved; + PRBool mDidInitialReflow; - nsresult Merge(nsIContent* aTargetNode, nsIContent* aOverlayNode); + nsresult Merge(nsIContent* aTargetNode, nsIContent* aOverlayNode, PRBool aNotify); public: - OverlayForwardReference(nsXULDocument* aDocument, nsIContent* aOverlay) - : mDocument(aDocument), mOverlay(aOverlay), mResolved(PR_FALSE) {} + OverlayForwardReference(nsXULDocument* aDocument, nsIContent* aOverlay, PRBool aDidInitialReflow) + : mDocument(aDocument), mOverlay(aOverlay), mResolved(PR_FALSE), + mDidInitialReflow(aDidInitialReflow) {} virtual ~OverlayForwardReference(); virtual Phase GetPhase() { return eConstruction; } virtual Result Resolve(); }; friend class OverlayForwardReference; @@ -479,21 +486,21 @@ protected: void SynchronizeBroadcastListener(nsIDOMElement *aBroadcaster, nsIDOMElement *aListener, const nsAString &aAttr); static nsresult - InsertElement(nsIContent* aParent, nsIContent* aChild); + InsertElement(nsIContent* aParent, nsIContent* aChild, PRBool aNotify); static nsresult - RemoveElement(nsIContent* aParent, nsIContent* aChild); + RemoveElement(nsIContent* aParent, nsIContent* aChild, PRBool aNotify); /** * The current prototype that we are walking to construct the * content model. */ nsCOMPtr mCurrentPrototype; /** @@ -569,14 +576,18 @@ protected: friend class ParserObserver; /** * A map from a broadcaster element to a list of listener elements. */ PLDHashTable* mBroadcasterMap; + nsInterfaceHashtable mOverlayLoadObservers; + nsInterfaceHashtable mPendingOverlayLoadNotifications; + + PRBool mInitialLayoutComplete; private: // helpers }; #endif // nsXULDocument_h__ Index: dom/public/idl/xul/nsIDOMXULDocument.idl =================================================================== RCS file: /cvsroot/mozilla/dom/public/idl/xul/nsIDOMXULDocument.idl,v retrieving revision 1.6 diff -p -u -8 -r1.6 nsIDOMXULDocument.idl --- dom/public/idl/xul/nsIDOMXULDocument.idl 17 Apr 2004 21:50:12 -0000 1.6 +++ dom/public/idl/xul/nsIDOMXULDocument.idl 21 Feb 2005 11:21:31 -0000 @@ -35,19 +35,19 @@ * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "domstubs.idl" interface nsIDOMXULCommandDispatcher; +interface nsIObserver; - -[scriptable, uuid(17ddd8c0-c5f8-11d2-a6ae-00104bde6048)] +[scriptable, uuid(e64bb081-13ba-430e-ab70-73a9f1d3de58)] interface nsIDOMXULDocument : nsISupports { attribute nsIDOMNode popupNode; attribute nsIDOMNode tooltipNode; readonly attribute nsIDOMXULCommandDispatcher commandDispatcher; readonly attribute long width; @@ -60,9 +60,11 @@ interface nsIDOMXULDocument : nsISupport in nsIDOMElement observer, in DOMString attr); void removeBroadcastListenerFor(in nsIDOMElement broadcaster, in nsIDOMElement observer, in DOMString attr); void persist(in DOMString id, in DOMString attr); + + void loadOverlay(in DOMString url, in nsIObserver aObserver); }; Index: netwerk/base/public/nsURIHashKey.h =================================================================== RCS file: /cvsroot/mozilla/netwerk/base/public/nsURIHashKey.h,v retrieving revision 1.3 diff -p -u -8 -r1.3 nsURIHashKey.h --- netwerk/base/public/nsURIHashKey.h 20 Feb 2005 01:47:10 -0000 1.3 +++ netwerk/base/public/nsURIHashKey.h 21 Feb 2005 11:22:37 -0000 @@ -30,16 +30,18 @@ * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ +#ifndef nsURIHashKey_h__ +#define nsURIHashKey_h__ #include "pldhash.h" #include "nsCOMPtr.h" #include "nsCRT.h" /** * Hashtable key class to use with nsTHashtable/nsBaseHashtable */ @@ -73,8 +75,10 @@ public: return nsCRT::HashCode(spec.get()); } enum { ALLOW_MEMMOVE = PR_TRUE }; private: nsCOMPtr mKey; }; + +#endif // nsURIHashKey_h__ Index: toolkit/components/passwordmgr/resources/content/passwordManager.xul =================================================================== RCS file: /cvsroot/mozilla/toolkit/components/passwordmgr/resources/content/passwordManager.xul,v retrieving revision 1.4 diff -p -u -8 -r1.4 passwordManager.xul --- toolkit/components/passwordmgr/resources/content/passwordManager.xul 1 Feb 2005 17:07:03 -0000 1.4 +++ toolkit/components/passwordmgr/resources/content/passwordManager.xul 21 Feb 2005 11:22:58 -0000 @@ -37,84 +37,85 @@ # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** - + -