// 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 NTPTileSource; // 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, NTPTileSource tile_source); // Logs a navigation on one of the Most Visited tile on the InstantExtended // New Tab Page. LogMostVisitedNavigation(int32 page_seq_no, int32 position, NTPTileSource tile_source); // 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 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); };