Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / html / canvas / CanvasRenderingContext.h
index f4140d9..ca6062e 100644 (file)
 #define CanvasRenderingContext_h
 
 #include "core/html/HTMLCanvasElement.h"
+#include "platform/heap/Handle.h"
 #include "wtf/HashSet.h"
 #include "wtf/Noncopyable.h"
 #include "wtf/text/StringHash.h"
 
 namespace blink { class WebLayer; }
 
-namespace WebCore {
+namespace blink {
 
+class CanvasImageSource;
 class HTMLCanvasElement;
 class KURL;
 class WebGLObject;
 
-class CanvasRenderingContext {
-    WTF_MAKE_NONCOPYABLE(CanvasRenderingContext); WTF_MAKE_FAST_ALLOCATED;
+class CanvasRenderingContext : public NoBaseWillBeGarbageCollectedFinalized<CanvasRenderingContext> {
+    WTF_MAKE_NONCOPYABLE(CanvasRenderingContext);
+    WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
 public:
     virtual ~CanvasRenderingContext() { }
 
+#if !ENABLE(OILPAN)
     void ref() { m_canvas->ref(); }
     void deref() { m_canvas->deref(); }
+#endif
+
     HTMLCanvasElement* canvas() const { return m_canvas; }
 
     virtual bool is2d() const { return false; }
@@ -56,13 +62,20 @@ public:
     virtual void paintRenderingResultsToCanvas() {}
 
     virtual blink::WebLayer* platformLayer() const { return 0; }
+
+    virtual void trace(Visitor* visitor) { visitor->trace(m_canvas); }
+
+    bool wouldTaintOrigin(CanvasImageSource*);
+
 protected:
     CanvasRenderingContext(HTMLCanvasElement*);
 
 private:
-    HTMLCanvasElement* m_canvas;
+    RawPtrWillBeMember<HTMLCanvasElement> m_canvas;
+    HashSet<String> m_cleanURLs;
+    HashSet<String> m_dirtyURLs;
 };
 
-} // namespace WebCore
+} // namespace blink
 
 #endif