Auto merge of #23381 - maharsh312:master, r=jdm

Canvas Components for OffscreenCanvas

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

---
<!-- 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
- [ ] These changes fix #___ (GitHub issue number if applicable)

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- 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/23381)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2019-05-28 23:13:23 -04:00 committed by GitHub
commit 8dc7a25893
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
257 changed files with 1857 additions and 1870 deletions

View file

@ -3,7 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#canvasgradient
[Exposed=(Window, PaintWorklet)]
[Exposed=(Window, PaintWorklet, Worker)]
interface CanvasGradient {
// opaque object
[Throws]

View file

@ -3,7 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#canvaspattern
[Exposed=(Window, PaintWorklet)]
[Exposed=(Window, PaintWorklet, Worker)]
interface CanvasPattern {
//void setTransform(SVGMatrix matrix);
};

View file

@ -39,14 +39,14 @@ CanvasRenderingContext2D implements CanvasPathDrawingStyles;
CanvasRenderingContext2D implements CanvasTextDrawingStyles;
CanvasRenderingContext2D implements CanvasPath;
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasState {
// state
void save(); // push state on state stack
void restore(); // pop state stack and restore state
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasTransform {
// transformations (default transform is the identity matrix)
void scale(unrestricted double x, unrestricted double y);
@ -70,21 +70,21 @@ interface CanvasTransform {
void resetTransform();
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasCompositing {
// compositing
attribute unrestricted double globalAlpha; // (default 1.0)
attribute DOMString globalCompositeOperation; // (default source-over)
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasImageSmoothing {
// image smoothing
attribute boolean imageSmoothingEnabled; // (default true)
// attribute ImageSmoothingQuality imageSmoothingQuality; // (default low)
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasFillStrokeStyles {
// colours and styles (see also the CanvasDrawingStyles interface)
attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle; // (default black)
@ -96,7 +96,7 @@ interface CanvasFillStrokeStyles {
CanvasPattern createPattern(CanvasImageSource image, [TreatNullAs=EmptyString] DOMString repetition);
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasShadowStyles {
// shadows
attribute unrestricted double shadowOffsetX; // (default 0)
@ -105,7 +105,7 @@ interface CanvasShadowStyles {
attribute DOMString shadowColor; // (default transparent black)
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasFilters {
// filters
//attribute DOMString filter; // (default "none")
@ -119,7 +119,7 @@ interface CanvasRect {
void strokeRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasDrawPath {
// path API (see also CanvasPath)
void beginPath();
@ -145,7 +145,7 @@ interface CanvasUserInterface {
//void scrollPathIntoView(Path2D path);
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasText {
// text (see also the CanvasPathDrawingStyles and CanvasTextDrawingStyles interfaces)
[Pref="dom.canvas-text.enabled"]
@ -156,7 +156,7 @@ interface CanvasText {
//TextMetrics measureText(DOMString text);
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasDrawImage {
// drawing images
[Throws]
@ -171,7 +171,7 @@ interface CanvasDrawImage {
unrestricted double dw, unrestricted double dh);
};
[Exposed=Window, NoInterfaceObject]
[Exposed=(Window, Worker), NoInterfaceObject]
interface CanvasImageData {
// pixel manipulation
[Throws]
@ -193,7 +193,7 @@ enum CanvasTextAlign { "start", "end", "left", "right", "center" };
enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" };
enum CanvasDirection { "ltr", "rtl", "inherit" };
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasPathDrawingStyles {
// line caps/joins
attribute unrestricted double lineWidth; // (default 1)
@ -207,7 +207,7 @@ interface CanvasPathDrawingStyles {
//attribute unrestricted double lineDashOffset;
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasTextDrawingStyles {
// text
//attribute DOMString font; // (default 10px sans-serif)
@ -217,7 +217,7 @@ interface CanvasTextDrawingStyles {
//attribute CanvasDirection direction; // "ltr", "rtl", "inherit" (default: "inherit")
};
[Exposed=(PaintWorklet, Window), NoInterfaceObject]
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject]
interface CanvasPath {
// shared path API methods
void closePath();

View file

@ -8,23 +8,22 @@ interface OffscreenCanvasRenderingContext2D {
//void commit();
readonly attribute OffscreenCanvas canvas;
};
OffscreenCanvasRenderingContext2D implements CanvasState;
OffscreenCanvasRenderingContext2D implements CanvasCompositing;
OffscreenCanvasRenderingContext2D implements CanvasImageSmoothing;
OffscreenCanvasRenderingContext2D implements CanvasFillStrokeStyles;
OffscreenCanvasRenderingContext2D implements CanvasShadowStyles;
OffscreenCanvasRenderingContext2D implements CanvasFilters;
OffscreenCanvasRenderingContext2D implements CanvasRect;
//OffscreenCanvasRenderingContext2D includes CanvasState;
//OffscreenCanvasRenderingContext2D includes CanvasTransform;
//OffscreenCanvasRenderingContext2D includes CanvasCompositing;
//OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing;
//OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles;
//OffscreenCanvasRenderingContext2D includes CanvasShadowStyles;
//OffscreenCanvasRenderingContext2D includes CanvasFilters;
//OffscreenCanvasRenderingContext2D includes CanvasDrawPath;
//OffscreenCanvasRenderingContext2D includes CanvasText;
//OffscreenCanvasRenderingContext2D includes CanvasDrawImage;
//OffscreenCanvasRenderingContext2D includes CanvasImageData;
//OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles;
//OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles;
//OffscreenCanvasRenderingContext2D includes CanvasPath;
OffscreenCanvasRenderingContext2D implements CanvasTransform;
OffscreenCanvasRenderingContext2D implements CanvasDrawPath;
OffscreenCanvasRenderingContext2D implements CanvasText;
OffscreenCanvasRenderingContext2D implements CanvasDrawImage;
OffscreenCanvasRenderingContext2D implements CanvasImageData;
OffscreenCanvasRenderingContext2D implements CanvasPathDrawingStyles;
OffscreenCanvasRenderingContext2D implements CanvasTextDrawingStyles;
OffscreenCanvasRenderingContext2D implements CanvasPath;