#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"
{
}
-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();
}
void HistoryItem::setURL(const KURL& url)
{
setURLString(url.string());
- clearDocumentState();
}
void HistoryItem::setReferrer(const Referrer& referrer)
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;
void HistoryItem::clearScrollPoint()
{
- m_scrollPoint.setX(0);
- m_scrollPoint.setY(0);
+ m_scrollPoint = IntPoint();
+ m_pinchViewportScrollPoint = FloatPoint();
}
float HistoryItem::pageScaleFactor() const
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