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 12class AutocompleteInput; 13class Profile; 14struct AutocompleteMatch; 15 16// This class is a base class for the history autocomplete providers and 17// provides functions useful to all derived classes. 18class 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