Merge mozilla-central to mozilla-inbound

This commit is contained in:
Ed Morley 2012-03-04 23:56:40 +00:00
commit 3c6da09e8c
8 changed files with 82 additions and 12 deletions

View File

@ -65,7 +65,7 @@
<html:input anonid="input"
class="autocomplete-textbox urlbar-input textbox-input uri-element-right-align"
allowevents="true"
xbl:inherits="tooltiptext=inputtooltiptext,onfocus,onblur,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey"/>
xbl:inherits="tooltiptext=inputtooltiptext,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey"/>
</xul:hbox>
<children includes="hbox"/>
</xul:hbox>

View File

@ -459,7 +459,7 @@ class ShutdownLeakLogger(object):
DOM windows (that are still around after test suite shutdown, despite running
the GC) to the tests that created them and prints leak statistics.
"""
MAX_LEAK_COUNT = 120
MAX_LEAK_COUNT = 130
def __init__(self, logger):
self.logger = logger
@ -479,7 +479,7 @@ class ShutdownLeakLogger(object):
self.currentTest = {"fileName": fileName, "windows": set(), "docShells": set()}
elif line.startswith("INFO TEST-END"):
# don't track a test if no windows or docShells leaked
if self.currentTest["windows"] and self.currentTest["docShells"]:
if self.currentTest["windows"] or self.currentTest["docShells"]:
self.tests.append(self.currentTest)
self.currentTest = None
elif line.startswith("INFO TEST-START | Shutdown"):

View File

@ -70,7 +70,7 @@
<children/>
<html:input anonid="input" class="autocomplete-textbox textbox-input"
allowevents="true"
xbl:inherits="tooltiptext=inputtooltiptext,onfocus,onblur,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey,mozactionhint"/>
xbl:inherits="tooltiptext=inputtooltiptext,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey,mozactionhint"/>
</xul:hbox>
<children includes="hbox"/>
</xul:hbox>

View File

@ -16,7 +16,7 @@
<content>
<xul:hbox class="textbox-input-box numberbox-input-box" flex="1" xbl:inherits="context,disabled,focused">
<html:input class="numberbox-input textbox-input" anonid="input"
xbl:inherits="onfocus,onblur,value,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey"/>
xbl:inherits="value,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey"/>
</xul:hbox>
<xul:spinbuttons anonid="buttons" xbl:inherits="disabled,hidden=hidespinbuttons"/>
</content>

View File

@ -21,7 +21,7 @@
<children/>
<xul:hbox class="textbox-input-box" flex="1" xbl:inherits="context,spellcheck">
<html:input class="textbox-input" anonid="input"
xbl:inherits="onfocus,onblur,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey,noinitialfocus,mozactionhint,spellcheck"/>
xbl:inherits="value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey,noinitialfocus,mozactionhint,spellcheck"/>
</xul:hbox>
</content>
@ -308,7 +308,7 @@
<children/>
<xul:hbox class="textbox-input-box" flex="1" xbl:inherits="context,spellcheck" align="center">
<html:input class="textbox-input" anonid="input" mozactionhint="search"
xbl:inherits="onfocus,onblur,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey,mozactionhint,spellcheck"/>
xbl:inherits="value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey,mozactionhint,spellcheck"/>
<xul:deck class="textbox-search-icons" anonid="search-icons">
<xul:image class="textbox-search-icon"
onclick="document.getBindingParent(this)._iconClick();"
@ -435,7 +435,7 @@
<content>
<xul:hbox class="textbox-input-box" flex="1" xbl:inherits="context,spellcheck">
<html:textarea class="textbox-textarea" anonid="input"
xbl:inherits="onfocus,onblur,xbl:text=value,disabled,tabindex,rows,cols,readonly,wrap,placeholder,mozactionhint,spellcheck"><children/></html:textarea>
xbl:inherits="xbl:text=value,disabled,tabindex,rows,cols,readonly,wrap,placeholder,mozactionhint,spellcheck"><children/></html:textarea>
</xul:hbox>
</content>
</binding>

View File

@ -99,14 +99,15 @@ _TEST_FILES = \
browser_addonrepository_performance.js \
browser_bug557956.js \
browser_bug616841.js \
browser_checkAddonCompatibility.js \
browser_hotfix.js \
browser_updatessl.js \
browser_installssl.js \
browser_newaddon.js \
browser_select_selection.js \
browser_select_compatoverrides.js \
browser_select_confirm.js \
browser_select_selection.js \
browser_select_update.js \
browser_updatessl.js \
$(NULL)
_TEST_RESOURCES = \

View File

@ -0,0 +1,34 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
// Test that all bundled add-ons are compatible.
function test() {
waitForExplicitFinish();
Services.prefs.setBoolPref(PREF_STRICT_COMPAT, true);
ok(AddonManager.strictCompatibility, "Strict compatibility should be enabled");
AddonManager.getAllAddons(function gAACallback(aAddons) {
// Sort add-ons (by type and name) to improve output.
aAddons.sort(function compareTypeName(a, b) {
return a.type.localeCompare(b.type) || a.name.localeCompare(b.name);
});
let allCompatible = true;
aAddons.forEach(function checkCompatibility(a) {
// Ignore plugins.
if (a.type == "plugin")
return;
ok(a.isCompatible, a.type + " " + a.name + " " + a.version + " should be compatible");
allCompatible = allCompatible && a.isCompatible;
});
// Add a reminder.
if (!allCompatible)
ok(false, "As this test failed, test browser_bug557956.js should have failed, too.");
finish();
});
}

View File

@ -25,7 +25,7 @@
<children/>
<html:input anonid="input" class="autocomplete-textbox textbox-input"
allowevents="true"
xbl:inherits="tooltiptext=inputtooltiptext,onfocus,onblur,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey,mozactionhint,userAction"/>
xbl:inherits="tooltiptext=inputtooltiptext,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey,mozactionhint,userAction"/>
</xul:hbox>
<children includes="hbox"/>
</xul:hbox>
@ -48,11 +48,15 @@
this.mInputElt.value = this.value;
delete this.value;
// listen for pastes
this.mInputElt.controllers.insertControllerAt(0, this.mPasteController);
// listen for menubar activation
window.top.addEventListener("DOMMenuBarActive", this.mMenuBarListener, true);
// set default property values
this.ifSetAttribute("timeout", 50);
this.ifSetAttribute("pastetimeout", 1000);
this.ifSetAttribute("maxrows", 5);
this.ifSetAttribute("showpopup", true);
this.ifSetAttribute("disableKeyNavigation", true);
@ -71,6 +75,7 @@
<destructor><![CDATA[
this.clearResults(false);
window.top.removeEventListener("DOMMenuBarActive", this.mMenuBarListener, true);
this.mInputElt.controllers.removeController(this.mPasteController);
]]></destructor>
<!-- =================== PUBLIC PROPERTIES =================== -->
@ -145,6 +150,11 @@
onset="this.setAttribute('timeout', val); return val;"
onget="var t = parseInt(this.getAttribute('timeout')); return t ? t : 0;"/>
<!-- number of milliseconds after a paste before a search begins -->
<property name="pasteTimeout"
onset="this.setAttribute('pastetimeout', val); return val;"
onget="var t = parseInt(this.getAttribute('pastetimeout')); return t ? t : 0;"/>
<!-- maximum number of rows to display -->
<property name="maxRows"
onset="this.setAttribute('maxrows', val); return val;"
@ -296,6 +306,30 @@
<field name="oninit">null</field>
<field name="mDefaultMatchFilled">false</field>
<field name="mFirstReturn">true</field>
<field name="mIsPasting">false</field>
<field name="mPasteController"><![CDATA[
({
self: this,
kGlobalClipboard: Components.interfaces.nsIClipboard.kGlobalClipboard,
supportsCommand: function(aCommand) {
return aCommand == "cmd_paste";
},
isCommandEnabled: function(aCommand) {
return aCommand == "cmd_paste" &&
this.self.editor.isSelectionEditable &&
this.self.editor.canPaste(this.kGlobalClipboard);
},
doCommand: function(aCommand) {
if (aCommand == "cmd_paste") {
this.self.mIsPasting = true;
this.self.editor.paste(this.kGlobalClipboard);
this.self.mIsPasting = false;
}
},
onEvent: function() {}
})
]]></field>
<field name="mMenuBarListener"><![CDATA[
({
@ -940,7 +974,8 @@
this.currentSearchString = str;
this.popup.clearSelection();
this.mAutoCompleteTimer = setTimeout(this.callListener, this.timeout, this, "startLookup");
var timeout = this.mIsPasting ? this.pasteTimeout : this.timeout;
this.mAutoCompleteTimer = setTimeout(this.callListener, timeout, this, "startLookup");
]]></body>
</method>