| Index: chrome/browser/bookmarks/bookmark_index.h
|
| diff --git a/chrome/browser/bookmarks/bookmark_index.h b/chrome/browser/bookmarks/bookmark_index.h
|
| index 93ce5f1be02df9412d10f5596f36ddd46b7a1088..4b3e8f3dc21753c9bfc4b7c45b6097fb70db3c5d 100644
|
| --- a/chrome/browser/bookmarks/bookmark_index.h
|
| +++ b/chrome/browser/bookmarks/bookmark_index.h
|
| @@ -13,17 +13,10 @@
|
| #include "base/strings/string16.h"
|
| #include "components/query_parser/query_parser.h"
|
|
|
| +class BookmarkClient;
|
| class BookmarkNode;
|
| struct BookmarkMatch;
|
|
|
| -namespace content {
|
| -class BrowserContext;
|
| -}
|
| -
|
| -namespace history {
|
| -class URLDatabase;
|
| -}
|
| -
|
| // BookmarkIndex maintains an index of the titles and URLs of bookmarks for
|
| // quick look up. BookmarkIndex is owned and maintained by BookmarkModel, you
|
| // shouldn't need to interact directly with BookmarkIndex.
|
| @@ -36,7 +29,7 @@ class BookmarkIndex {
|
| // |index_urls| says whether URLs should be stored in the index in addition
|
| // to bookmark titles. |languages| used to help parse IDNs in URLs for the
|
| // bookmark index.
|
| - BookmarkIndex(content::BrowserContext* browser_context,
|
| + BookmarkIndex(BookmarkClient* client,
|
| bool index_urls,
|
| const std::string& languages);
|
| ~BookmarkIndex();
|
| @@ -55,36 +48,16 @@ class BookmarkIndex {
|
| std::vector<BookmarkMatch>* results);
|
|
|
| private:
|
| + typedef std::vector<const BookmarkNode*> Nodes;
|
| typedef std::set<const BookmarkNode*> NodeSet;
|
| typedef std::map<base::string16, NodeSet> Index;
|
|
|
| struct Match;
|
| typedef std::vector<Match> Matches;
|
|
|
| - // Pairs BookmarkNodes and the number of times the nodes' URLs were typed.
|
| - // Used to sort Matches in decreasing order of typed count.
|
| - typedef std::pair<const BookmarkNode*, int> NodeTypedCountPair;
|
| - typedef std::vector<NodeTypedCountPair> NodeTypedCountPairs;
|
| -
|
| - // Extracts |matches.nodes| into NodeTypedCountPairs, sorts the pairs in
|
| - // decreasing order of typed count, and then de-dupes the matches.
|
| - void SortMatches(const Matches& matches,
|
| - NodeTypedCountPairs* node_typed_counts) const;
|
| -
|
| - // Extracts BookmarkNodes from |match| and retrieves typed counts for each
|
| - // node from the in-memory database. Inserts pairs containing the node and
|
| - // typed count into the vector |node_typed_counts|. |node_typed_counts| is
|
| - // sorted in decreasing order of typed count.
|
| - void ExtractBookmarkNodePairs(history::URLDatabase* url_db,
|
| - const Match& match,
|
| - NodeTypedCountPairs* node_typed_counts) const;
|
| -
|
| - // Sort function for NodeTypedCountPairs. We sort in decreasing order of typed
|
| - // count so that the best matches will always be added to the results.
|
| - static bool NodeTypedCountPairSortFunc(const NodeTypedCountPair& a,
|
| - const NodeTypedCountPair& b) {
|
| - return a.second > b.second;
|
| - }
|
| + // Extracts |matches.nodes| into Nodes, sorts the pairs in decreasing order of
|
| + // typed count (if supported by the client), and then de-dupes the matches.
|
| + void SortMatches(const Matches& matches, Nodes* sorted_nodes) const;
|
|
|
| // Add |node| to |results| if the node matches the query.
|
| void AddMatchToResults(
|
| @@ -132,14 +105,14 @@ class BookmarkIndex {
|
|
|
| Index index_;
|
|
|
| - // True if URLs are stored in the index as well as bookmark titles.
|
| - const bool index_urls_;
|
| -
|
| - content::BrowserContext* browser_context_;
|
| + BookmarkClient* const client_;
|
|
|
| // Languages used to help parse IDNs in URLs for the bookmark index.
|
| const std::string languages_;
|
|
|
| + // True if URLs are stored in the index as well as bookmark titles.
|
| + const bool index_urls_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(BookmarkIndex);
|
| };
|
|
|
|
|