mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backout bug 669345 and bug 669390 for leaking
This commit is contained in:
parent
facaa70870
commit
a82fb9c32e
@ -59,11 +59,6 @@ setting[type="directory"] {
|
||||
-moz-binding: url("chrome://mozapps/content/extensions/setting.xml#setting-path");
|
||||
}
|
||||
|
||||
setting[type="radio"],
|
||||
setting[type="menulist"] {
|
||||
-moz-binding: url("chrome://mozapps/content/extensions/setting.xml#setting-multi");
|
||||
}
|
||||
|
||||
#browsers > notificationbox {
|
||||
-moz-binding: url("chrome://browser/content/notification.xml#stacked-notificationbox");
|
||||
overflow: -moz-hidden-unscrollable;
|
||||
|
@ -434,14 +434,14 @@
|
||||
oncommand="BrowserUI.newTab('about:fennec', Browser.selectedTab);"/>
|
||||
#endif
|
||||
</setting>
|
||||
<setting id="prefs-uilanguage" title="&language.title;" type="menulist">
|
||||
<setting id="prefs-uilanguage" title="&language.title;" type="control">
|
||||
<menulist id="prefs-languages" oncommand="PreferencesView.updateLocale();">
|
||||
<menupopup>
|
||||
<menuitem id="prefs-languages-auto" label="&language.auto;" value="auto"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</setting>
|
||||
<setting id="prefs-homepage" title="&homepage.title;" type="menulist">
|
||||
<setting id="prefs-homepage" title="&homepage.title;" type="control">
|
||||
<menulist id="prefs-homepage-options" oncommand="PreferencesView.updateHomePage();">
|
||||
<menupopup onpopupshowing="PreferencesView.updateHomePageList();">
|
||||
<menuitem id="prefs-homepage-default" label="&homepage.default;" value="default"/>
|
||||
|
@ -133,12 +133,6 @@ setting[type="directory"] {
|
||||
-moz-binding: url("chrome://mozapps/content/extensions/setting.xml#setting-path");
|
||||
}
|
||||
|
||||
setting[type="radio"],
|
||||
setting[type="menulist"] {
|
||||
display: -moz-grid-line;
|
||||
-moz-binding: url("chrome://mozapps/content/extensions/setting.xml#setting-multi");
|
||||
}
|
||||
|
||||
#addonitem-popup > menuitem[disabled="true"] {
|
||||
display: none;
|
||||
}
|
||||
|
@ -22,7 +22,6 @@
|
||||
- Contributor(s):
|
||||
- Daniel Brooks <db48x@yahoo.com>
|
||||
- Mark Finkle <mfinkle@mozilla.com>
|
||||
- Geoff Lankow <geoff@darktrojan.net>
|
||||
-
|
||||
- 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
|
||||
@ -312,7 +311,7 @@
|
||||
</xul:label>
|
||||
</xul:vbox>
|
||||
<xul:hbox anonid="input-container" class="setting-input">
|
||||
<children includes="button"/>
|
||||
<children includes="button|menulist"/>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
@ -472,72 +471,4 @@
|
||||
</property>
|
||||
</implementation>
|
||||
</binding>
|
||||
|
||||
<binding id="setting-multi" extends="chrome://mozapps/content/extensions/setting.xml#setting-base">
|
||||
<content>
|
||||
<xul:vbox class="setting-label">
|
||||
<xul:label class="preferences-title" xbl:inherits="value=title" crop="end" flex="1"/>
|
||||
<xul:label class="preferences-description" xbl:inherits="value=desc" crop="end" flex="1">
|
||||
<children/>
|
||||
</xul:label>
|
||||
</xul:vbox>
|
||||
<xul:hbox class="setting-input">
|
||||
<children include="radiogroup,menulist" />
|
||||
</xul:hbox>
|
||||
</content>
|
||||
|
||||
<implementation>
|
||||
<constructor>
|
||||
<![CDATA[
|
||||
let self = this;
|
||||
this.control.addEventListener("command", this.valueToPreference.bind(this), false);
|
||||
]]>
|
||||
</constructor>
|
||||
|
||||
<method name="valueFromPreference">
|
||||
<body>
|
||||
<![CDATA[
|
||||
let val;
|
||||
switch (Services.prefs.getPrefType(this.pref)) {
|
||||
case Ci.nsIPrefBranch.PREF_STRING:
|
||||
val = Services.prefs.getCharPref(this.pref);
|
||||
break;
|
||||
case Ci.nsIPrefBranch.PREF_INT:
|
||||
val = Services.prefs.getIntPref(this.pref);
|
||||
break;
|
||||
case Ci.nsIPrefBranch.PREF_BOOL:
|
||||
val = Services.prefs.getBoolPref(this.pref).toString();
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
for (let i = 0; i < this.control.itemCount; i++) {
|
||||
if (this.control.getItemAtIndex(i).value == val) {
|
||||
this.control.selectedIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
|
||||
<method name="valueToPreference">
|
||||
<body>
|
||||
<![CDATA[
|
||||
// We might not have a pref already set, so we guess the type from the value attribute
|
||||
let val = this.control.selectedItem.value;
|
||||
if (val == "true" || val == "false")
|
||||
Services.prefs.setBoolPref(this.pref, val == "true");
|
||||
else if (/^-?\d+$/.test(val))
|
||||
Services.prefs.setIntPref(this.pref, val);
|
||||
else
|
||||
Services.prefs.setCharPref(this.pref, val);
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
|
||||
<field name="control">this.getElementsByTagName(this.getAttribute("type") == "radio" ? "radiogroup" : "menulist")[0];</field>
|
||||
</implementation>
|
||||
</binding>
|
||||
</bindings>
|
||||
|
@ -119,7 +119,6 @@ _TEST_RESOURCES = \
|
||||
browser_eula.xml \
|
||||
browser_purchase.xml \
|
||||
discovery.html \
|
||||
more_options.xul \
|
||||
options.xul \
|
||||
redirect.sjs \
|
||||
releaseNotes.xhtml \
|
||||
|
@ -41,13 +41,6 @@ function test() {
|
||||
version: "1",
|
||||
optionsURL: CHROMEROOT + "options.xul",
|
||||
optionsType: AddonManager.OPTIONS_TYPE_INLINE
|
||||
},{
|
||||
id: "inlinesettings3@tests.mozilla.org",
|
||||
name: "Inline Settings (More Options)",
|
||||
description: "Tests for option types introduced after Mozilla 7.0",
|
||||
version: "1",
|
||||
optionsURL: CHROMEROOT + "more_options.xul",
|
||||
optionsType: AddonManager.OPTIONS_TYPE_INLINE
|
||||
},{
|
||||
id: "noninlinesettings@tests.mozilla.org",
|
||||
name: "Non-Inline Settings",
|
||||
@ -77,10 +70,6 @@ function end_test() {
|
||||
Services.prefs.clearUserPref("extensions.inlinesettings1.color");
|
||||
Services.prefs.clearUserPref("extensions.inlinesettings1.file");
|
||||
Services.prefs.clearUserPref("extensions.inlinesettings1.directory");
|
||||
Services.prefs.clearUserPref("extensions.inlinesettings3.radioBool");
|
||||
Services.prefs.clearUserPref("extensions.inlinesettings3.radioInt");
|
||||
Services.prefs.clearUserPref("extensions.inlinesettings3.radioString");
|
||||
Services.prefs.clearUserPref("extensions.inlinesettings3.menulist");
|
||||
|
||||
close_manager(gManagerWindow, function() {
|
||||
AddonManager.getAddonByID("inlinesettings1@tests.mozilla.org", function(aAddon) {
|
||||
@ -266,72 +255,6 @@ add_test(function() {
|
||||
});
|
||||
});
|
||||
|
||||
// Tests for the setting.xml bindings introduced after Mozilla 7
|
||||
add_test(function() {
|
||||
var addon = get_addon_element(gManagerWindow, "inlinesettings3@tests.mozilla.org");
|
||||
addon.parentNode.ensureElementIsVisible(addon);
|
||||
|
||||
var button = gManagerWindow.document.getAnonymousElementByAttribute(addon, "anonid", "preferences-btn");
|
||||
EventUtils.synthesizeMouseAtCenter(button, { clickCount: 1 }, gManagerWindow);
|
||||
|
||||
wait_for_view_load(gManagerWindow, function() {
|
||||
is(observer.lastData, "inlinesettings3@tests.mozilla.org", "Observer notification should have fired");
|
||||
|
||||
var grid = gManagerWindow.document.getElementById("detail-grid");
|
||||
var settings = grid.querySelectorAll("rows > setting");
|
||||
is(settings.length, 4, "Grid should have settings children");
|
||||
|
||||
// Force bindings to apply
|
||||
settings[0].clientTop;
|
||||
|
||||
ok(settings[0].hasAttribute("first-row"), "First visible row should have first-row attribute");
|
||||
Services.prefs.setBoolPref("extensions.inlinesettings3.radioBool", false);
|
||||
var radios = settings[0].getElementsByTagName("radio");
|
||||
isnot(radios[0].selected, true, "Correct radio button should be selected");
|
||||
is(radios[1].selected, true, "Correct radio button should be selected");
|
||||
EventUtils.synthesizeMouseAtCenter(radios[0], { clickCount: 1 }, gManagerWindow);
|
||||
is(Services.prefs.getBoolPref("extensions.inlinesettings3.radioBool"), true, "Radio pref should have been updated");
|
||||
EventUtils.synthesizeMouseAtCenter(radios[1], { clickCount: 1 }, gManagerWindow);
|
||||
is(Services.prefs.getBoolPref("extensions.inlinesettings3.radioBool"), false, "Radio pref should have been updated");
|
||||
|
||||
ok(!settings[1].hasAttribute("first-row"), "Not the first row");
|
||||
Services.prefs.setIntPref("extensions.inlinesettings3.radioInt", 5);
|
||||
var radios = settings[1].getElementsByTagName("radio");
|
||||
isnot(radios[0].selected, true, "Correct radio button should be selected");
|
||||
is(radios[1].selected, true, "Correct radio button should be selected");
|
||||
isnot(radios[2].selected, true, "Correct radio button should be selected");
|
||||
EventUtils.synthesizeMouseAtCenter(radios[0], { clickCount: 1 }, gManagerWindow);
|
||||
is(Services.prefs.getIntPref("extensions.inlinesettings3.radioInt"), 4, "Radio pref should have been updated");
|
||||
EventUtils.synthesizeMouseAtCenter(radios[2], { clickCount: 1 }, gManagerWindow);
|
||||
is(Services.prefs.getIntPref("extensions.inlinesettings3.radioInt"), 6, "Radio pref should have been updated");
|
||||
|
||||
ok(!settings[2].hasAttribute("first-row"), "Not the first row");
|
||||
Services.prefs.setCharPref("extensions.inlinesettings3.radioString", "juliet");
|
||||
var radios = settings[2].getElementsByTagName("radio");
|
||||
isnot(radios[0].selected, true, "Correct radio button should be selected");
|
||||
is(radios[1].selected, true, "Correct radio button should be selected");
|
||||
isnot(radios[2].selected, true, "Correct radio button should be selected");
|
||||
EventUtils.synthesizeMouseAtCenter(radios[0], { clickCount: 1 }, gManagerWindow);
|
||||
is(Services.prefs.getCharPref("extensions.inlinesettings3.radioString"), "india", "Radio pref should have been updated");
|
||||
EventUtils.synthesizeMouseAtCenter(radios[2], { clickCount: 1 }, gManagerWindow);
|
||||
is(Services.prefs.getCharPref("extensions.inlinesettings3.radioString"), "kilo", "Radio pref should have been updated");
|
||||
|
||||
ok(!settings[3].hasAttribute("first-row"), "Not the first row");
|
||||
Services.prefs.setIntPref("extensions.inlinesettings3.menulist", 8);
|
||||
var input = settings[3].firstElementChild;
|
||||
is(input.value, "8", "Menulist should have initial value");
|
||||
input.focus();
|
||||
EventUtils.synthesizeKey("n", {}, gManagerWindow);
|
||||
is(input.value, "9", "Menulist should have updated value");
|
||||
is(Services.prefs.getIntPref("extensions.inlinesettings3.menulist"), 9, "Menulist pref should have been updated");
|
||||
|
||||
button = gManagerWindow.document.getElementById("detail-prefs-btn");
|
||||
is_element_hidden(button, "Preferences button should not be visible");
|
||||
|
||||
gCategoryUtilities.openType("extension", run_next_test);
|
||||
});
|
||||
});
|
||||
|
||||
// Addon with inline preferences as optionsURL
|
||||
add_test(function() {
|
||||
var addon = get_addon_element(gManagerWindow, "inlinesettings2@tests.mozilla.org");
|
||||
|
@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<setting pref="extensions.inlinesettings3.radioBool" type="radio" title="Radio">
|
||||
<radiogroup>
|
||||
<radio label="Delta" value="true" />
|
||||
<radio label="Echo" value="false" />
|
||||
</radiogroup>
|
||||
</setting>
|
||||
<setting pref="extensions.inlinesettings3.radioInt" type="radio" title="Radio">
|
||||
<radiogroup>
|
||||
<radio label="Foxtrot" value="4" />
|
||||
<radio label="Golf" value="5" />
|
||||
<radio label="Hotel" value="6" />
|
||||
</radiogroup>
|
||||
</setting>
|
||||
<setting pref="extensions.inlinesettings3.radioString" type="radio" title="Radio">
|
||||
<radiogroup>
|
||||
<radio label="India" value="india" />
|
||||
<radio label="Juliet" value="juliet" />
|
||||
<radio label="Kilo" value="kilo" />
|
||||
</radiogroup>
|
||||
</setting>
|
||||
<setting pref="extensions.inlinesettings3.menulist" type="menulist" title="Menulist">
|
||||
<menulist sizetopopup="always">
|
||||
<menupopup>
|
||||
<menuitem label="Lima" value="7" />
|
||||
<menuitem label="Mike" value="8" />
|
||||
<menuitem label="November" value="9" />
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</setting>
|
||||
</vbox>
|
@ -751,10 +751,6 @@ colorpicker[type="button"] { /* Fixes some styling inconsistencies */
|
||||
margin: 1px 5px 2px 5px;
|
||||
}
|
||||
|
||||
setting[type="radio"] > radiogroup {
|
||||
-moz-box-orient: horizontal;
|
||||
}
|
||||
|
||||
/*** creator ***/
|
||||
|
||||
.creator > label {
|
||||
|
@ -1084,7 +1084,7 @@ setting[type="string"] > .setting-input > textbox {
|
||||
|
||||
.addon-control,
|
||||
setting:not([type="integer"]) button,
|
||||
setting[type="menulist"] menulist,
|
||||
setting[type="control"] menulist,
|
||||
setting[type="color"] colorpicker[type="button"] {
|
||||
-moz-appearance: none;
|
||||
padding: 1px 4px;
|
||||
@ -1098,10 +1098,6 @@ setting[type="color"] colorpicker[type="button"] {
|
||||
text-shadow: @loweredShadow@;
|
||||
}
|
||||
|
||||
setting[type="radio"] > radiogroup {
|
||||
-moz-box-orient: horizontal;
|
||||
}
|
||||
|
||||
.addon-control[disabled="true"] {
|
||||
display: none;
|
||||
}
|
||||
@ -1114,7 +1110,7 @@ setting[type="color"] colorpicker[type="button"] {
|
||||
|
||||
.addon-control:active:hover,
|
||||
setting:not([type="integer"]) button:active:hover,
|
||||
setting[type="menulist"] menulist:active:hover,
|
||||
setting[type="control"] menulist:active:hover,
|
||||
setting[type="color"] colorpicker[type="button"]:active:hover {
|
||||
box-shadow: inset 0 1px 3px rgba(0,0,0,.2), 0 1px rgba(255,255,255,0.25);
|
||||
background-image: -moz-linear-gradient(rgba(45,54,71,0.3), rgba(45,54,71,0.1));
|
||||
|
@ -1085,7 +1085,7 @@ menulist { /* Fixes some styling inconsistencies */
|
||||
|
||||
.addon-control,
|
||||
setting:not([type="integer"]) button,
|
||||
setting[type="menulist"] menulist,
|
||||
setting[type="control"] menulist,
|
||||
setting[type="color"] colorpicker[type="button"] {
|
||||
-moz-appearance: none;
|
||||
color: black;
|
||||
@ -1108,7 +1108,7 @@ setting[type="color"] colorpicker[type="button"] {
|
||||
|
||||
.addon-control:active:hover,
|
||||
setting:not([type="integer"]) button:active:hover,
|
||||
setting[type="menulist"] menulist:active:hover,
|
||||
setting[type="control"] menulist:active:hover,
|
||||
setting[type="color"] colorpicker[type="button"]:active:hover {
|
||||
background-color: rgba(61, 76, 92, 0.2);
|
||||
border-color: rgba(39, 53, 68, 0.5);
|
||||
@ -1120,10 +1120,6 @@ setting:not([type="integer"]) button > .button-box {
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
setting[type="radio"] > radiogroup {
|
||||
-moz-box-orient: horizontal;
|
||||
}
|
||||
|
||||
.addon-control[disabled="true"] {
|
||||
display: none;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user