1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6#include "nsISupports.idl"
7#include "nsIUrlListManager.idl"
8
9// A map that contains a string keys mapped to string values.
10
11[scriptable, uuid(fd1f8334-1859-472d-b01f-4ac6b1121ce4)]
12interface nsIUrlClassifierTable : nsISupports
13{
14    /**
15     * The name used to identify this table
16     */
17    attribute ACString name;
18
19    /**
20     * Set to false if we don't want to update this table.
21     */
22    attribute boolean needsUpdate;
23
24    /**
25     * In the simple case, exists just looks up the string in the
26     * table and call the callback after the query returns with true or
27     * false.  It's possible that something more complex happens
28     * (e.g., canonicalize the url).
29     */
30    void exists(in ACString key, in nsIUrlListManagerCallback cb);
31};
32