Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / loader / HistoryItem.cpp
index 514ee1a..2be3ae2 100644 (file)
@@ -27,6 +27,7 @@
 #include "core/loader/HistoryItem.h"
 
 #include "core/dom/Document.h"
+#include "core/html/forms/FormController.h"
 #include "platform/network/ResourceRequest.h"
 #include "wtf/CurrentTime.h"
 #include "wtf/text/CString.h"
@@ -52,36 +53,13 @@ HistoryItem::~HistoryItem()
 {
 }
 
-inline HistoryItem::HistoryItem(const HistoryItem& item)
-    : RefCounted<HistoryItem>()
-    , m_urlString(item.m_urlString)
-    , m_referrer(item.m_referrer)
-    , m_target(item.m_target)
-    , m_scrollPoint(item.m_scrollPoint)
-    , m_pageScaleFactor(item.m_pageScaleFactor)
-    , m_documentState(item.m_documentState)
-    , m_itemSequenceNumber(item.m_itemSequenceNumber)
-    , m_documentSequenceNumber(item.m_documentSequenceNumber)
-    , m_stateObject(item.m_stateObject)
-    , m_formContentType(item.m_formContentType)
+void HistoryItem::generateNewItemSequenceNumber()
 {
-    if (item.m_formData)
-        m_formData = item.m_formData->copy();
-
-    unsigned size = item.m_children.size();
-    m_children.reserveInitialCapacity(size);
-    for (unsigned i = 0; i < size; ++i)
-        m_children.uncheckedAppend(item.m_children[i]->copy());
-}
-
-PassRefPtr<HistoryItem> HistoryItem::copy() const
-{
-    return adoptRef(new HistoryItem(*this));
+    m_itemSequenceNumber = generateSequenceNumber();
 }
 
-void HistoryItem::generateNewSequenceNumbers()
+void HistoryItem::generateNewDocumentSequenceNumber()
 {
-    m_itemSequenceNumber = generateSequenceNumber();
     m_documentSequenceNumber = generateSequenceNumber();
 }
 
@@ -114,7 +92,6 @@ void HistoryItem::setURLString(const String& urlString)
 void HistoryItem::setURL(const KURL& url)
 {
     setURLString(url.string());
-    clearDocumentState();
 }
 
 void HistoryItem::setReferrer(const Referrer& referrer)
@@ -127,6 +104,16 @@ void HistoryItem::setTarget(const String& target)
     m_target = target;
 }
 
+const FloatPoint& HistoryItem::pinchViewportScrollPoint() const
+{
+    return m_pinchViewportScrollPoint;
+}
+
+void HistoryItem::setPinchViewportScrollPoint(const FloatPoint& point)
+{
+    m_pinchViewportScrollPoint = point;
+}
+
 const IntPoint& HistoryItem::scrollPoint() const
 {
     return m_scrollPoint;
@@ -139,8 +126,8 @@ void HistoryItem::setScrollPoint(const IntPoint& point)
 
 void HistoryItem::clearScrollPoint()
 {
-    m_scrollPoint.setX(0);
-    m_scrollPoint.setY(0);
+    m_scrollPoint = IntPoint();
+    m_pinchViewportScrollPoint = FloatPoint();
 }
 
 float HistoryItem::pageScaleFactor() const
@@ -155,37 +142,36 @@ void HistoryItem::setPageScaleFactor(float scaleFactor)
 
 void HistoryItem::setDocumentState(const Vector<String>& state)
 {
-    m_documentState = state;
+    ASSERT(!m_documentState);
+    m_documentStateVector = state;
 }
 
-const Vector<String>& HistoryItem::documentState() const
+void HistoryItem::setDocumentState(DocumentState* state)
 {
-    return m_documentState;
-}
-
-void HistoryItem::clearDocumentState()
-{
-    m_documentState.clear();
+    m_documentState = state;
 }
 
-void HistoryItem::setStateObject(PassRefPtr<SerializedScriptValue> object)
+const Vector<String>& HistoryItem::documentState()
 {
-    m_stateObject = object;
+    if (m_documentState)
+        m_documentStateVector = m_documentState->toStateVector();
+    return m_documentStateVector;
 }
 
-void HistoryItem::addChildItem(PassRefPtr<HistoryItem> child)
+Vector<String> HistoryItem::getReferencedFilePaths()
 {
-    m_children.append(child);
+    return FormController::getReferencedFilePaths(documentState());
 }
 
-const HistoryItemVector& HistoryItem::children() const
+void HistoryItem::clearDocumentState()
 {
-    return m_children;
+    m_documentState.clear();
+    m_documentStateVector.clear();
 }
 
-void HistoryItem::clearChildren()
+void HistoryItem::setStateObject(PassRefPtr<SerializedScriptValue> object)
 {
-    m_children.clear();
+    m_stateObject = object;
 }
 
 const AtomicString& HistoryItem::formContentType() const