15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved.
25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be
35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file.
45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// The structures here roughly mirror those from autocomplete.
65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liustruct AutocompleteAdditionalInfo {
85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string key;
95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string value;
105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu};
115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liustruct AutocompleteMatchMojo {
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  string? provider_name;
145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  // Only meaningful if |provider_name| is valid.
155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  bool provider_done;
165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  int32 relevance;
175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  bool deletable;
185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string fill_into_edit;
195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string inline_autocompletion;
205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string destination_url;
215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string contents;
225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string description;
235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  int32 transition;
245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  bool is_history_what_you_typed_match;
255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  bool allowed_to_be_default_match;
265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string type;
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  string? associated_keyword;
285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string keyword;
295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  bool starred;
305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  int32 duplicates;
315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  bool from_previous;
325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  AutocompleteAdditionalInfo[] additional_info;
335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu};
345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liustruct AutocompleteResultsForProviderMojo {
365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string provider_name;
375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  AutocompleteMatchMojo[] results;
385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu};
395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liustruct OmniboxResultMojo {
415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  bool done;
425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  // Time delta since the request was started, in milliseconds.
435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  int32 time_since_omnibox_started_ms;
445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  string host;
455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  bool is_typed_host;
465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  AutocompleteMatchMojo[] combined_results;
475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  AutocompleteResultsForProviderMojo[] results_by_provider;
485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu};
495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
500de6073388f4e2780db8536178b129cd8f6ab386Torne (Richard Coles)[Client=OmniboxPage]
515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuinterface OmniboxUIHandlerMojo {
525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  StartOmniboxQuery(string input_string,
535c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                    int32 cursor_position,
545c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                    bool prevent_inline_autocomplete,
555c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                    bool prefer_keyword,
565c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                    int32 page_classification);
575c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu};
585c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
595c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuinterface OmniboxPage {
605c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  HandleNewAutocompleteResult(OmniboxResultMojo result);
615c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu};
62