Index: chrome/browser/history/history_types.h |
diff --git a/chrome/browser/history/history_types.h b/chrome/browser/history/history_types.h |
index d2702ec5b16a4344f62a4a25026b85d1b53c1d2c..70946bf4bdb120c4f27378333160cc7bee503a64 100644 |
--- a/chrome/browser/history/history_types.h |
+++ b/chrome/browser/history/history_types.h |
@@ -5,27 +5,8 @@ |
#ifndef CHROME_BROWSER_HISTORY_HISTORY_TYPES_H_ |
#define CHROME_BROWSER_HISTORY_HISTORY_TYPES_H_ |
-#include <deque> |
-#include <map> |
-#include <set> |
-#include <string> |
-#include <vector> |
- |
-#include "base/basictypes.h" |
-#include "base/containers/stack_container.h" |
-#include "base/memory/ref_counted_memory.h" |
-#include "base/memory/scoped_vector.h" |
-#include "base/strings/string16.h" |
-#include "base/time/time.h" |
-#include "components/favicon_base/favicon_types.h" |
-#include "components/history/core/browser/url_row.h" |
-#include "components/history/core/common/thumbnail_score.h" |
+#include "components/history/core/browser/history_types.h" |
#include "content/public/common/page_transition_types.h" |
-#include "ui/gfx/image/image.h" |
-#include "ui/gfx/size.h" |
-#include "url/gurl.h" |
- |
-class PageUsageData; |
namespace content { |
class WebContents; |
@@ -33,43 +14,12 @@ class WebContents; |
namespace history { |
-// Forward declaration for friend statements. |
-class HistoryBackend; |
-class URLDatabase; |
- |
-// Container for a list of URLs. |
-typedef std::vector<GURL> RedirectList; |
- |
-typedef int64 FaviconBitmapID; // Identifier for a bitmap in a favicon. |
-typedef int64 SegmentID; // URL segments for the most visited view. |
-typedef int64 IconMappingID; // For page url and icon mapping. |
- |
// Identifier for a context to scope page ids. (ContextIDs are used in |
// comparisons only and are never dereferenced.) |
// NB: The use of WebContents here is temporary; when the dependency on content |
// is broken, some other type will take its place. |
typedef content::WebContents* ContextID; |
-// The enumeration of all possible sources of visits is listed below. |
-// The source will be propagated along with a URL or a visit item |
-// and eventually be stored in the history database, |
-// visit_source table specifically. |
-// Different from page transition types, they describe the origins of visits. |
-// (Warning): Please don't change any existing values while it is ok to add |
-// new values when needed. |
-enum VisitSource { |
- SOURCE_SYNCED = 0, // Synchronized from somewhere else. |
- SOURCE_BROWSED = 1, // User browsed. |
- SOURCE_EXTENSION = 2, // Added by an extension. |
- SOURCE_FIREFOX_IMPORTED = 3, |
- SOURCE_IE_IMPORTED = 4, |
- SOURCE_SAFARI_IMPORTED = 5, |
-}; |
- |
-typedef int64 VisitID; |
-// Structure to hold the mapping between each visit's id and its source. |
-typedef std::map<VisitID, VisitSource> VisitSourceMap; |
- |
// VisitRow ------------------------------------------------------------------- |
// Holds all information associated with a specific visit. A visit holds time |
@@ -124,168 +74,6 @@ typedef std::vector<VisitRow> VisitVector; |
// used by HistoryBackend::AddVisits() to create new visits for a URL. |
typedef std::pair<base::Time, content::PageTransition> VisitInfo; |
-// PageVisit ------------------------------------------------------------------ |
- |
-// Represents a simplified version of a visit for external users. Normally, |
-// views are only interested in the time, and not the other information |
-// associated with a VisitRow. |
-struct PageVisit { |
- URLID page_id; |
- base::Time visit_time; |
-}; |
- |
-// QueryResults ---------------------------------------------------------------- |
- |
-// Encapsulates the results of a history query. It supports an ordered list of |
-// URLResult objects, plus an efficient way of looking up the index of each time |
-// a given URL appears in those results. |
-class QueryResults { |
- public: |
- typedef std::vector<URLResult*> URLResultVector; |
- |
- QueryResults(); |
- ~QueryResults(); |
- |
- // Indicates the first time that the query includes results for (queries are |
- // clipped at the beginning, so it will always include to the end of the time |
- // queried). |
- // |
- // If the number of results was clipped as a result of the max count, this |
- // will be the time of the first query returned. If there were fewer results |
- // than we were allowed to return, this represents the first date considered |
- // in the query (this will be before the first result if there was time |
- // queried with no results). |
- // |
- // TODO(brettw): bug 1203054: This field is not currently set properly! Do |
- // not use until the bug is fixed. |
- base::Time first_time_searched() const { return first_time_searched_; } |
- void set_first_time_searched(base::Time t) { first_time_searched_ = t; } |
- // Note: If you need end_time_searched, it can be added. |
- |
- void set_reached_beginning(bool reached) { reached_beginning_ = reached; } |
- bool reached_beginning() { return reached_beginning_; } |
- |
- size_t size() const { return results_.size(); } |
- bool empty() const { return results_.empty(); } |
- |
- URLResult& back() { return *results_.back(); } |
- const URLResult& back() const { return *results_.back(); } |
- |
- URLResult& operator[](size_t i) { return *results_[i]; } |
- const URLResult& operator[](size_t i) const { return *results_[i]; } |
- |
- URLResultVector::const_iterator begin() const { return results_.begin(); } |
- URLResultVector::const_iterator end() const { return results_.end(); } |
- URLResultVector::const_reverse_iterator rbegin() const { |
- return results_.rbegin(); |
- } |
- URLResultVector::const_reverse_iterator rend() const { |
- return results_.rend(); |
- } |
- |
- // Returns a pointer to the beginning of an array of all matching indices |
- // for entries with the given URL. The array will be |*num_matches| long. |
- // |num_matches| can be NULL if the caller is not interested in the number of |
- // results (commonly it will only be interested in the first one and can test |
- // the pointer for NULL). |
- // |
- // When there is no match, it will return NULL and |*num_matches| will be 0. |
- const size_t* MatchesForURL(const GURL& url, size_t* num_matches) const; |
- |
- // Swaps the current result with another. This allows ownership to be |
- // efficiently transferred without copying. |
- void Swap(QueryResults* other); |
- |
- // Adds the given result to the map, using swap() on the members to avoid |
- // copying (there are a lot of strings and vectors). This means the parameter |
- // object will be cleared after this call. |
- void AppendURLBySwapping(URLResult* result); |
- |
- // Removes all instances of the given URL from the result set. |
- void DeleteURL(const GURL& url); |
- |
- // Deletes the given range of items in the result set. |
- void DeleteRange(size_t begin, size_t end); |
- |
- private: |
- // Maps the given URL to a list of indices into results_ which identify each |
- // time an entry with that URL appears. Normally, each URL will have one or |
- // very few indices after it, so we optimize this to use statically allocated |
- // memory when possible. |
- typedef std::map<GURL, base::StackVector<size_t, 4> > URLToResultIndices; |
- |
- // Inserts an entry into the |url_to_results_| map saying that the given URL |
- // is at the given index in the results_. |
- void AddURLUsageAtIndex(const GURL& url, size_t index); |
- |
- // Adds |delta| to each index in url_to_results_ in the range [begin,end] |
- // (this is inclusive). This is used when inserting or deleting. |
- void AdjustResultMap(size_t begin, size_t end, ptrdiff_t delta); |
- |
- base::Time first_time_searched_; |
- |
- // Whether the query reaches the beginning of the database. |
- bool reached_beginning_; |
- |
- // The ordered list of results. The pointers inside this are owned by this |
- // QueryResults object. |
- ScopedVector<URLResult> results_; |
- |
- // Maps URLs to entries in results_. |
- URLToResultIndices url_to_results_; |
- |
- DISALLOW_COPY_AND_ASSIGN(QueryResults); |
-}; |
- |
-// QueryOptions ---------------------------------------------------------------- |
- |
-struct QueryOptions { |
- QueryOptions(); |
- |
- // The time range to search for matches in. The beginning is inclusive and |
- // the ending is exclusive. Either one (or both) may be null. |
- // |
- // This will match only the one recent visit of a URL. For text search |
- // queries, if the URL was visited in the given time period, but has also |
- // been visited more recently than that, it will not be returned. When the |
- // text query is empty, this will return the most recent visit within the |
- // time range. |
- base::Time begin_time; |
- base::Time end_time; |
- |
- // Sets the query time to the last |days_ago| days to the present time. |
- void SetRecentDayRange(int days_ago); |
- |
- // The maximum number of results to return. The results will be sorted with |
- // the most recent first, so older results may not be returned if there is not |
- // enough room. When 0, this will return everything (the default). |
- int max_count; |
- |
- enum DuplicateHandling { |
- // Omit visits for which there is a more recent visit to the same URL. |
- // Each URL in the results will appear only once. |
- REMOVE_ALL_DUPLICATES, |
- |
- // Omit visits for which there is a more recent visit to the same URL on |
- // the same day. Each URL will appear no more than once per day, where the |
- // day is defined by the local timezone. |
- REMOVE_DUPLICATES_PER_DAY, |
- |
- // Return all visits without deduping. |
- KEEP_ALL_DUPLICATES |
- }; |
- |
- // Allows the caller to specify how duplicate URLs in the result set should |
- // be handled. The default is REMOVE_DUPLICATES. |
- DuplicateHandling duplicate_policy; |
- |
- // Helpers to get the effective parameters values, since a value of 0 means |
- // "unspecified". |
- int EffectiveMaxCount() const; |
- int64 EffectiveBeginTime() const; |
- int64 EffectiveEndTime() const; |
-}; |
- |
// QueryURLResult ------------------------------------------------------------- |
// QueryURLResult encapsulates the result of a call to HistoryBackend::QueryURL. |
@@ -300,71 +88,6 @@ struct QueryURLResult { |
VisitVector visits; |
}; |
-// VisibleVisitCountToHostResult ---------------------------------------------- |
- |
-// VisibleVisitCountToHostResult encapsulates the result of a call to |
-// HistoryBackend::GetVisibleVisitCountToHost. |
-struct VisibleVisitCountToHostResult { |
- // Indicates whether the call to HistoryBackend::GetVisibleVisitCountToHost |
- // was successfull or not. If false, then both |count| and |first_visit| are |
- // undefined. |
- bool success; |
- int count; |
- base::Time first_visit; |
-}; |
- |
-// MostVisitedURL -------------------------------------------------------------- |
- |
-// Holds the per-URL information of the most visited query. |
-struct MostVisitedURL { |
- MostVisitedURL(); |
- MostVisitedURL(const GURL& url, const base::string16& title); |
- MostVisitedURL(const GURL& url, |
- const base::string16& title, |
- const base::Time& last_forced_time); |
- ~MostVisitedURL(); |
- |
- GURL url; |
- base::string16 title; |
- |
- // If this is a URL for which we want to force a thumbnail, records the last |
- // time it was forced so we can evict it when more recent URLs are requested. |
- // If it's not a forced thumbnail, keep a time of 0. |
- base::Time last_forced_time; |
- |
- RedirectList redirects; |
- |
- bool operator==(const MostVisitedURL& other) { |
- return url == other.url; |
- } |
-}; |
- |
-// FilteredURL ----------------------------------------------------------------- |
- |
-// Holds the per-URL information of the filterd url query. |
-struct FilteredURL { |
- struct ExtendedInfo { |
- ExtendedInfo(); |
- // The absolute number of visits. |
- unsigned int total_visits; |
- // The number of visits, as seen by the Most Visited NTP pane. |
- unsigned int visits; |
- // The total number of seconds that the page was open. |
- int64 duration_opened; |
- // The time when the page was last visited. |
- base::Time last_visit_time; |
- }; |
- |
- FilteredURL(); |
- explicit FilteredURL(const PageUsageData& data); |
- ~FilteredURL(); |
- |
- GURL url; |
- base::string16 title; |
- double score; |
- ExtendedInfo extended_info; |
-}; |
- |
// Navigation ----------------------------------------------------------------- |
// Marshalling structure for AddPage. |
@@ -400,123 +123,6 @@ struct HistoryAddPageArgs { |
bool did_replace_entry; |
}; |
-// TopSites ------------------------------------------------------------------- |
- |
-typedef std::vector<MostVisitedURL> MostVisitedURLList; |
-typedef std::vector<FilteredURL> FilteredURLList; |
- |
-// Used by TopSites to store the thumbnails. |
-struct Images { |
- Images(); |
- ~Images(); |
- |
- scoped_refptr<base::RefCountedMemory> thumbnail; |
- ThumbnailScore thumbnail_score; |
- |
- // TODO(brettw): this will eventually store the favicon. |
- // scoped_refptr<base::RefCountedBytes> favicon; |
-}; |
- |
-struct MostVisitedURLWithRank { |
- MostVisitedURL url; |
- int rank; |
-}; |
- |
-typedef std::vector<MostVisitedURLWithRank> MostVisitedURLWithRankList; |
- |
-struct TopSitesDelta { |
- TopSitesDelta(); |
- ~TopSitesDelta(); |
- |
- MostVisitedURLList deleted; |
- MostVisitedURLWithRankList added; |
- MostVisitedURLWithRankList moved; |
-}; |
- |
-typedef std::map<GURL, scoped_refptr<base::RefCountedBytes> > URLToThumbnailMap; |
- |
-// Used when migrating most visited thumbnails out of history and into topsites. |
-struct ThumbnailMigration { |
- ThumbnailMigration(); |
- ~ThumbnailMigration(); |
- |
- MostVisitedURLList most_visited; |
- URLToThumbnailMap url_to_thumbnail_map; |
-}; |
- |
-typedef std::map<GURL, Images> URLToImagesMap; |
- |
-class MostVisitedThumbnails |
- : public base::RefCountedThreadSafe<MostVisitedThumbnails> { |
- public: |
- MostVisitedThumbnails(); |
- |
- MostVisitedURLList most_visited; |
- URLToImagesMap url_to_images_map; |
- |
- private: |
- friend class base::RefCountedThreadSafe<MostVisitedThumbnails>; |
- virtual ~MostVisitedThumbnails(); |
- |
- DISALLOW_COPY_AND_ASSIGN(MostVisitedThumbnails); |
-}; |
- |
-// Favicons ------------------------------------------------------------------- |
- |
-// Used for the mapping between the page and icon. |
-struct IconMapping { |
- IconMapping(); |
- ~IconMapping(); |
- |
- // The unique id of the mapping. |
- IconMappingID mapping_id; |
- |
- // The url of a web page. |
- GURL page_url; |
- |
- // The unique id of the icon. |
- favicon_base::FaviconID icon_id; |
- |
- // The url of the icon. |
- GURL icon_url; |
- |
- // The type of icon. |
- favicon_base::IconType icon_type; |
-}; |
- |
-// Defines a favicon bitmap and its associated pixel size. |
-struct FaviconBitmapIDSize { |
- FaviconBitmapIDSize(); |
- ~FaviconBitmapIDSize(); |
- |
- // The unique id of the favicon bitmap. |
- FaviconBitmapID bitmap_id; |
- |
- // The pixel dimensions of the associated bitmap. |
- gfx::Size pixel_size; |
-}; |
- |
-// Defines a favicon bitmap stored in the history backend. |
-struct FaviconBitmap { |
- FaviconBitmap(); |
- ~FaviconBitmap(); |
- |
- // The unique id of the bitmap. |
- FaviconBitmapID bitmap_id; |
- |
- // The id of the favicon to which the bitmap belongs to. |
- favicon_base::FaviconID icon_id; |
- |
- // Time at which |bitmap_data| was last updated. |
- base::Time last_updated; |
- |
- // The bits of the bitmap. |
- scoped_refptr<base::RefCountedMemory> bitmap_data; |
- |
- // The pixel dimensions of bitmap_data. |
- gfx::Size pixel_size; |
-}; |
- |
// Abbreviated information about a visit. |
struct BriefVisitInfo { |
URLID url_id; |
@@ -531,19 +137,6 @@ class VisitDatabaseObserver { |
virtual void OnAddVisit(const BriefVisitInfo& info) = 0; |
}; |
-struct ExpireHistoryArgs { |
- ExpireHistoryArgs(); |
- ~ExpireHistoryArgs(); |
- |
- // Sets |begin_time| and |end_time| to the beginning and end of the day (in |
- // local time) on which |time| occurs. |
- void SetTimeRangeForOneDay(base::Time time); |
- |
- std::set<GURL> urls; |
- base::Time begin_time; |
- base::Time end_time; |
-}; |
- |
} // namespace history |
#endif // CHROME_BROWSER_HISTORY_HISTORY_TYPES_H_ |