| 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);
 | 
|  };
 | 
|  
 | 
| 
 |