/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface nsIStreamListener;

/**
 * A service that serves Safe Browsing list data (V2 protocol) via
 * Remote Settings.
 */
[scriptable, uuid(26a445a4-0d00-4b20-ba5f-1297d3344a25)]
interface nsIUrlClassifierRemoteSettingsService : nsISupports
{
  /**
   * Fetch the Safe Browsing list data from the service. The service
   * returns the response data by simulating how the data is sent over a
   * stream listener when a HTTP request is made.
   *
   *
   * @param aPayload the request payload for list data request
   * @param aListener An nsIStreamListener object
   */
  void fetchList(in ACString aPayload, in nsIStreamListener aListener);

  /**
   *  Clear all data in the service.
   *  This API is for testing only.
   */
  void clear();
};
