summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h')
-rw-r--r--chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h39
1 files changed, 17 insertions, 22 deletions
diff --git a/chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h b/chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h
index a0cd0e0d391..84eb2b04d07 100644
--- a/chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h
+++ b/chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h
@@ -31,7 +31,6 @@
#include "third_party/blink/renderer/bindings/modules/v8/path_2d_or_string.h"
#include "third_party/blink/renderer/core/geometry/dom_matrix.h"
#include "third_party/blink/renderer/core/geometry/dom_matrix_2d_init.h"
-#include "third_party/blink/renderer/core/svg/svg_matrix_tear_off.h"
#include "third_party/blink/renderer/core/svg/svg_path_utilities.h"
#include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_path.h"
#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
@@ -40,6 +39,8 @@
namespace blink {
+class ExceptionState;
+
class MODULES_EXPORT Path2D final : public ScriptWrappable, public CanvasPath {
DEFINE_WRAPPERTYPEINFO();
WTF_MAKE_NONCOPYABLE(Path2D);
@@ -48,42 +49,36 @@ class MODULES_EXPORT Path2D final : public ScriptWrappable, public CanvasPath {
static Path2D* Create(Path2DOrString pathorstring) {
DCHECK(!pathorstring.IsNull());
if (pathorstring.IsPath2D())
- return new Path2D(pathorstring.GetAsPath2D());
+ return MakeGarbageCollected<Path2D>(pathorstring.GetAsPath2D());
if (pathorstring.IsString())
- return new Path2D(pathorstring.GetAsString());
+ return MakeGarbageCollected<Path2D>(pathorstring.GetAsString());
NOTREACHED();
return nullptr;
}
- static Path2D* Create() { return new Path2D; }
- static Path2D* Create(const Path& path) { return new Path2D(path); }
+ static Path2D* Create() { return MakeGarbageCollected<Path2D>(); }
+ static Path2D* Create(const Path& path) {
+ return MakeGarbageCollected<Path2D>(path);
+ }
const Path& GetPath() const { return path_; }
- void addPath(Path2D* path) {
- DOMMatrix2DInit transform;
- addPath(path, transform);
+ void addPath(Path2D* path,
+ DOMMatrix2DInit* transform,
+ ExceptionState& exception_state) {
+ DOMMatrixReadOnly* matrix =
+ DOMMatrixReadOnly::fromMatrix2D(transform, exception_state);
+ if (!matrix)
+ return;
+ path_.AddPath(path->GetPath(), matrix->GetAffineTransform());
}
- void addPath(Path2D* path, DOMMatrix2DInit& transform) {
- Path src = path->GetPath();
- DOMMatrixReadOnly* m = nullptr;
- m = DOMMatrixReadOnly::fromMatrix2D(transform);
- path_.AddPath(
- src, m ? m->GetAffineTransform() : AffineTransform(1, 0, 0, 1, 0, 0));
- }
-
- ~Path2D() override = default;
-
- private:
Path2D() : CanvasPath() {}
-
Path2D(const Path& path) : CanvasPath(path) {}
-
Path2D(Path2D* path) : CanvasPath(path->GetPath()) {}
-
Path2D(const String& path_data) : CanvasPath() {
BuildPathFromString(path_data, path_);
}
+ ~Path2D() override = default;
};
} // namespace blink