This source file includes following definitions.
- generateSequenceNumber
- m_documentSequenceNumber
- generateNewSequenceNumbers
- urlString
- url
- referrer
- target
- setURLString
- setURL
- setReferrer
- setTarget
- scrollPoint
- setScrollPoint
- clearScrollPoint
- pageScaleFactor
- setPageScaleFactor
- setDocumentState
- documentState
- clearDocumentState
- setStateObject
- deprecatedAddChildItem
- deprecatedChildren
- deprecatedClearChildren
- formContentType
- setFormInfoFromRequest
- setFormData
- setFormContentType
- formData
- isCurrentDocument
#include "config.h"
#include "core/loader/HistoryItem.h"
#include "core/dom/Document.h"
#include "platform/network/ResourceRequest.h"
#include "wtf/CurrentTime.h"
#include "wtf/text/CString.h"
namespace WebCore {
static long long generateSequenceNumber()
{
static long long next = static_cast<long long>(currentTime() * 1000000.0);
return ++next;
}
HistoryItem::HistoryItem()
: m_pageScaleFactor(0)
, m_itemSequenceNumber(generateSequenceNumber())
, m_documentSequenceNumber(generateSequenceNumber())
{
}
HistoryItem::~HistoryItem()
{
}
void HistoryItem::generateNewSequenceNumbers()
{
m_itemSequenceNumber = generateSequenceNumber();
m_documentSequenceNumber = generateSequenceNumber();
}
const String& HistoryItem::urlString() const
{
return m_urlString;
}
KURL HistoryItem::url() const
{
return KURL(ParsedURLString, m_urlString);
}
const Referrer& HistoryItem::referrer() const
{
return m_referrer;
}
const String& HistoryItem::target() const
{
return m_target;
}
void HistoryItem::setURLString(const String& urlString)
{
if (m_urlString != urlString)
m_urlString = urlString;
}
void HistoryItem::setURL(const KURL& url)
{
setURLString(url.string());
clearDocumentState();
}
void HistoryItem::setReferrer(const Referrer& referrer)
{
m_referrer = referrer;
}
void HistoryItem::setTarget(const String& target)
{
m_target = target;
}
const IntPoint& HistoryItem::scrollPoint() const
{
return m_scrollPoint;
}
void HistoryItem::setScrollPoint(const IntPoint& point)
{
m_scrollPoint = point;
}
void HistoryItem::clearScrollPoint()
{
m_scrollPoint.setX(0);
m_scrollPoint.setY(0);
}
float HistoryItem::pageScaleFactor() const
{
return m_pageScaleFactor;
}
void HistoryItem::setPageScaleFactor(float scaleFactor)
{
m_pageScaleFactor = scaleFactor;
}
void HistoryItem::setDocumentState(const Vector<String>& state)
{
m_documentState = state;
}
const Vector<String>& HistoryItem::documentState() const
{
return m_documentState;
}
void HistoryItem::clearDocumentState()
{
m_documentState.clear();
}
void HistoryItem::setStateObject(PassRefPtr<SerializedScriptValue> object)
{
m_stateObject = object;
}
void HistoryItem::deprecatedAddChildItem(PassRefPtr<HistoryItem> child)
{
m_children.append(child);
}
const HistoryItemVector& HistoryItem::deprecatedChildren() const
{
return m_children;
}
void HistoryItem::deprecatedClearChildren()
{
m_children.clear();
}
const AtomicString& HistoryItem::formContentType() const
{
return m_formContentType;
}
void HistoryItem::setFormInfoFromRequest(const ResourceRequest& request)
{
if (equalIgnoringCase(request.httpMethod(), "POST")) {
m_formData = request.httpBody();
m_formContentType = request.httpContentType();
} else {
m_formData = nullptr;
m_formContentType = nullAtom;
}
}
void HistoryItem::setFormData(PassRefPtr<FormData> formData)
{
m_formData = formData;
}
void HistoryItem::setFormContentType(const AtomicString& formContentType)
{
m_formContentType = formContentType;
}
FormData* HistoryItem::formData()
{
return m_formData.get();
}
bool HistoryItem::isCurrentDocument(Document* doc) const
{
return equalIgnoringFragmentIdentifier(url(), doc->url());
}
}