// Copyright 2013 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. #ifndef CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_CURRENT_PAGE_DELEGATE_H_ #define CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_CURRENT_PAGE_DELEGATE_H_ #include "base/basictypes.h" #include "chrome/common/instant_types.h" #include "chrome/common/omnibox_focus_state.h" #include "ui/base/window_open_disposition.h" class GURL; class SessionID; class TemplateURL; struct AutocompleteMatch; namespace content { class NavigationController; } // A class that abstracts omnibox functionality that depends on the current // tab/page (e.g., getting information about the current page, retrieving // objects associated with the current tab, or performing operations that rely // on such objects under the hood). class OmniboxCurrentPageDelegate { public: virtual ~OmniboxCurrentPageDelegate() {} // Returns whether there is any associated current page. For example, during // startup or shutdown, the omnibox may exist but have no attached page. virtual bool CurrentPageExists() const = 0; // Returns the URL of the current page. virtual const GURL& GetURL() const = 0; // Returns true if the visible entry is a New Tab Page rendered by Instant. virtual bool IsInstantNTP() const = 0; // Returns true if the committed entry is a search results page. virtual bool IsSearchResultsPage() const = 0; // Returns whether the current page is loading. virtual bool IsLoading() const = 0; // Returns the NavigationController for the current page. virtual content::NavigationController& GetNavigationController() const = 0; // Returns the session ID of the current page. virtual const SessionID& GetSessionID() const = 0; // Checks whether |template_url| is an extension keyword; if so, asks the // ExtensionOmniboxEventRouter to process |match| for it and returns true. // Otherwise returns false. virtual bool ProcessExtensionKeyword(TemplateURL* template_url, const AutocompleteMatch& match, WindowOpenDisposition disposition) = 0; // Called to notify clients that the omnibox input state has changed. virtual void OnInputStateChanged() = 0; // Called to notify clients that the omnibox focus state has changed. virtual void OnFocusChanged(OmniboxFocusState state, OmniboxFocusChangeReason reason) = 0; // Performs prerendering for |match|. virtual void DoPrerender(const AutocompleteMatch& match) = 0; // Sends the current SearchProvider suggestion to the Instant page if any. virtual void SetSuggestionToPrefetch(const InstantSuggestion& suggestion) = 0; }; #endif // CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_CURRENT_PAGE_DELEGATE_H_