blob: 816bf6a7ee4409a0aa4c727f9711818927f0dc94 [file] [log] [blame]
// 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_