diff options
-rw-r--r-- | application/palemoon/base/content/autocomplete.xml | 46 | ||||
-rw-r--r-- | application/palemoon/base/content/browser.css | 40 | ||||
-rw-r--r-- | application/palemoon/base/content/browser.xul | 4 | ||||
-rw-r--r-- | application/palemoon/base/content/urlbarBindings.xml | 24 | ||||
-rw-r--r-- | application/palemoon/components/feeds/FeedConverter.js | 2 | ||||
-rw-r--r-- | application/palemoon/components/feeds/FeedWriter.js | 19 | ||||
-rw-r--r-- | application/palemoon/themes/linux/autocomplete.css | 46 | ||||
-rw-r--r-- | application/palemoon/themes/osx/autocomplete.css | 46 | ||||
-rw-r--r-- | application/palemoon/themes/windows/autocomplete.css | 48 | ||||
-rw-r--r-- | js/xpconnect/src/ExportHelpers.cpp | 11 | ||||
-rw-r--r-- | js/xpconnect/tests/unit/test_exportFunction.js | 3 | ||||
-rw-r--r-- | security/nss/lib/softoken/sftkpwd.c | 4 | ||||
-rw-r--r-- | toolkit/locales/en-US/chrome/mozapps/preferences/changemp.dtd | 2 | ||||
-rw-r--r-- | toolkit/mozapps/extensions/internal/XPIProvider.jsm | 24 | ||||
-rw-r--r-- | toolkit/mozapps/preferences/changemp.js | 12 | ||||
-rw-r--r-- | toolkit/mozapps/preferences/changemp.xul | 7 |
16 files changed, 176 insertions, 162 deletions
diff --git a/application/palemoon/base/content/autocomplete.xml b/application/palemoon/base/content/autocomplete.xml index 3cb80b19d..9291b205b 100644 --- a/application/palemoon/base/content/autocomplete.xml +++ b/application/palemoon/base/content/autocomplete.xml @@ -3,13 +3,13 @@ - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> -<bindings id="autocompleteBindings" +<bindings id="privateAutocompleteBindings" xmlns="http://www.mozilla.org/xbl" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:xbl="http://www.mozilla.org/xbl"> - <binding id="autocomplete" role="xul:combobox" + <binding id="private-autocomplete" role="xul:combobox" extends="chrome://global/content/bindings/textbox.xml#textbox"> <resources> <stylesheet src="chrome://browser/content/autocomplete.css"/> @@ -17,25 +17,25 @@ </resources> <content sizetopopup="pref"> - <xul:hbox class="autocomplete-textbox-container" flex="1" xbl:inherits="focused"> + <xul:hbox class="private-autocomplete-textbox-container" flex="1" xbl:inherits="focused"> <children includes="image|deck|stack|box"> - <xul:image class="autocomplete-icon" allowevents="true"/> + <xul:image class="private-autocomplete-icon" allowevents="true"/> </children> <xul:hbox anonid="textbox-input-box" class="textbox-input-box" flex="1" xbl:inherits="tooltiptext=inputtooltiptext"> <children/> - <html:input anonid="input" class="autocomplete-textbox textbox-input" + <html:input anonid="input" class="private-autocomplete-textbox textbox-input" allowevents="true" xbl:inherits="tooltiptext=inputtooltiptext,value,type=inputtype,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey,mozactionhint"/> </xul:hbox> <children includes="hbox"/> </xul:hbox> - <xul:dropmarker anonid="historydropmarker" class="autocomplete-history-dropmarker" + <xul:dropmarker anonid="historydropmarker" class="private-autocomplete-history-dropmarker" allowevents="true" xbl:inherits="open,enablehistory,parentfocused=focused"/> - <xul:popupset anonid="popupset" class="autocomplete-result-popupset"/> + <xul:popupset anonid="popupset" class="private-autocomplete-result-popupset"/> <children includes="toolbarbutton"/> </content> @@ -656,7 +656,7 @@ </handlers> </binding> - <binding id="autocomplete-result-popup" extends="chrome://browser/content/autocomplete.xml#autocomplete-base-popup"> + <binding id="private-autocomplete-result-popup" extends="chrome://browser/content/autocomplete.xml#private-autocomplete-base-popup"> <resources> <stylesheet src="chrome://browser/content/autocomplete.css"/> <stylesheet src="chrome://global/skin/tree.css"/> @@ -664,11 +664,11 @@ </resources> <content ignorekeys="true" level="top" consumeoutsideclicks="never"> - <xul:tree anonid="tree" class="autocomplete-tree plain" hidecolumnpicker="true" flex="1" seltype="single"> + <xul:tree anonid="tree" class="private-autocomplete-tree plain" hidecolumnpicker="true" flex="1" seltype="single"> <xul:treecols anonid="treecols"> - <xul:treecol id="treecolAutoCompleteValue" class="autocomplete-treecol" flex="1" overflow="true"/> + <xul:treecol id="treecolAutoCompleteValue" class="private-autocomplete-treecol" flex="1" overflow="true"/> </xul:treecols> - <xul:treechildren class="autocomplete-treebody"/> + <xul:treechildren class="private-autocomplete-treebody"/> </xul:tree> </content> @@ -718,7 +718,7 @@ <body> <![CDATA[ var col = document.createElement("treecol"); - col.setAttribute("class", "autocomplete-treecol"); + col.setAttribute("class", "private-autocomplete-treecol"); for (var name in aAttrs) col.setAttribute(name, aAttrs[name]); this.treecols.appendChild(col); @@ -866,7 +866,7 @@ </implementation> </binding> - <binding id="autocomplete-base-popup" role="none" + <binding id="private-autocomplete-base-popup" role="none" extends="chrome://global/content/bindings/popup.xml#popup"> <implementation implements="nsIAutoCompletePopup"> <field name="mInput">null</field> @@ -1010,14 +1010,14 @@ extends="chrome://global/content/bindings/popup.xml#popup"> </handlers> </binding> - <binding id="autocomplete-rich-result-popup" extends="chrome://browser/content/autocomplete.xml#autocomplete-base-popup"> + <binding id="private-autocomplete-rich-result-popup" extends="chrome://browser/content/autocomplete.xml#private-autocomplete-base-popup"> <resources> <stylesheet src="chrome://browser/content/autocomplete.css"/> <stylesheet src="chrome://browser/skin/autocomplete.css"/> </resources> <content ignorekeys="true" level="top" consumeoutsideclicks="never"> - <xul:richlistbox anonid="richlistbox" class="autocomplete-richlistbox" flex="1"/> + <xul:richlistbox anonid="richlistbox" class="private-autocomplete-richlistbox" flex="1"/> <xul:hbox> <children/> </xul:hbox> @@ -1270,7 +1270,7 @@ extends="chrome://global/content/bindings/popup.xml#popup"> else { // set the class at the end so we can use the attributes // in the xbl constructor - item.className = "autocomplete-richlistitem"; + item.className = "private-autocomplete-richlistitem"; this.richlistbox.appendChild(item); } @@ -1322,7 +1322,7 @@ extends="chrome://global/content/bindings/popup.xml#popup"> </implementation> </binding> - <binding id="autocomplete-richlistitem" extends="chrome://global/content/bindings/richlistbox.xml#richlistitem"> + <binding id="private-autocomplete-richlistitem" extends="chrome://global/content/bindings/richlistbox.xml#richlistitem"> <content> <xul:hbox align="center" class="ac-title-box"> <xul:image xbl:inherits="src=image" class="ac-site-icon"/> @@ -2015,16 +2015,16 @@ extends="chrome://global/content/bindings/popup.xml#popup"> </implementation> </binding> - <binding id="autocomplete-tree" extends="chrome://global/content/bindings/tree.xml#tree"> + <binding id="private-autocomplete-tree" extends="chrome://global/content/bindings/tree.xml#tree"> <content> <children includes="treecols"/> - <xul:treerows class="autocomplete-treerows tree-rows" xbl:inherits="hidescrollbar" flex="1"> + <xul:treerows class="private-autocomplete-treerows tree-rows" xbl:inherits="hidescrollbar" flex="1"> <children/> </xul:treerows> </content> </binding> - <binding id="autocomplete-richlistbox" extends="chrome://global/content/bindings/richlistbox.xml#richlistbox"> + <binding id="private-autocomplete-richlistbox" extends="chrome://global/content/bindings/richlistbox.xml#richlistbox"> <implementation> <field name="mLastMoveTime">Date.now()</field> <field name="mouseSelectedIndex">-1</field> @@ -2068,7 +2068,7 @@ extends="chrome://global/content/bindings/popup.xml#popup"> </handlers> </binding> - <binding id="autocomplete-treebody"> + <binding id="private-autocomplete-treebody"> <implementation> <field name="mLastMoveTime">Date.now()</field> </implementation> @@ -2093,7 +2093,7 @@ extends="chrome://global/content/bindings/popup.xml#popup"> </handlers> </binding> - <binding id="autocomplete-treerows"> + <binding id="private-autocomplete-treerows"> <content> <xul:hbox flex="1" class="tree-bodybox"> <children/> @@ -2102,7 +2102,7 @@ extends="chrome://global/content/bindings/popup.xml#popup"> </content> </binding> - <binding id="history-dropmarker" extends="chrome://global/content/bindings/general.xml#dropmarker"> + <binding id="private-history-dropmarker" extends="chrome://global/content/bindings/general.xml#dropmarker"> <implementation> <method name="showPopup"> <body><![CDATA[ diff --git a/application/palemoon/base/content/browser.css b/application/palemoon/base/content/browser.css index a72d77488..91ae9aa18 100644 --- a/application/palemoon/base/content/browser.css +++ b/application/palemoon/base/content/browser.css @@ -328,56 +328,54 @@ panel[noactions] > richlistbox > richlistitem[type~="action"] > .ac-url-box > .a visibility: hidden; } -/* Override xul.css for autocomplete bindings and css */ -textbox[type="autocomplete"] { +/* Private Autocomplete */ +textbox[type="private-autocomplete"] { -moz-binding: url("chrome://browser/content/autocomplete.xml#autocomplete"); } -panel[type="autocomplete"] { +panel[type="private-autocomplete"] { -moz-binding: url("chrome://browser/content/autocomplete.xml#autocomplete-result-popup"); } -panel[type="autocomplete-richlistbox"] { - -moz-binding: url("chrome://browser/content/autocomplete.xml#autocomplete-rich-result-popup"); +panel[type="private-autocomplete-richlistbox"] { + -moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-rich-result-popup"); } -/* FIXME: bug 616258 */ - -.autocomplete-tree { - -moz-binding: url("chrome://browser/content/autocomplete.xml#autocomplete-tree"); +.private-autocomplete-tree { + -moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-tree"); -moz-user-focus: ignore; } -.autocomplete-treebody { - -moz-binding: url("chrome://browser/content/autocomplete.xml#autocomplete-treebody"); +.private-autocomplete-treebody { + -moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-treebody"); } -.autocomplete-richlistbox { - -moz-binding: url("chrome://browser/content/autocomplete.xml#autocomplete-richlistbox"); +.private-autocomplete-richlistbox { + -moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-richlistbox"); -moz-user-focus: ignore; } -.autocomplete-richlistbox > scrollbox { +.private-autocomplete-richlistbox > scrollbox { overflow-x: hidden !important; } -.autocomplete-richlistitem { - -moz-binding: url("chrome://browser/content/autocomplete.xml#autocomplete-richlistitem"); +.private-autocomplete-richlistitem { + -moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-richlistitem"); -moz-box-orient: vertical; overflow: -moz-hidden-unscrollable; } -.autocomplete-treerows { - -moz-binding: url("chrome://browser/content/autocomplete.xml#autocomplete-treerows"); +.private-autocomplete-treerows { + -moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-treerows"); } -.autocomplete-history-dropmarker { +.private-autocomplete-history-dropmarker { display: none; } -.autocomplete-history-dropmarker[enablehistory="true"] { +.private-autocomplete-history-dropmarker[enablehistory="true"] { display: -moz-box; - -moz-binding: url("chrome://browser/content/autocomplete.xml#history-dropmarker"); + -moz-binding: url("chrome://browser/content/autocomplete.xml#private-history-dropmarker"); } .ac-ellipsis-after { diff --git a/application/palemoon/base/content/browser.xul b/application/palemoon/base/content/browser.xul index ea9c3f969..11c4f16f9 100644 --- a/application/palemoon/base/content/browser.xul +++ b/application/palemoon/base/content/browser.xul @@ -128,9 +128,11 @@ <!-- for search and content formfill/pw manager --> <panel type="autocomplete" id="PopupAutoComplete" noautofocus="true" hidden="true"/> + <panel type="private-autocomplete" id="PopupAutoComplete" noautofocus="true" hidden="true"/> <!-- for url bar autocomplete --> <panel type="autocomplete-richlistbox" id="PopupAutoCompleteRichResult" noautofocus="true" hidden="true"/> + <panel type="private-autocomplete-richlistbox" id="PopupAutoCompleteRichResult" noautofocus="true" hidden="true"/> <!-- for date/time picker. consumeoutsideclicks is set to never, so that clicks on the anchored input box are never consumed. --> @@ -427,7 +429,7 @@ title="&locationItem.title;" class="chromeclass-location" removable="true"> <textbox id="urlbar" flex="1" placeholder="" - type="autocomplete" + type="private-autocomplete" autocompletesearch="urlinline history" autocompletesearchparam="enable-actions" autocompletepopup="PopupAutoCompleteRichResult" diff --git a/application/palemoon/base/content/urlbarBindings.xml b/application/palemoon/base/content/urlbarBindings.xml index 6b4350f99..75411f39b 100644 --- a/application/palemoon/base/content/urlbarBindings.xml +++ b/application/palemoon/base/content/urlbarBindings.xml @@ -17,32 +17,32 @@ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:xbl="http://www.mozilla.org/xbl"> - <binding id="urlbar" extends="chrome://browser/content/autocomplete.xml#autocomplete"> + <binding id="urlbar" extends="chrome://browser/content/autocomplete.xml#private-autocomplete"> <content sizetopopup="pref"> <xul:hbox anonid="textbox-container" - class="autocomplete-textbox-container urlbar-textbox-container" + class="private-autocomplete-textbox-container urlbar-textbox-container" flex="1" xbl:inherits="focused"> <children includes="image|deck|stack|box"> - <xul:image class="autocomplete-icon" allowevents="true"/> + <xul:image class="private-autocomplete-icon" allowevents="true"/> </children> <xul:hbox anonid="textbox-input-box" class="textbox-input-box urlbar-input-box" flex="1" xbl:inherits="tooltiptext=inputtooltiptext"> <children/> <html:input anonid="input" - class="autocomplete-textbox urlbar-input textbox-input uri-element-right-align" + class="private-autocomplete-textbox urlbar-input textbox-input uri-element-right-align" allowevents="true" xbl:inherits="tooltiptext=inputtooltiptext,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey"/> </xul:hbox> <children includes="hbox"/> </xul:hbox> <xul:dropmarker anonid="historydropmarker" - class="autocomplete-history-dropmarker urlbar-history-dropmarker" + class="private-autocomplete-history-dropmarker urlbar-history-dropmarker" allowevents="true" xbl:inherits="open,enablehistory,parentfocused=focused"/> <xul:popupset anonid="popupset" - class="autocomplete-result-popupset"/> + class="private-autocomplete-result-popupset"/> <children includes="toolbarbutton"/> </content> @@ -769,7 +769,7 @@ </binding> <!-- Note: this binding is applied to the autocomplete popup used in the Search bar and in web page content --> - <binding id="browser-autocomplete-result-popup" extends="chrome://browser/content/autocomplete.xml#autocomplete-result-popup"> + <binding id="browser-autocomplete-result-popup" extends="chrome://global/content/bindings/autocomplete.xml#autocomplete-result-popup"> <implementation> <method name="openAutocompletePopup"> <parameter name="aInput"/> @@ -823,7 +823,7 @@ </implementation> </binding> - <binding id="urlbar-rich-result-popup" extends="chrome://browser/content/autocomplete.xml#autocomplete-rich-result-popup"> + <binding id="urlbar-rich-result-popup" extends="chrome://browser/content/autocomplete.xml#private-autocomplete-rich-result-popup"> <implementation> <field name="_maxResults">0</field> @@ -990,9 +990,11 @@ document.getAnonymousElementByAttribute(this, "anonid", "cancel"); </field> <field name="DownloadUtils" readonly="true"> - let utils = {}; - Components.utils.import("resource://gre/modules/DownloadUtils.jsm", utils); - utils.DownloadUtils; + { + let utils = {}; + Components.utils.import("resource://gre/modules/DownloadUtils.jsm", utils); + utils.DownloadUtils; + } </field> <method name="destroy"> diff --git a/application/palemoon/components/feeds/FeedConverter.js b/application/palemoon/components/feeds/FeedConverter.js index 75115cc94..d0f573774 100644 --- a/application/palemoon/components/feeds/FeedConverter.js +++ b/application/palemoon/components/feeds/FeedConverter.js @@ -260,7 +260,7 @@ FeedConverter.prototype = { } chromeChannel.loadGroup = this._request.loadGroup; - chromeChannel.asyncOpen(this._listener, null); + chromeChannel.asyncOpen2(this._listener); } finally { this._releaseHandles(); diff --git a/application/palemoon/components/feeds/FeedWriter.js b/application/palemoon/components/feeds/FeedWriter.js index 28cf582c2..cbb146564 100644 --- a/application/palemoon/components/feeds/FeedWriter.js +++ b/application/palemoon/components/feeds/FeedWriter.js @@ -9,6 +9,7 @@ const Cr = Components.results; const Cu = Components.utils; Cu.import("resource://gre/modules/XPCOMUtils.jsm"); +Cu.import("resource://gre/modules/NetUtil.jsm"); const FEEDWRITER_CID = Components.ID("{49bb6593-3aff-4eb3-a068-2712c28bd58e}"); const FEEDWRITER_CONTRACTID = "@mozilla.org/browser/feeds/result-writer;1"; @@ -1137,16 +1138,14 @@ FeedWriter.prototype = { var nullPrincipal = Cc["@mozilla.org/nullprincipal;1"]. createInstance(Ci.nsIPrincipal); - var resolvedURI = Cc["@mozilla.org/network/io-service;1"]. - getService(Ci.nsIIOService). - newChannel2("about:feeds", - null, - null, - null, // aLoadingNode - nullPrincipal, - null, // aTriggeringPrincipal - Ci.nsILoadInfo.SEC_NORMAL, - Ci.nsIContentPolicy.TYPE_OTHER).URI; + // this channel is not going to be openend, use a nullPrincipal + // and the most restrctive securityFlag. + let resolvedURI = NetUtil.newChannel({ + uri: "about:feeds", + loadingPrincipal: nullPrincipal, + securityFlags: Ci.nsILoadInfo.SEC_REQUIRE_SAME_ORIGIN_DATA_IS_BLOCKED, + contentPolicyType: Ci.nsIContentPolicy.TYPE_OTHER + }).URI; if (resolvedURI.equals(chan.URI)) return chan.originalURI; diff --git a/application/palemoon/themes/linux/autocomplete.css b/application/palemoon/themes/linux/autocomplete.css index fffa2b1f0..ab926851d 100644 --- a/application/palemoon/themes/linux/autocomplete.css +++ b/application/palemoon/themes/linux/autocomplete.css @@ -27,7 +27,7 @@ textbox[nomatch="true"][highlightnonmatches="true"] { color: red; } -.autocomplete-textbox-container { +.private-autocomplete-textbox-container { -moz-box-align: center; } @@ -45,9 +45,9 @@ textbox:not(.padded) .textbox-input-box { /* ::::: autocomplete popups ::::: */ -panel[type="autocomplete"], -panel[type="autocomplete-richlistbox"], -.autocomplete-history-popup { +panel[type="private-autocomplete"], +panel[type="private-autocomplete-richlistbox"], +.private-autocomplete-history-popup { border-width: 1px; -moz-border-top-colors: ThreeDDarkShadow; -moz-border-right-colors: ThreeDDarkShadow; @@ -57,20 +57,20 @@ panel[type="autocomplete-richlistbox"], background-color: -moz-Field; } -.autocomplete-history-popup { +.private-autocomplete-history-popup { max-height: 180px; } /* ::::: tree ::::: */ -.autocomplete-tree { +.private-autocomplete-tree { -moz-appearance: none !important; border: none !important; background-color: transparent !important; color: MenuText; } -.autocomplete-treecol { +.private-autocomplete-treecol { -moz-appearance: none !important; margin: 0 !important; border: none !important; @@ -78,41 +78,41 @@ panel[type="autocomplete-richlistbox"], } /* GTK calculates space for a sort arrow */ -.autocomplete-treecol > .treecol-sortdirection { +.private-autocomplete-treecol > .treecol-sortdirection { -moz-appearance: none !important; } -.autocomplete-treebody::-moz-tree-cell-text { +.private-autocomplete-treebody::-moz-tree-cell-text { -moz-padding-start: 8px; } -treechildren.autocomplete-treebody::-moz-tree-row(selected) { +treechildren.private-autocomplete-treebody::-moz-tree-row(selected) { background-color: Highlight; } -treechildren.autocomplete-treebody::-moz-tree-cell-text(selected) { +treechildren.private-autocomplete-treebody::-moz-tree-cell-text(selected) { color: HighlightText !important; } -.autocomplete-treebody::-moz-tree-image(treecolAutoCompleteValue) { +.private-autocomplete-treebody::-moz-tree-image(treecolAutoCompleteValue) { max-width: 16px; height: 16px; } /* ::::: richlistbox autocomplete ::::: */ -.autocomplete-richlistbox { +.private-autocomplete-richlistbox { -moz-appearance: none; margin: 1px; background-color: transparent; } -.autocomplete-richlistitem[selected="true"] { +.private-autocomplete-richlistitem[selected="true"] { background-color: Highlight; color: HighlightText; } -.autocomplete-richlistitem { +.private-autocomplete-richlistitem { padding: 6px 2px; color: MenuText; } @@ -123,17 +123,17 @@ treechildren.autocomplete-treebody::-moz-tree-cell-text(selected) { margin-top: 1px; } -.autocomplete-richlistitem[actiontype="keyword"] .ac-url-box, -.autocomplete-richlistitem[actiontype="searchengine"] .ac-url-box, -.autocomplete-richlistitem[actiontype="visiturl"] .ac-url-box, -.autocomplete-richlistitem[type~="autofill"] .ac-url-box { +.private-autocomplete-richlistitem[actiontype="keyword"] .ac-url-box, +.private-autocomplete-richlistitem[actiontype="searchengine"] .ac-url-box, +.private-autocomplete-richlistitem[actiontype="visiturl"] .ac-url-box, +.private-autocomplete-richlistitem[type~="autofill"] .ac-url-box { visibility: hidden; } -.autocomplete-richlistitem[actiontype="keyword"] .ac-title-box, -.autocomplete-richlistitem[actiontype="searchengine"] .ac-title-box, -.autocomplete-richlistitem[actiontype="visiturl"] .ac-title-box, -.autocomplete-richlistitem[type~="autofill"] .ac-title-box { +.private-autocomplete-richlistitem[actiontype="keyword"] .ac-title-box, +.private-autocomplete-richlistitem[actiontype="searchengine"] .ac-title-box, +.private-autocomplete-richlistitem[actiontype="visiturl"] .ac-title-box, +.private-autocomplete-richlistitem[type~="autofill"] .ac-title-box { /* Center the title by moving it down by half of .ac-url-box's height, including vertical margins (if any). */ transform: translateY(.5em); diff --git a/application/palemoon/themes/osx/autocomplete.css b/application/palemoon/themes/osx/autocomplete.css index 42b4ee430..a50dbd823 100644 --- a/application/palemoon/themes/osx/autocomplete.css +++ b/application/palemoon/themes/osx/autocomplete.css @@ -25,7 +25,7 @@ textbox:not(.padded) .textbox-input-box { /* ::::: history button ::::: */ -.autocomplete-history-dropmarker { +.private-autocomplete-history-dropmarker { -moz-appearance: none !important; border: none !important; background-color: transparent !important; @@ -36,9 +36,9 @@ textbox:not(.padded) .textbox-input-box { /* ::::: autocomplete popups ::::: */ -panel[type="autocomplete"], -panel[type="autocomplete-richlistbox"], -.autocomplete-history-popup { +panel[type="private-autocomplete"], +panel[type="private-autocomplete-richlistbox"], +.private-autocomplete-history-popup { padding: 0px !important; color: -moz-FieldText; background-color: -moz-Field; @@ -46,60 +46,60 @@ panel[type="autocomplete-richlistbox"], -moz-appearance: none; } -.autocomplete-history-popup { +.private-autocomplete-history-popup { max-height: 180px; } /* ::::: tree ::::: */ -.autocomplete-tree { +.private-autocomplete-tree { -moz-appearance: none !important; border: none !important; background-color: transparent !important; } -.autocomplete-treecol { +.private-autocomplete-treecol { -moz-appearance: none !important; margin: 0 !important; border: none !important; padding: 0 !important; } -.autocomplete-treebody::-moz-tree-cell-text { +.private-autocomplete-treebody::-moz-tree-cell-text { padding-left: 2px; } -.autocomplete-treebody::-moz-tree-row { +.private-autocomplete-treebody::-moz-tree-row { border-top: none; } -treechildren.autocomplete-treebody::-moz-tree-row(selected) { +treechildren.private-autocomplete-treebody::-moz-tree-row(selected) { background-color: Highlight; } -treechildren.autocomplete-treebody::-moz-tree-cell-text(selected) { +treechildren.private-autocomplete-treebody::-moz-tree-cell-text(selected) { color: HighlightText !important; } -.autocomplete-treebody::-moz-tree-image(treecolAutoCompleteValue) { +.private-autocomplete-treebody::-moz-tree-image(treecolAutoCompleteValue) { max-width: 16px; height: 16px; } /* ::::: richlistbox autocomplete ::::: */ -.autocomplete-richlistbox { +.private-autocomplete-richlistbox { -moz-appearance: none; margin: 0; } -.autocomplete-richlistitem[selected="true"] { +.private-autocomplete-richlistitem[selected="true"] { background-color: Highlight; color: HighlightText; background-image: linear-gradient(rgba(255,255,255,0.3), transparent); } -.autocomplete-richlistitem { +.private-autocomplete-richlistitem { padding: 5px 2px; } @@ -109,17 +109,17 @@ treechildren.autocomplete-treebody::-moz-tree-cell-text(selected) { margin-top: 1px; } -.autocomplete-richlistitem[actiontype="keyword"] .ac-url-box, -.autocomplete-richlistitem[actiontype="searchengine"] .ac-url-box, -.autocomplete-richlistitem[actiontype="visiturl"] .ac-url-box, -.autocomplete-richlistitem[type~="autofill"] .ac-url-box { +.private-autocomplete-richlistitem[actiontype="keyword"] .ac-url-box, +.private-autocomplete-richlistitem[actiontype="searchengine"] .ac-url-box, +.private-autocomplete-richlistitem[actiontype="visiturl"] .ac-url-box, +.private-autocomplete-richlistitem[type~="autofill"] .ac-url-box { visibility: hidden; } -.autocomplete-richlistitem[actiontype="keyword"] .ac-title-box, -.autocomplete-richlistitem[actiontype="searchengine"] .ac-title-box, -.autocomplete-richlistitem[actiontype="visiturl"] .ac-title-box, -.autocomplete-richlistitem[type~="autofill"] .ac-title-box { +.private-autocomplete-richlistitem[actiontype="keyword"] .ac-title-box, +.private-autocomplete-richlistitem[actiontype="searchengine"] .ac-title-box, +.private-autocomplete-richlistitem[actiontype="visiturl"] .ac-title-box, +.private-autocomplete-richlistitem[type~="autofill"] .ac-title-box { /* Center the title by moving it down by half of .ac-url-box's height, including vertical margins (if any). */ transform: translateY(.5em); diff --git a/application/palemoon/themes/windows/autocomplete.css b/application/palemoon/themes/windows/autocomplete.css index f0f16cc27..b3cab44c8 100644 --- a/application/palemoon/themes/windows/autocomplete.css +++ b/application/palemoon/themes/windows/autocomplete.css @@ -21,7 +21,7 @@ textbox[nomatch="true"][highlightnonmatches="true"] { color: red; } -.autocomplete-textbox-container { +.private-autocomplete-textbox-container { -moz-box-align: center; } @@ -35,9 +35,9 @@ textbox:not(.padded) .textbox-input-box { /* ::::: autocomplete popups ::::: */ -panel[type="autocomplete"], -panel[type="autocomplete-richlistbox"], -.autocomplete-history-popup { +panel[type="private-autocomplete"], +panel[type="private-autocomplete-richlistbox"], +.private-autocomplete-history-popup { -moz-appearance: none; border-width: 1px; -moz-border-top-colors: ThreeDShadow; @@ -49,19 +49,19 @@ panel[type="autocomplete-richlistbox"], background-color: -moz-Field; } -.autocomplete-history-popup { +.private-autocomplete-history-popup { max-height: 180px; } /* ::::: tree ::::: */ -.autocomplete-tree { +.private-autocomplete-tree { -moz-appearance: none !important; border: none !important; background-color: transparent !important; } -.autocomplete-treecol { +.private-autocomplete-treecol { -moz-appearance: none !important; margin: 0 !important; border: none !important; @@ -69,39 +69,39 @@ panel[type="autocomplete-richlistbox"], } /* GTK calculates space for a sort arrow */ -.autocomplete-treecol > .treecol-sortdirection { +.private-autocomplete-treecol > .treecol-sortdirection { -moz-appearance: none !important; } -.autocomplete-treebody::-moz-tree-cell-text { +.private-autocomplete-treebody::-moz-tree-cell-text { -moz-padding-start: 8px; } -treechildren.autocomplete-treebody::-moz-tree-row(selected) { +treechildren.private-autocomplete-treebody::-moz-tree-row(selected) { background-color: Highlight; } -treechildren.autocomplete-treebody::-moz-tree-cell-text(selected) { +treechildren.private-autocomplete-treebody::-moz-tree-cell-text(selected) { color: HighlightText !important; } -.autocomplete-treebody::-moz-tree-image(treecolAutoCompleteValue) { +.private-autocomplete-treebody::-moz-tree-image(treecolAutoCompleteValue) { max-width: 16px; height: 16px; } /* ::::: richlistbox autocomplete ::::: */ -.autocomplete-richlistbox { +.private-autocomplete-richlistbox { -moz-appearance: none; margin: 0; } -.autocomplete-richlistitem { +.private-autocomplete-richlistitem { padding: 1px; } -.autocomplete-richlistitem[selected="true"] { +.private-autocomplete-richlistitem[selected="true"] { background-color: Highlight; color: HighlightText; } @@ -109,7 +109,7 @@ treechildren.autocomplete-treebody::-moz-tree-cell-text(selected) { %ifdef XP_WIN @media (-moz-os-version: windows-vista) and (-moz-windows-default-theme), (-moz-os-version: windows-win7) and (-moz-windows-default-theme) { - .autocomplete-richlistitem[selected="true"] { + .private-autocomplete-richlistitem[selected="true"] { color: inherit; background-color: transparent; /* four gradients for the bevel highlights on each edge, one for blue background */ @@ -138,17 +138,17 @@ treechildren.autocomplete-treebody::-moz-tree-cell-text(selected) { margin: 1px 0 4px; } -.autocomplete-richlistitem[actiontype="keyword"] .ac-url-box, -.autocomplete-richlistitem[actiontype="searchengine"] .ac-url-box, -.autocomplete-richlistitem[actiontype="visiturl"] .ac-url-box, -.autocomplete-richlistitem[type~="autofill"] .ac-url-box { +.private-autocomplete-richlistitem[actiontype="keyword"] .ac-url-box, +.private-autocomplete-richlistitem[actiontype="searchengine"] .ac-url-box, +.private-autocomplete-richlistitem[actiontype="visiturl"] .ac-url-box, +.private-autocomplete-richlistitem[type~="autofill"] .ac-url-box { visibility: hidden; } -.autocomplete-richlistitem[actiontype="keyword"] .ac-title-box, -.autocomplete-richlistitem[actiontype="searchengine"] .ac-title-box, -.autocomplete-richlistitem[actiontype="visiturl"] .ac-title-box, -.autocomplete-richlistitem[type~="autofill"] .ac-title-box { +.private-autocomplete-richlistitem[actiontype="keyword"] .ac-title-box, +.private-autocomplete-richlistitem[actiontype="searchengine"] .ac-title-box, +.private-autocomplete-richlistitem[actiontype="visiturl"] .ac-title-box, +.private-autocomplete-richlistitem[type~="autofill"] .ac-title-box { /* Center the title by moving it down by half of .ac-url-box's height, including vertical margins (if any). */ transform: translateY(calc(.5em + 2px)); diff --git a/js/xpconnect/src/ExportHelpers.cpp b/js/xpconnect/src/ExportHelpers.cpp index 3dbf83e3b..e574e708c 100644 --- a/js/xpconnect/src/ExportHelpers.cpp +++ b/js/xpconnect/src/ExportHelpers.cpp @@ -329,11 +329,20 @@ NewFunctionForwarder(JSContext* cx, HandleId idArg, HandleObject callable, if (id == JSID_VOIDHANDLE) id = GetJSIDByIndex(cx, XPCJSContext::IDX_EMPTYSTRING); + // If our callable is a (possibly wrapped) function, we can give + // the exported thing the right number of args. + unsigned nargs = 0; + RootedObject unwrapped(cx, js::UncheckedUnwrap(callable)); + if (unwrapped) { + if (JSFunction* fun = JS_GetObjectFunction(unwrapped)) + nargs = JS_GetFunctionArity(fun); + } + // We have no way of knowing whether the underlying function wants to be a // constructor or not, so we just mark all forwarders as constructors, and // let the underlying function throw for construct calls if it wants. JSFunction* fun = js::NewFunctionByIdWithReserved(cx, FunctionForwarder, - 0, JSFUN_CONSTRUCTOR, id); + nargs, JSFUN_CONSTRUCTOR, id); if (!fun) return false; diff --git a/js/xpconnect/tests/unit/test_exportFunction.js b/js/xpconnect/tests/unit/test_exportFunction.js index 830816342..9e1bf2082 100644 --- a/js/xpconnect/tests/unit/test_exportFunction.js +++ b/js/xpconnect/tests/unit/test_exportFunction.js @@ -10,12 +10,14 @@ function run_test() { epsb.do_check_true = do_check_true; epsb.do_check_eq = do_check_eq; subsb.do_check_true = do_check_true; + subsb.do_check_eq = do_check_eq; // Exporting should work if prinicipal of the source sandbox // subsumes the principal of the target sandbox. Cu.evalInSandbox("(" + function() { var wasCalled = false; this.funToExport = function(expectedThis, a, obj, native, mixed, callback) { + do_check_eq(arguments.callee.length, 6); do_check_eq(a, 42); do_check_eq(obj, subsb.tobecloned); do_check_eq(obj.cloned, "cloned"); @@ -53,6 +55,7 @@ function run_test() { invokedCallback = false; callback = function() { invokedCallback = true; }; imported(this, 42, tobecloned, native, mixed, callback); + do_check_eq(imported.length, 6); do_check_true(invokedCallback); }.toSource() + ")()", subsb); diff --git a/security/nss/lib/softoken/sftkpwd.c b/security/nss/lib/softoken/sftkpwd.c index e0d2df9ab..07b6922dc 100644 --- a/security/nss/lib/softoken/sftkpwd.c +++ b/security/nss/lib/softoken/sftkpwd.c @@ -273,7 +273,7 @@ sftkdb_EncryptAttribute(PLArenaPool *arena, SECItem *passKey, RNG_GenerateGlobalRandomBytes(saltData, cipherValue.salt.len); param = nsspkcs5_NewParam(cipherValue.alg, HASH_AlgSHA1, &cipherValue.salt, - 1); + 30000); if (param == NULL) { rv = SECFailure; goto loser; @@ -444,7 +444,7 @@ sftkdb_SignAttribute(PLArenaPool *arena, SECItem *passKey, RNG_GenerateGlobalRandomBytes(saltData, prfLength); /* initialize our pkcs5 parameter */ - param = nsspkcs5_NewParam(signValue.alg, HASH_AlgSHA1, &signValue.salt, 1); + param = nsspkcs5_NewParam(signValue.alg, HASH_AlgSHA1, &signValue.salt, 30000); if (param == NULL) { rv = SECFailure; goto loser; diff --git a/toolkit/locales/en-US/chrome/mozapps/preferences/changemp.dtd b/toolkit/locales/en-US/chrome/mozapps/preferences/changemp.dtd index 1cc7b9621..1b1d5ac55 100644 --- a/toolkit/locales/en-US/chrome/mozapps/preferences/changemp.dtd +++ b/toolkit/locales/en-US/chrome/mozapps/preferences/changemp.dtd @@ -9,5 +9,5 @@ <!ENTITY setPassword.reenterPassword.label "Re-enter password:"> <!ENTITY setPassword.meter.label "Password quality meter"> <!ENTITY setPassword.meter.loading "Loading"> -<!ENTITY masterPasswordDescription.label "A Master Password is used to protect sensitive information like site passwords. If you create a Master Password you will be asked to enter it once per session when &brandShortName; retrieves saved information protected by the password."> +<!ENTITY masterPasswordDescription.label "A Master Password is used to protect sensitive information like site passwords. If you create a Master Password you will be asked to enter it once per session when &brandShortName; retrieves saved information protected by the password. A master password must be 8 characters or longer; longer is better."> <!ENTITY masterPasswordWarning.label "Please make sure you remember the Master Password you have set. If you forget your Master Password, you will be unable to access any of the information protected by it."> diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm index 2c5e3dfa7..72a460e4a 100644 --- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm +++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm @@ -1931,12 +1931,10 @@ this.XPIProvider = { let chan; try { - chan = Services.io.newChannelFromURI2(aURI, - null, // aLoadingNode - Services.scriptSecurityManager.getSystemPrincipal(), - null, // aTriggeringPrincipal - Ci.nsILoadInfo.SEC_NORMAL, - Ci.nsIContentPolicy.TYPE_OTHER); + chan = NetUtil.newChannel({ + uri: aURI, + loadUsingSystemPrincipal: true + }); } catch (ex) { return null; @@ -5456,21 +5454,17 @@ AddonInstall.prototype = { let requireBuiltIn = Preferences.get(PREF_INSTALL_REQUIREBUILTINCERTS, true); this.badCertHandler = new BadCertHandler(!requireBuiltIn); - this.channel = NetUtil.newChannel2(this.sourceURI, - null, - null, - null, // aLoadingNode - Services.scriptSecurityManager.getSystemPrincipal(), - null, // aTriggeringPrincipal - Ci.nsILoadInfo.SEC_NORMAL, - Ci.nsIContentPolicy.TYPE_OTHER); + this.channel = NetUtil.newChannel({ + uri: this.sourceURI, + loadUsingSystemPrincipal: true + }); this.channel.notificationCallbacks = this; if (this.channel instanceof Ci.nsIHttpChannel) { this.channel.setRequestHeader("Moz-XPI-Update", "1", true); if (this.channel instanceof Ci.nsIHttpChannelInternal) this.channel.forceAllowThirdPartyCookie = true; } - this.channel.asyncOpen(listener, null); + this.channel.asyncOpen2(listener); Services.obs.addObserver(this, "network:offline-about-to-go-offline", false); } diff --git a/toolkit/mozapps/preferences/changemp.js b/toolkit/mozapps/preferences/changemp.js index 82dd20128..71664b3e1 100644 --- a/toolkit/mozapps/preferences/changemp.js +++ b/toolkit/mozapps/preferences/changemp.js @@ -167,8 +167,8 @@ function setPasswordStrength() // length of the password var pwlength=(pw.length); - if (pwlength>5) - pwlength=5; + if (pwlength>10) + pwlength=10; // use of numbers in the password @@ -190,7 +190,7 @@ function setPasswordStrength() upper=3; - var pwstrength=((pwlength*10)-20) + (numeric*10) + (numsymbols*15) + (upper*10); + var pwstrength=((pwlength*5)-20) + (numeric*10) + (numsymbols*15) + (upper*10); // make sure we're give a value between 0 and 100 if ( pwstrength < 0 ) { @@ -227,6 +227,12 @@ function checkPasswords() } } + // Never accept short passwords < 8 chars + if (pw1.length < 8) { + ok.setAttribute("disabled", "true"); + return; + } + if (pw1 == pw2) { ok.setAttribute("disabled", "false"); } else diff --git a/toolkit/mozapps/preferences/changemp.xul b/toolkit/mozapps/preferences/changemp.xul index 14d02295e..b316fa42b 100644 --- a/toolkit/mozapps/preferences/changemp.xul +++ b/toolkit/mozapps/preferences/changemp.xul @@ -34,7 +34,7 @@ <rows> <row> <label control="oldpw">&setPassword.oldPassword.label;</label> - <textbox id="oldpw" type="password"/> + <textbox id="oldpw" type="password" size="18"/> <!-- This textbox is inserted as a workaround to the fact that making the 'type' & 'disabled' property of the 'oldpw' textbox toggle between ['password' & 'false'] and ['text' & 'true'] - as would be necessary if the menu has more @@ -46,12 +46,13 @@ </row> <row> <label control="pw1">&setPassword.newPassword.label;</label> - <textbox id="pw1" type="password" + <textbox id="pw1" type="password" size="18" oninput="setPasswordStrength(); checkPasswords();"/> </row> <row> <label control="pw2">&setPassword.reenterPassword.label;</label> - <textbox id="pw2" type="password" oninput="checkPasswords();"/> + <textbox id="pw2" type="password" size="18" + oninput="checkPasswords();"/> </row> </rows> </grid> |