// Copyright 2020 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.

// Use the <code>chrome.search</code> API to search via the default provider.
namespace search {
  enum Disposition {
    // Display results in the calling tab or the tab from the active browser.
    CURRENT_TAB,

    // Display search results in a new tab.
    NEW_TAB,

    // Display search results in a new window.
    NEW_WINDOW
  };

  dictionary QueryInfo {
    // String to query with the default search provider.
    DOMString text;

    // Location where search results should be displayed.
    // <code>CURRENT_TAB</code> is the default.
    Disposition? disposition;

    // Location where search results should be displayed.
    // <code>tabId<code> cannot be used with <code>disposition</code>.
    long? tabId;
  };

  callback QueryCallback = void();

  interface Functions {
    // Used to query the default search provider.
    // In case of an error,
    // $(ref:runtime.lastError) will be set.
    [supportsPromises] static void query(QueryInfo queryInfo,
                                         optional QueryCallback callback);
  };
};