| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | 2 // Use of this source code is governed by a BSD-style license that can be | 
|  | 3 // found in the LICENSE file. | 
|  | 4 | 
|  | 5 #ifndef CHROME_BROWSER_AUTOCOMPLETE_BOOKMARK_PROVIDER_H_ | 
|  | 6 #define CHROME_BROWSER_AUTOCOMPLETE_BOOKMARK_PROVIDER_H_ | 
|  | 7 | 
|  | 8 #include <string> | 
|  | 9 | 
|  | 10 #include "chrome/browser/autocomplete/autocomplete_input.h" | 
|  | 11 #include "chrome/browser/autocomplete/autocomplete_match.h" | 
|  | 12 #include "chrome/browser/autocomplete/autocomplete_provider.h" | 
|  | 13 #include "chrome/browser/bookmarks/bookmark_utils.h" | 
|  | 14 #include "chrome/browser/history/snippet.h" | 
|  | 15 | 
|  | 16 class BookmarkModel; | 
|  | 17 class Profile; | 
|  | 18 | 
|  | 19 // This class is an autocomplete provider which quickly (and synchronously) | 
|  | 20 // provides autocomplete suggestions based on the titles of bookmarks. Page | 
|  | 21 // titles, URLs, and typed and visit counts of the bookmarks are not currently | 
|  | 22 // taken into consideration as those factors will have been used by the | 
|  | 23 // HistoryQuickProvider (HQP) while identifying suggestions. | 
|  | 24 // | 
|  | 25 // TODO(mrossetti): Propose a way to coordinate with the HQP the taking of typed | 
|  | 26 // and visit counts and last visit dates, etc. into consideration while scoring. | 
|  | 27 class BookmarkProvider : public AutocompleteProvider { | 
|  | 28  public: | 
|  | 29   BookmarkProvider(AutocompleteProviderListener* listener, Profile* profile); | 
|  | 30 | 
|  | 31   // When |minimal_changes| is true short circuit any additional searching and | 
|  | 32   // leave the previous matches for this provider unchanged, otherwise perform | 
|  | 33   // a complete search for |input| across all bookmark titles. | 
|  | 34   virtual void Start(const AutocompleteInput& input, | 
|  | 35                      bool minimal_changes) OVERRIDE; | 
|  | 36 | 
|  | 37   // Sets the BookmarkModel for unit tests. | 
|  | 38   void set_bookmark_model_for_testing(BookmarkModel* bookmark_model) { | 
|  | 39     bookmark_model_ = bookmark_model; | 
|  | 40   } | 
|  | 41 | 
|  | 42  private: | 
|  | 43   virtual ~BookmarkProvider(); | 
|  | 44 | 
|  | 45   // Performs the actual matching of |input| over the bookmarks and fills in | 
|  | 46   // |matches_|. If |best_match| then only suggest the single best match, | 
|  | 47   // otherwise suggest the top |kMaxMatches| matches. | 
|  | 48   void DoAutocomplete(const AutocompleteInput& input, bool best_match); | 
|  | 49 | 
|  | 50   // Calculates a relevance for |title_match|, converts it to an | 
|  | 51   // AutocompleteMatch and returns the converted match. | 
|  | 52   AutocompleteMatch TitleMatchToACMatch( | 
|  | 53       const bookmark_utils::TitleMatch& title_match); | 
|  | 54 | 
|  | 55   // Converts |positions| into ACMatchClassifications and returns the | 
|  | 56   // classifications. |text_length| is used to determine the need to add an | 
|  | 57   // 'unhighlighted' classification span so the tail of the source string | 
|  | 58   // properly highlighted. | 
|  | 59   static ACMatchClassifications ClassificationsFromMatch( | 
|  | 60       const Snippet::MatchPositions& positions, | 
|  | 61       size_t text_length); | 
|  | 62 | 
|  | 63   BookmarkModel* bookmark_model_; | 
|  | 64 | 
|  | 65   // Languages used during the URL formatting. | 
|  | 66   std::string languages_; | 
|  | 67 | 
|  | 68   DISALLOW_COPY_AND_ASSIGN(BookmarkProvider); | 
|  | 69 }; | 
|  | 70 | 
|  | 71 #endif  // CHROME_BROWSER_AUTOCOMPLETE_BOOKMARK_PROVIDER_H_ | 
| OLD | NEW | 
|---|