blob: 6727ab01c389fd4138e758798ce3e6e262994589 [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/public/mojom/base/string16.mojom";
import "mojo/public/mojom/base/time.mojom";
import "url/mojom/url.mojom";
[Native]
enum NTPLoggingEventType;
[Native]
enum NTPSuggestionsLoggingEventType;
[Native]
enum OmniboxFocusState;
[Native]
struct NTPTileImpression;
// 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. |embedded_search| 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 EmbeddedSearch & embedded_search,
associated EmbeddedSearchClient client);
};
// See components/omnibox/browser/autocomplete_match.h.
struct ACMatchClassification {
uint32 offset;
int32 style;
};
struct AutocompleteMatch {
bool allowed_to_be_default_match;
mojo_base.mojom.String16 contents;
array<ACMatchClassification> contents_class;
mojo_base.mojom.String16 description;
array<ACMatchClassification> description_class;
string destination_url;
mojo_base.mojom.String16 inline_autocompletion;
mojo_base.mojom.String16 fill_into_edit;
bool is_search_type; // Result of AutocompleteMatch::IsSearchType().
string type; // Result of AutocompleteMatchType::ToString().
bool swap_contents_and_description;
};
// Browser interface to support embedded search. Render frames connect to this
// interface to query browser data, such as the most visited pages.
// See http://dev.chromium.org/embeddedsearch
interface EmbeddedSearch {
// Tells InstantExtended to set the omnibox focus state.
FocusOmnibox(int32 page_seq_no, bool focus);
// 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);
// Tells InstantExtended to add a custom link. Returns true if successful.
AddCustomLink(int32 page_seq_no, url.mojom.Url url, string title)
=> (bool success);
// Tells InstantExtended to update a custom link. Returns true if successful.
UpdateCustomLink(int32 page_seq_no,
url.mojom.Url url,
url.mojom.Url new_url,
string new_title) => (bool success);
// Tells InstantExtended to reorder a custom link.
ReorderCustomLink(int32 page_seq_no, url.mojom.Url url, int32 new_pos);
// Tells InstantExtended to delete a custom link. Returns true if successful.
DeleteCustomLink(int32 page_seq_no, url.mojom.Url url) => (bool success);
// Tells InstantExtended to undo the previous custom link action (add, edit,
// delete, etc.).
UndoCustomLinkAction(int32 page_seq_no);
// Tells InstantExtended to delete all custom links and use most visited sites
// instead.
ResetCustomLinks(int32 page_seq_no);
// Tells InstantExtended to toggle between most visited items or custom links.
ToggleMostVisitedOrCustomLinks(int32 page_seq_no);
// Tells InstantExtended to toggle visibility of the shortcuts and notify
// observers if |do_notify|.
ToggleShortcutsVisibility(int32 page_seq_no, bool do_notify);
// Logs events from InstantExtended New Tab Pages.
LogEvent(int32 page_seq_no,
NTPLoggingEventType event,
mojo_base.mojom.TimeDelta time);
// Logs events related to search suggestions from InstantExtended New Tab
// Pages along with an integer value. These events currently include number
// of suggestion chips shown and the index of chips that were clicked.
LogSuggestionEventWithValue(int32 page_seq_no,
NTPSuggestionsLoggingEventType event,
int32 data,
mojo_base.mojom.TimeDelta time);
// Logs an impression on one of the Most Visited tile on the InstantExtended
// New Tab Page.
LogMostVisitedImpression(int32 page_seq_no, NTPTileImpression impression);
// Logs a navigation on one of the Most Visited tile on the InstantExtended
// New Tab Page.
LogMostVisitedNavigation(int32 page_seq_no, NTPTileImpression impression);
// 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_base.mojom.String16 text_to_be_pasted);
// Updates the NTP custom background preferences.
SetCustomBackgroundInfo(url.mojom.Url background_url,
string attribution_line_1,
string attribution_line_2,
url.mojom.Url action_url,
string collection_id);
// Let the user select a local file for the NTP background.
SelectLocalBackgroundImage();
// Add a search suggestion task id to the blocklist.
BlocklistSearchSuggestion(int32 task_version, int64 task_id);
// Add a search suggestion task id and hash to the blocklist.
BlocklistSearchSuggestionWithHash(int32 task_version, int64 task_id,
array<uint8, 4> hash);
// A search suggestion was selected, issue a new request with the suggestion
// temporarily added to the blocklist.
SearchSuggestionSelected(int32 task_version, int64 task_id,
array<uint8, 4> hash);
// Opts the user out of receiving search suggestions.
OptOutOfSearchSuggestions();
// Applies the default theme.
ApplyDefaultTheme();
// Applies autogenerated theme for the given color.
ApplyAutogeneratedTheme(uint32 color);
// Reverts applied theme changes.
RevertThemeChanges();
// Confirms applied theme changes.
ConfirmThemeChanges();
// Gets autocomplete matches from the browser.
QueryAutocomplete(string input) => (array<AutocompleteMatch> matches);
// Cancels the current autocomplete query. Clears the result set if
// |clear_result| is true.
StopAutocomplete(bool clear_result);
};
[Native]
enum OmniboxFocusChangeReason;
[Native]
struct InstantMostVisitedInfo;
[Native]
struct ThemeBackgroundInfo;
// 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 EmbeddedSearchClient {
// Update the page sequence number for the page.
SetPageSequenceNumber(int32 page_seq_no);
// Focus on the Omnibox has changed, the fakebox focus state may need to
// be updated.
FocusChanged(OmniboxFocusState new_focus_state,
OmniboxFocusChangeReason reason);
// The data for the NTP shortcuts has changed and shortcuts should be
// reloaded.
MostVisitedInfoChanged(InstantMostVisitedInfo most_visited_info);
// Input into the Omnibox has started/stopped.
SetInputInProgress(bool input_in_progress);
// The browser theme has changed, the NTP should be updated accordingly.
ThemeChanged(ThemeBackgroundInfo value);
// A background image was selected from the file upload dialog.
LocalBackgroundSelected();
};
// SearchBouncer tracks the NTP URL specified by the default search provider,
// which should be transferred back to the browser process for potential
// reassignment to an Instant renderer process.
interface SearchBouncer {
SetNewTabPageURL(url.mojom.Url new_tab_page_url);
};