// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // KeywordExtensionsDelegate contains the extensions-only logic used by // KeywordProvider. // This file contains the dummy implementation of KeywordExtensionsDelegate, // which does nothing. #ifndef COMPONENTS_OMNIBOX_KEYWORD_EXTENSIONS_DELEGATE_H_ #define COMPONENTS_OMNIBOX_KEYWORD_EXTENSIONS_DELEGATE_H_ #include <string> #include "base/basictypes.h" #include "base/macros.h" #include "base/strings/string16.h" class AutocompleteInput; class KeywordProvider; class TemplateURL; class KeywordExtensionsDelegate { public: explicit KeywordExtensionsDelegate(KeywordProvider* provider); virtual ~KeywordExtensionsDelegate(); // Increments the input ID used to identify if the suggest results from an // extension are current. virtual void IncrementInputId(); // Returns true if an extension is enabled. virtual bool IsEnabledExtension(const std::string& extension_id); // Handles the extensions portion of KeywordProvider::Start(). // Depending on |minimal_changes| and whether |input| wants matches // synchronous or not, either updates the KeywordProvider's matches with // the existing suggestions or asks the |template_url|'s extension to provide // matches. // Returns true if this delegate should stay in extension keyword mode. virtual bool Start(const AutocompleteInput& input, bool minimal_changes, const TemplateURL* template_url, const base::string16& remaining_input); // Tells the extension with |extension_id| that the user typed the omnibox // keyword. virtual void EnterExtensionKeywordMode(const std::string& extension_id); // If an extension previously entered extension keyword mode, exits extension // keyword mode. This happens when the user has cleared the keyword or closed // the omnibox popup. virtual void MaybeEndExtensionKeywordMode(); private: DISALLOW_COPY_AND_ASSIGN(KeywordExtensionsDelegate); }; #endif // COMPONENTS_OMNIBOX_KEYWORD_EXTENSIONS_DELEGATE_H_