Auto merge of #17763 - asajeffrey:script-worklets-pref, r=jdm

Placed worklets implementation behind a pref

<!-- Please describe your changes on the following line: -->

At the moment, worklets are always exposed, even though their spec is still a draft. This PR hides them behind a pref.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #17680.
- [X] These changes do not require tests because the existing worklet tests do the job.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/17763)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-07-18 08:11:23 -07:00 committed by GitHub
commit 92eeec297b
13 changed files with 12 additions and 11 deletions

View file

@ -4,7 +4,7 @@
// https://drafts.css-houdini.org/css-typed-om-1/#cssstylevalue
// NOTE: should this be exposed to Window?
[Exposed=(Worklet)]
[Pref="dom.worklet.enabled", Exposed=(Worklet)]
interface CSSStyleValue {
stringifier;
// static CSSStyleValue? parse(DOMString property, DOMString cssText);

View file

@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://drafts.css-houdini.org/css-paint-api/#paintrenderingcontext2d
[Exposed=PaintWorklet]
[Pref="dom.worklet.enabled", Exposed=PaintWorklet]
interface PaintRenderingContext2D {
};
PaintRenderingContext2D implements CanvasState;

View file

@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://drafts.css-houdini.org/css-paint-api/#paintsize
[Exposed=PaintWorklet]
[Pref="dom.worklet.enabled", Exposed=PaintWorklet]
interface PaintSize {
readonly attribute double width;
readonly attribute double height;

View file

@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://drafts.css-houdini.org/css-paint-api/#paintworkletglobalscope
[Global=(Worklet,PaintWorklet), Exposed=PaintWorklet]
[Global=(Worklet,PaintWorklet), Pref="dom.worklet.enabled", Exposed=PaintWorklet]
interface PaintWorkletGlobalScope : WorkletGlobalScope {
[Throws] void registerPaint(DOMString name, VoidFunction paintCtor);
};

View file

@ -4,7 +4,7 @@
// https://drafts.css-houdini.org/css-typed-om-1/#stylepropertymapreadonly
// NOTE: should this be exposed to Window?
[Exposed=(Worklet)]
[Pref="dom.worklet.enabled", Exposed=(Worklet)]
interface StylePropertyMapReadOnly {
CSSStyleValue? get(DOMString property);
// sequence<CSSStyleValue> getAll(DOMString property);

View file

@ -5,7 +5,7 @@
// This interface is entirely internal to Servo, and should not be accessible to
// web pages.
[Global=(Worklet,TestWorklet), Exposed=TestWorklet]
[Global=(Worklet,TestWorklet), Pref="dom.worklet.enabled", Exposed=TestWorklet]
interface TestWorkletGlobalScope : WorkletGlobalScope {
void registerKeyValue(DOMString key, DOMString value);
};

View file

@ -206,5 +206,5 @@ partial interface Window {
// https://drafts.css-houdini.org/css-paint-api-1/#paint-worklet
partial interface Window {
[SameObject] readonly attribute Worklet paintWorklet;
[SameObject, Pref="dom.worklet.enabled"] readonly attribute Worklet paintWorklet;
};

View file

@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://drafts.css-houdini.org/worklets/#worklet
[Exposed=(Window)]
[Pref="dom.worklet.enabled", Exposed=(Window)]
interface Worklet {
[NewObject] Promise<void> addModule(USVString moduleURL, optional WorkletOptions options);
};

View file

@ -5,6 +5,6 @@
// https://drafts.css-houdini.org/worklets/#workletglobalscope
// TODO: The spec IDL doesn't make this a subclass of EventTarget
// https://github.com/whatwg/html/issues/2611
[Exposed=Worklet]
[Pref="dom.worklet.enabled", Exposed=Worklet]
interface WorkletGlobalScope: GlobalScope {
};

View file

@ -27241,7 +27241,7 @@
"testharness"
],
"mozilla/interfaces.html": [
"ffdc606aaf989ef8bcdecef8cef8764bbb2ae1b2",
"c884fee8603f93099ffd0acc30f0ab0cbee5b5f8",
"testharness"
],
"mozilla/interfaces.js": [

View file

@ -0,0 +1 @@
prefs: [dom.worklet.enabled:true]

View file

@ -0,0 +1 @@
prefs: [dom.worklet.enabled:true]

View file

@ -201,7 +201,6 @@ test_interfaces([
"WebSocket",
"Window",
"Worker",
"Worklet",
"XMLDocument",
"XMLHttpRequest",
"XMLHttpRequestEventTarget",