summaryrefslogtreecommitdiffstats
path: root/WebCore/html/canvas/CanvasRenderingContext.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/canvas/CanvasRenderingContext.h')
-rw-r--r--WebCore/html/canvas/CanvasRenderingContext.h60
1 files changed, 37 insertions, 23 deletions
diff --git a/WebCore/html/canvas/CanvasRenderingContext.h b/WebCore/html/canvas/CanvasRenderingContext.h
index 8499b47..a25e8a1 100644
--- a/WebCore/html/canvas/CanvasRenderingContext.h
+++ b/WebCore/html/canvas/CanvasRenderingContext.h
@@ -28,38 +28,52 @@
#include "GraphicsLayer.h"
+#include <wtf/HashSet.h>
#include <wtf/Noncopyable.h>
+#include <wtf/text/StringHash.h>
namespace WebCore {
- class WebGLObject;
- class HTMLCanvasElement;
+class CanvasPattern;
+class HTMLCanvasElement;
+class HTMLImageElement;
+class HTMLVideoElement;
+class KURL;
+class WebGLObject;
- class CanvasRenderingContext : public Noncopyable {
- public:
- CanvasRenderingContext(HTMLCanvasElement*);
- virtual ~CanvasRenderingContext() { }
-
- // Ref and deref the m_canvas
- void ref();
- void deref();
-
- HTMLCanvasElement* canvas() const { return m_canvas; }
-
- virtual bool is2d() const { return false; }
- virtual bool is3d() const { return false; }
- virtual bool isAccelerated() const { return false; }
-
- virtual void paintRenderingResultsToCanvas() {}
- virtual bool paintsIntoCanvasBuffer() const { return true; }
+class CanvasRenderingContext : public Noncopyable {
+public:
+ CanvasRenderingContext(HTMLCanvasElement*);
+ virtual ~CanvasRenderingContext() { }
+
+ // Ref and deref the m_canvas
+ void ref();
+ void deref();
+
+ HTMLCanvasElement* canvas() const { return m_canvas; }
+
+ virtual bool is2d() const { return false; }
+ virtual bool is3d() const { return false; }
+ virtual bool isAccelerated() const { return false; }
+
+ virtual void paintRenderingResultsToCanvas() {}
+ virtual bool paintsIntoCanvasBuffer() const { return true; }
#if USE(ACCELERATED_COMPOSITING)
- virtual PlatformLayer* platformLayer() const { return 0; }
+ virtual PlatformLayer* platformLayer() const { return 0; }
#endif
- private:
- HTMLCanvasElement* m_canvas;
- };
+protected:
+ void checkOrigin(const CanvasPattern*);
+ void checkOrigin(const HTMLCanvasElement*);
+ void checkOrigin(const HTMLImageElement*);
+ void checkOrigin(const HTMLVideoElement*);
+ void checkOrigin(const KURL&);
+
+private:
+ HTMLCanvasElement* m_canvas;
+ HashSet<String> m_cleanOrigins;
+};
} // namespace WebCore