summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/common/search.mojom
blob: 9aa9907640999e8fc0df7fba1f6932dc29532633 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
// 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);
};

// 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();
};

[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);
};