summaryrefslogtreecommitdiffstats
path: root/WebCore/history/HistoryItem.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/history/HistoryItem.h')
-rw-r--r--WebCore/history/HistoryItem.h63
1 files changed, 39 insertions, 24 deletions
diff --git a/WebCore/history/HistoryItem.h b/WebCore/history/HistoryItem.h
index 839f47d..cd23c9e 100644
--- a/WebCore/history/HistoryItem.h
+++ b/WebCore/history/HistoryItem.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,20 +26,8 @@
#ifndef HistoryItem_h
#define HistoryItem_h
-#include "CachedPage.h"
-#include "FormData.h"
#include "IntPoint.h"
#include "PlatformString.h"
-#include <wtf/RefCounted.h>
-#include "StringHash.h"
-#include <wtf/HashMap.h>
-#include <wtf/OwnPtr.h>
-#include <wtf/RefPtr.h>
-#include <wtf/Vector.h>
-
-#if PLATFORM(QT)
-#include <QVariant>
-#endif
#if PLATFORM(MAC)
#import <wtf/RetainPtr.h>
@@ -50,14 +38,20 @@ typedef struct objc_object* id;
#include "WebHistory.h"
#endif
+#if PLATFORM(QT)
+#include <QVariant>
+#endif
+
namespace WebCore {
+class CachedPage;
class Document;
+class FormData;
+class HistoryItem;
class Image;
class KURL;
class ResourceRequest;
-class HistoryItem;
typedef Vector<RefPtr<HistoryItem> > HistoryItemVector;
#ifdef ANDROID_HISTORY_CLIENT
@@ -105,15 +99,16 @@ public:
const String& parent() const;
KURL url() const;
KURL originalURL() const;
+ const String& referrer() const;
const String& target() const;
bool isTargetItem() const;
FormData* formData();
String formContentType() const;
- String formReferrer() const;
- String rssFeedReferrer() const;
int visitCount() const;
+ bool lastVisitWasFailure() const { return m_lastVisitWasFailure; }
+ bool lastVisitWasHTTPNonGet() const { return m_lastVisitWasHTTPNonGet; }
void mergeAutoCompleteHints(HistoryItem* otherItem);
@@ -127,6 +122,7 @@ public:
void setURL(const KURL&);
void setURLString(const String&);
void setOriginalURLString(const String&);
+ void setReferrer(const String&);
void setTarget(const String&);
void setParent(const String&);
void setTitle(const String&);
@@ -134,8 +130,11 @@ public:
void setFormInfoFromRequest(const ResourceRequest&);
- void setRSSFeedReferrer(const String&);
+ void recordInitialVisit();
+
void setVisitCount(int);
+ void setLastVisitWasFailure(bool wasFailure) { m_lastVisitWasFailure = wasFailure; }
+ void setLastVisitWasHTTPNonGet(bool wasNotGet) { m_lastVisitWasHTTPNonGet = wasNotGet; }
void addChildItem(PassRefPtr<HistoryItem>);
HistoryItem* childItemWithName(const String&) const;
@@ -147,7 +146,12 @@ public:
// This should not be called directly for HistoryItems that are already included
// in GlobalHistory. The WebKit api for this is to use -[WebHistory setLastVisitedTimeInterval:forItem:] instead.
void setLastVisitedTime(double);
-
+ void visited(const String& title, double time);
+
+ void addRedirectURL(const String&);
+ Vector<String>* redirectURLs() const;
+ void setRedirectURLs(std::auto_ptr<Vector<String> >);
+
bool isCurrentDocument(Document*) const;
#if PLATFORM(MAC)
@@ -175,6 +179,10 @@ public:
android::WebHistoryItem* bridge() const { return m_bridge.get(); }
#endif
+ void adoptVisitCounts(Vector<int>& dailyCounts, Vector<int>& weeklyCounts);
+ const Vector<int>& dailyVisitCounts() { return m_dailyVisitCounts; }
+ const Vector<int>& weeklyVisitCounts() { return m_weeklyVisitCounts; }
+
private:
HistoryItem();
HistoryItem(const String& urlString, const String& title, double lastVisited);
@@ -182,32 +190,39 @@ private:
HistoryItem(const KURL& url, const String& target, const String& parent, const String& title);
HistoryItem(const HistoryItem&);
-
+
+ void padDailyCountsForNewVisit(double time);
+ void collapseDailyVisitsToWeekly();
+ void recordVisitAtTime(double);
+
String m_urlString;
String m_originalURLString;
+ String m_referrer;
String m_target;
String m_parent;
String m_title;
String m_displayTitle;
double m_lastVisitedTime;
+ bool m_lastVisitWasHTTPNonGet;
IntPoint m_scrollPoint;
Vector<String> m_documentState;
HistoryItemVector m_subItems;
+ bool m_lastVisitWasFailure;
bool m_isInPageCache;
bool m_isTargetItem;
int m_visitCount;
-
+ Vector<int> m_dailyVisitCounts;
+ Vector<int> m_weeklyVisitCounts;
+
+ OwnPtr<Vector<String> > m_redirectURLs;
+
// info used to repost form data
RefPtr<FormData> m_formData;
String m_formContentType;
- String m_formReferrer;
-
- // info used to support RSS feeds
- String m_rssFeedReferrer;
// PageCache controls these fields.
HistoryItem* m_next;