Implement the HTML5 canvas tainting rules to prevent potential data leakage
[WebKit-https.git] / WebCore / html / CanvasRenderingContext2D.h
index f4cc93819d1138df04668089efc0dc25dde364d7..acb75aa9fa454f7f25c5d2eda924a0c83abc5e33 100644 (file)
@@ -46,6 +46,7 @@ namespace WebCore {
     class HTMLCanvasElement;
     class HTMLImageElement;
     class ImageData;
     class HTMLCanvasElement;
     class HTMLImageElement;
     class ImageData;
+    class KURL;
 
     typedef int ExceptionCode;
 
 
     typedef int ExceptionCode;
 
@@ -166,6 +167,8 @@ namespace WebCore {
         
         PassRefPtr<ImageData> createImageData(float width, float height) const;
         PassRefPtr<ImageData> getImageData(float sx, float sy, float sw, float sh) const;
         
         PassRefPtr<ImageData> createImageData(float width, float height) const;
         PassRefPtr<ImageData> getImageData(float sx, float sy, float sw, float sh) const;
+        void putImageData(ImageData*, float dx, float dy, ExceptionCode&);
+        void putImageData(ImageData*, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight, ExceptionCode&);
         
         void reset();
         void detachCanvas() { m_canvas = 0; }
         
         void reset();
         void detachCanvas() { m_canvas = 0; }
@@ -208,6 +211,10 @@ namespace WebCore {
 
         void clearPathForDashboardBackwardCompatibilityMode();
 
 
         void clearPathForDashboardBackwardCompatibilityMode();
 
+        void checkOrigin(const KURL&);
+
+        void printSecurityExceptionMessage() const;
+
         HTMLCanvasElement* m_canvas;
         Vector<State, 1> m_stateStack;
     };
         HTMLCanvasElement* m_canvas;
         Vector<State, 1> m_stateStack;
     };