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_HISTORY_PROVIDER_H_ 6 #define CHROME_BROWSER_AUTOCOMPLETE_HISTORY_PROVIDER_H_ 7 8 #include "base/compiler_specific.h" 9 #include "chrome/browser/history/in_memory_url_index_types.h" 10 #include "components/omnibox/autocomplete_provider.h" 11 12 class AutocompleteInput; 13 class Profile; 14 struct AutocompleteMatch; 15 16 // This class is a base class for the history autocomplete providers and 17 // provides functions useful to all derived classes. 18 class HistoryProvider : public AutocompleteProvider { 19 public: 20 virtual void DeleteMatch(const AutocompleteMatch& match) OVERRIDE; 21 22 // Returns true if inline autocompletion should be prevented for URL-like 23 // input. This method returns true if input.prevent_inline_autocomplete() 24 // is true or the input text contains trailing whitespace. 25 static bool PreventInlineAutocomplete(const AutocompleteInput& input); 26 27 protected: 28 HistoryProvider(Profile* profile, AutocompleteProvider::Type type); 29 virtual ~HistoryProvider(); 30 31 // Finds and removes the match from the current collection of matches and 32 // backing data. 33 void DeleteMatchFromMatches(const AutocompleteMatch& match); 34 35 // Fill and return an ACMatchClassifications structure given the |matches| 36 // to highlight. 37 static ACMatchClassifications SpansFromTermMatch( 38 const history::TermMatches& matches, 39 size_t text_length, 40 bool is_url); 41 42 Profile* profile_; 43 }; 44 45 #endif // CHROME_BROWSER_AUTOCOMPLETE_HISTORY_PROVIDER_H_ 46