blob: 45c9da14459ae37605360fd02687ab4b90fb7b83 [file] [log] [blame]
// Copyright 2016 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.
module chrome.mojom;
import "mojo/common/string16.mojom";
import "mojo/common/time.mojom";
import "url/mojo/url.mojom";
[Native]
enum NTPLoggingEventType;
[Native]
enum OmniboxFocusState;
[Native]
enum TileSource;
[Native]
enum TileVisualType;
// Interface used to connect to the embedded search interface. This is a
// separate interface such that a reverse connection (|client| below) can be
// passed when connecting.
interface EmbeddedSearchConnector {
// Connect to the interface. |instant| is the connection which the client will
// use to query the embedded search interface. |client| is the connection used
// by the embedded search interface implementation to push browser state
// updates to the client.
Connect(associated Instant& instant, associated SearchBox client);
};
// TODO(tibell): Rename this to EmbeddedSearch.
//
// Browser interface to support embedded search. Render frames connect to this
// interface to query browser data, such as the most visited pages.
interface Instant {
// Tells InstantExtended whether the embedded search API is supported.
// See http://dev.chromium.org/embeddedsearch
InstantSupportDetermined(int32 page_seq_no, bool result);
// Tells InstantExtended to set the omnibox focus state.
FocusOmnibox(int32 page_seq_no, OmniboxFocusState state);
// Tells InstantExtended to delete a most visited item.
DeleteMostVisitedItem(int32 page_seq_no, url.mojom.Url url);
// Tells InstantExtended to undo all most visited item deletions.
UndoAllMostVisitedDeletions(int32 page_seq_no);
// Tells InstantExtended to undo one most visited item deletion.
UndoMostVisitedDeletion(int32 page_seq_no, url.mojom.Url url);
// Logs events from InstantExtended New Tab Pages.
LogEvent(int32 page_seq_no,
NTPLoggingEventType event,
mojo.common.mojom.TimeDelta time);
// Logs an impression on one of the Most Visited tile on the InstantExtended
// New Tab Page.
LogMostVisitedImpression(int32 page_seq_no, int32 position,
TileSource tile_source,
TileVisualType tile_type);
// Logs a navigation on one of the Most Visited tile on the InstantExtended
// New Tab Page.
LogMostVisitedNavigation(int32 page_seq_no, int32 position,
TileSource tile_source,
TileVisualType tile_type);
// Tells InstantExtended to paste text into the omnibox. If text is empty,
// the clipboard contents will be pasted. This causes the omnibox dropdown to
// open.
PasteAndOpenDropdown(int32 page_seq_no,
mojo.common.mojom.String16 text_to_be_pasted);
// The Instant page asks whether the user syncs its history.
HistorySyncCheck(int32 page_seq_no);
// The Instant page asks for Chrome identity check against |identity|.
ChromeIdentityCheck(int32 page_seq_no, mojo.common.mojom.String16 identity);
};
[Native]
enum OmniboxFocusChangeReason;
[Native]
struct InstantMostVisitedItem;
[Native]
struct InstantSuggestion;
[Native]
struct EmbeddedSearchRequestParams;
[Native]
struct ThemeBackgroundInfo;
// TODO(tibell): Rename this to EmbeddedSearchClient.
//
// Renderer interface used by the browser to push updates to the client. For
// example, the browser will tell the frame if the omnibox got focus.
interface SearchBox {
SetPageSequenceNumber(int32 page_seq_no);
DetermineIfPageSupportsInstant();
FocusChanged(OmniboxFocusState new_focus_state,
OmniboxFocusChangeReason reason);
MostVisitedChanged(array<InstantMostVisitedItem> items);
SetInputInProgress(bool input_in_progress);
SetSuggestionToPrefetch(InstantSuggestion suggestion);
Submit(mojo.common.mojom.String16 value,
EmbeddedSearchRequestParams params);
ThemeChanged(ThemeBackgroundInfo value);
// TODO(treib): Remove the *Result methods and instead add return values to
// the correspnding methods in the Instant interface above.
HistorySyncCheckResult(bool sync_history);
ChromeIdentityCheckResult(mojo.common.mojom.String16 identity,
bool identity_match);
};