diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-10-16 00:18:09 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-16 00:18:09 -0500 |
commit | 97bcd97ebd7705df8d4d141d18e79073f71b2ba2 (patch) | |
tree | c9dd35518514a593e6fba013cc7c30f0a88de210 | |
parent | bd1b50456a9a9e62b2fa0a479a0521616a0a5c6b (diff) | |
parent | df8030c50dd0f0aa472a5cc21cd1004e08236a98 (diff) | |
download | servo-97bcd97ebd7705df8d4d141d18e79073f71b2ba2.tar.gz servo-97bcd97ebd7705df8d4d141d18e79073f71b2ba2.zip |
Auto merge of #13747 - scotttrinh:canvas-webidl, r=Ms2ger
Partial fix for #12415: expose Canvas interfaces
<!-- Please describe your changes on the following line: -->
Fix interface exposure per [the specs](https://html.spec.whatwg.org/multipage/scripting.html#2dcontext).
One lingering question I have is if [`CanvasPath`](https://html.spec.whatwg.org/multipage/scripting.html#canvaspath) needs to be added to `interfaces.worker.js` since it *is* exposed to the `Worker` environment. I tried adding it to the `interfaces.worker.js` list but it failed tests at https://github.com/servo/servo/blob/master/tests/wpt/mozilla/tests/mozilla/interfaces.js#L82
---
<!-- 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 contain a partial fix for #12415 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because _____
<!-- 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/13747)
<!-- Reviewable:end -->
6 files changed, 15 insertions, 36 deletions
diff --git a/components/script/dom/webidls/CanvasGradient.webidl b/components/script/dom/webidls/CanvasGradient.webidl index 8fd73f55e7f..236c077551a 100644 --- a/components/script/dom/webidls/CanvasGradient.webidl +++ b/components/script/dom/webidls/CanvasGradient.webidl @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#canvasgradient -[Exposed=(Window,Worker)] interface CanvasGradient { // opaque object [Throws] diff --git a/components/script/dom/webidls/CanvasPattern.webidl b/components/script/dom/webidls/CanvasPattern.webidl index 165885bd717..eb382b82b1a 100644 --- a/components/script/dom/webidls/CanvasPattern.webidl +++ b/components/script/dom/webidls/CanvasPattern.webidl @@ -3,8 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#canvaspattern - -[Exposed=(Window,Worker)] interface CanvasPattern { //void setTransform(SVGMatrix matrix); }; diff --git a/components/script/dom/webidls/CanvasRenderingContext2D.webidl b/components/script/dom/webidls/CanvasRenderingContext2D.webidl index 9286d8fe6e4..ed5f9477476 100644 --- a/components/script/dom/webidls/CanvasRenderingContext2D.webidl +++ b/components/script/dom/webidls/CanvasRenderingContext2D.webidl @@ -12,7 +12,6 @@ typedef (HTMLImageElement or ImageBitmap */) CanvasImageSource; //[Constructor(optional unsigned long width, unsigned long height)] -[Exposed=(Window,Worker)] interface CanvasRenderingContext2D { // back-reference to the canvas @@ -42,14 +41,14 @@ CanvasRenderingContext2D implements CanvasPathDrawingStyles; CanvasRenderingContext2D implements CanvasTextDrawingStyles; CanvasRenderingContext2D implements CanvasPath; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasState { // state void save(); // push state on state stack void restore(); // pop state stack and restore state }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasTransform { // transformations (default transform is the identity matrix) void scale(unrestricted double x, unrestricted double y); @@ -73,21 +72,21 @@ interface CanvasTransform { void resetTransform(); }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasCompositing { // compositing attribute unrestricted double globalAlpha; // (default 1.0) attribute DOMString globalCompositeOperation; // (default source-over) }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasImageSmoothing { // image smoothing attribute boolean imageSmoothingEnabled; // (default true) // attribute ImageSmoothingQuality imageSmoothingQuality; // (default low) }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasFillStrokeStyles { // colours and styles (see also the CanvasDrawingStyles interface) @@ -100,7 +99,7 @@ interface CanvasFillStrokeStyles { CanvasPattern createPattern(CanvasImageSource image, [TreatNullAs=EmptyString] DOMString repetition); }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasShadowStyles { // shadows attribute unrestricted double shadowOffsetX; // (default 0) @@ -109,7 +108,7 @@ interface CanvasShadowStyles { attribute DOMString shadowColor; // (default transparent black) }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasRect { // rects //[LenientFloat] @@ -120,7 +119,7 @@ interface CanvasRect { void strokeRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h); }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasDrawPath { // path API (see also CanvasPathMethods) void beginPath(); @@ -143,12 +142,12 @@ interface CanvasDrawPath { //boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y); }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasUserInterface { // TODO? }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasText { // text (see also the CanvasDrawingStyles interface) //void fillText(DOMString text, unrestricted double x, unrestricted double y, @@ -158,7 +157,7 @@ interface CanvasText { //TextMetrics measureText(DOMString text); }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasDrawImage { // drawing images [Throws] @@ -173,7 +172,7 @@ interface CanvasDrawImage { unrestricted double dw, unrestricted double dh); }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasHitRegion { // hit regions //void addHitRegion(optional HitRegionOptions options); @@ -181,7 +180,7 @@ interface CanvasHitRegion { //void clearHitRegions(); }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasImageData { // pixel manipulation [Throws] @@ -206,7 +205,7 @@ enum CanvasTextAlign { "start", "end", "left", "right", "center" }; enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" }; enum CanvasDirection { "ltr", "rtl", "inherit" }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasPathDrawingStyles { // line caps/joins attribute unrestricted double lineWidth; // (default 1) @@ -220,7 +219,7 @@ interface CanvasPathDrawingStyles { //attribute unrestricted double lineDashOffset; }; -[NoInterfaceObject, Exposed=(Window,Worker)] +[NoInterfaceObject] interface CanvasTextDrawingStyles { // text //attribute DOMString font; // (default 10px sans-serif) diff --git a/components/script/dom/webidls/HTMLCanvasElement.webidl b/components/script/dom/webidls/HTMLCanvasElement.webidl index 9b565799dbc..fbb53016605 100644 --- a/components/script/dom/webidls/HTMLCanvasElement.webidl +++ b/components/script/dom/webidls/HTMLCanvasElement.webidl @@ -5,7 +5,6 @@ // https://html.spec.whatwg.org/multipage/#htmlcanvaselement typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext; -[Exposed=(Window,Worker)] interface HTMLCanvasElement : HTMLElement { [Pure] attribute unsigned long width; diff --git a/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini b/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini index b589fb82022..9ecbb682c0c 100644 --- a/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini +++ b/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini @@ -9,21 +9,9 @@ [The DOMImplementation interface object should not be exposed.] expected: FAIL - [The HTMLCanvasElement interface object should not be exposed.] - expected: FAIL - [The MouseEvent interface object should not be exposed.] expected: FAIL - [The CanvasRenderingContext2D interface object should not be exposed.] - expected: FAIL - - [The CanvasGradient interface object should not be exposed.] - expected: FAIL - - [The CanvasPattern interface object should not be exposed.] - expected: FAIL - [The PopStateEvent interface object should not be exposed.] expected: FAIL diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js b/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js index 6b118d0c1a2..b5e2a993c87 100644 --- a/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js +++ b/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js @@ -10,9 +10,6 @@ test_interfaces([ "Attr", "BeforeUnloadEvent", "Blob", - "CanvasGradient", - "CanvasRenderingContext2D", - "CanvasPattern", "CharacterData", "CloseEvent", "CSS", @@ -45,7 +42,6 @@ test_interfaces([ "HashChangeEvent", "Headers", "History", - "HTMLCanvasElement", "HTMLCollection", "HTMLElement", "HTMLFormControlsCollection", |