Document no longer needs to store a SessionID
[WebKit-https.git] / Source / WebCore / svg / SVGDocument.h
index 996015e..767771c 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
  * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
  * Boston, MA 02110-1301, USA.
  */
 
-#ifndef SVGDocument_h
-#define SVGDocument_h
+#pragma once
 
-#include "Document.h"
-#include "FloatPoint.h"
+#include "XMLDocument.h"
 
 namespace WebCore {
 
-class DOMImplementation;
-class SVGElement;
 class SVGSVGElement;
 
-class SVGDocument final : public Document {
+class SVGDocument final : public XMLDocument {
+    WTF_MAKE_ISO_ALLOCATED(SVGDocument);
 public:
-    static PassRefPtr<SVGDocument> create(Frame* frame, const URL& url)
-    {
-        return adoptRef(new SVGDocument(frame, url));
-    }
+    static Ref<SVGDocument> create(Frame*, const URL&);
 
-    SVGSVGElement* rootElement() const;
+    static RefPtr<SVGSVGElement> rootElement(const Document&);
 
     bool zoomAndPanEnabled() const;
-
     void startPan(const FloatPoint& start);
-    void updatePan(const FloatPoint& pos) const;
+    void updatePan(const FloatPoint& position) const;
 
 private:
     SVGDocument(Frame*, const URL&);
 
-    virtual PassRefPtr<Document> cloneDocumentWithoutChildren() const override;
+    Ref<Document> cloneDocumentWithoutChildren() const override;
 
-    FloatPoint m_translate;
+    FloatSize m_panningOffset;
 };
 
-SPECIALIZE_TYPE_TRAITS_BEGIN(SVGDocument)
-    static bool isSVGDocument(const Document& document) { return document.isSVGDocument(); }
-    static bool isSVGDocument(const Node& node) { return node.isDocumentNode() && isSVGDocument(toDocument(node)); }
-SPECIALIZE_TYPE_TRAITS_END()
+inline Ref<SVGDocument> SVGDocument::create(Frame* frame, const URL& url)
+{
+    return adoptRef(*new SVGDocument(frame, url));
+}
 
 } // namespace WebCore
 
-#endif // SVGDocument_h
+SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::SVGDocument)
+    static bool isType(const WebCore::Document& document) { return document.isSVGDocument(); }
+    static bool isType(const WebCore::Node& node) { return is<WebCore::Document>(node) && isType(downcast<WebCore::Document>(node)); }
+SPECIALIZE_TYPE_TRAITS_END()