mirror of
https://github.com/servo/servo.git
synced 2025-08-11 16:35:33 +01:00
Auto merge of #10081 - jdm:interfacepref, r=nox
Support controlling interface and member visibility via preferences This was easier to throw together than per-attribute/method support, and it gets rid of some nonstandard properties from our globals. Fixes #7626. r? @Ms2ger <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10081) <!-- Reviewable:end -->
This commit is contained in:
commit
8255e74a61
28 changed files with 352 additions and 53 deletions
|
@ -6424,6 +6424,12 @@
|
|||
"url": "/_mozilla/mozilla/innerHTML.html"
|
||||
}
|
||||
],
|
||||
"mozilla/interface_member_exposed.html": [
|
||||
{
|
||||
"path": "mozilla/interface_member_exposed.html",
|
||||
"url": "/_mozilla/mozilla/interface_member_exposed.html"
|
||||
}
|
||||
],
|
||||
"mozilla/interfaces.html": [
|
||||
{
|
||||
"path": "mozilla/interfaces.html",
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[interface_member_exposed.html]
|
||||
type: testharness
|
||||
prefs: [dom.testbinding.enabled:true,
|
||||
dom.testbinding.prefcontrolled2.enabled:true]
|
|
@ -1,3 +1,3 @@
|
|||
[preferences.html]
|
||||
type: testharness
|
||||
prefs: [dom.testbinding.preference_value.falsy:false, dom.testbinding.preference_value.truthy:true, dom.testbinding.preference_value.string_empty:, dom.testbinding.preference_value.string_test:test, dom.testbinding.preference_value.space_string_test:test1 test2, dom.testbinding.preference_value.quote_string_test:"test1 test2"]
|
||||
prefs: [dom.testbinding.enabled:true, dom.testbinding.preference_value.falsy:false, dom.testbinding.preference_value.truthy:true, dom.testbinding.preference_value.string_empty:, dom.testbinding.preference_value.string_test:test, dom.testbinding.preference_value.space_string_test:test1 test2, dom.testbinding.preference_value.quote_string_test:"test1 test2"]
|
||||
|
|
3
tests/wpt/mozilla/meta/mozilla/sequence-hole.html.ini
Normal file
3
tests/wpt/mozilla/meta/mozilla/sequence-hole.html.ini
Normal file
|
@ -0,0 +1,3 @@
|
|||
[sequence-hole.html]
|
||||
type: testharness
|
||||
prefs: [dom.testbinding.enabled:true]
|
|
@ -0,0 +1,3 @@
|
|||
[variadic-interface.html]
|
||||
type: testharness
|
||||
prefs: [dom.testbinding.enabled:true]
|
3
tests/wpt/mozilla/meta/mozilla/weakref.html.ini
Normal file
3
tests/wpt/mozilla/meta/mozilla/weakref.html.ini
Normal file
|
@ -0,0 +1,3 @@
|
|||
[weakref.html]
|
||||
type: testharness
|
||||
prefs: [dom.testbinding.enabled:true]
|
|
@ -0,0 +1,41 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title></title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
function test_member(name, enabled, target) {
|
||||
var status = enabled ? "Enabled" : "Disabled";
|
||||
var verb = enabled ? "shows" : "hides";
|
||||
test(function() {
|
||||
var interface = target(window.TestBinding);
|
||||
var descriptor = Object.getOwnPropertyDescriptor(interface, name);
|
||||
if (enabled) {
|
||||
assert_not_equals(descriptor, undefined);
|
||||
} else {
|
||||
assert_equals(descriptor, undefined);
|
||||
}
|
||||
}, status + " preference " + verb + " member controlled by that preference: " + name);
|
||||
}
|
||||
|
||||
var members = [
|
||||
'prefControlledAttribute',
|
||||
'prefControlledMethod'
|
||||
];
|
||||
var staticMembers = [
|
||||
'prefControlledStaticAttribute',
|
||||
'prefControlledStaticMethod',
|
||||
'prefControlledConst'
|
||||
];
|
||||
|
||||
for (var i = 0; i < members.length; i++) {
|
||||
var name = members[i];
|
||||
test_member(name + 'Enabled', true, function(o) { return Object.getPrototypeOf(new o()) });
|
||||
test_member(name + 'Disabled', false, function(o) { return Object.getPrototypeOf(new o()) });
|
||||
}
|
||||
for (var i = 0; i < staticMembers.length; i++) {
|
||||
var name = staticMembers[i];
|
||||
test_member(name + 'Enabled', true, function(o) { return o; });
|
||||
test_member(name + 'Disabled', false, function(o) { return o; });
|
||||
}
|
||||
</script>
|
|
@ -22,8 +22,6 @@ var ecmaGlobals = [
|
|||
"EvalError",
|
||||
"Float32Array",
|
||||
"Float64Array",
|
||||
"FocusEvent",
|
||||
"ForceTouchEvent",
|
||||
"Function",
|
||||
"Infinity",
|
||||
"Int16Array",
|
||||
|
@ -74,15 +72,6 @@ var ecmaGlobals = [
|
|||
var interfaceNamesInGlobalScope = [
|
||||
"Attr",
|
||||
"Blob",
|
||||
"Bluetooth",
|
||||
"BluetoothAdvertisingData",
|
||||
"BluetoothCharacteristicProperties",
|
||||
"BluetoothDevice",
|
||||
"BluetoothRemoteGATTCharacteristic",
|
||||
"BluetoothRemoteGATTDescriptor",
|
||||
"BluetoothRemoteGATTServer",
|
||||
"BluetoothRemoteGATTService",
|
||||
"BluetoothUUID",
|
||||
"CanvasGradient",
|
||||
"CanvasRenderingContext2D",
|
||||
"CanvasPattern",
|
||||
|
@ -115,6 +104,7 @@ var interfaceNamesInGlobalScope = [
|
|||
"File",
|
||||
"FileList",
|
||||
"FileReader",
|
||||
"FocusEvent",
|
||||
"FormData",
|
||||
"HTMLAnchorElement",
|
||||
"HTMLAppletElement",
|
||||
|
@ -215,8 +205,6 @@ var interfaceNamesInGlobalScope = [
|
|||
"StorageEvent",
|
||||
"StyleSheet",
|
||||
"StyleSheetList",
|
||||
"TestBinding", // XXX
|
||||
"TestBindingProxy", // XXX
|
||||
"Text",
|
||||
"TextDecoder",
|
||||
"TextEncoder",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue