mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +01:00
Implement hiding of interface members via Pref annotations.
This commit is contained in:
parent
88059acd7e
commit
cb5bad63dc
8 changed files with 225 additions and 26 deletions
|
@ -6406,6 +6406,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]
|
|
@ -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>
|
Loading…
Add table
Add a link
Reference in a new issue