aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-10-16 00:18:09 -0500
committerGitHub <noreply@github.com>2016-10-16 00:18:09 -0500
commit97bcd97ebd7705df8d4d141d18e79073f71b2ba2 (patch)
treec9dd35518514a593e6fba013cc7c30f0a88de210
parentbd1b50456a9a9e62b2fa0a479a0521616a0a5c6b (diff)
parentdf8030c50dd0f0aa472a5cc21cd1004e08236a98 (diff)
downloadservo-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 -->
-rw-r--r--components/script/dom/webidls/CanvasGradient.webidl1
-rw-r--r--components/script/dom/webidls/CanvasPattern.webidl2
-rw-r--r--components/script/dom/webidls/CanvasRenderingContext2D.webidl31
-rw-r--r--components/script/dom/webidls/HTMLCanvasElement.webidl1
-rw-r--r--tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini12
-rw-r--r--tests/wpt/mozilla/tests/mozilla/interfaces.worker.js4
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",