Bug 1578501 [wpt PR 18803] - WebKit export of https://bugs.webkit.org/show_bug.cgi...
[gecko.git] / xpcom / system / nsIBlocklistService.idl
blob42e3799c7c05fae55986506709302d6e7d76743c
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
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/. */
7 #include "nsISupports.idl"
9 interface nsIPluginTag;
10 interface nsIVariant;
12 [scriptable, uuid(a6dcc76e-9f62-4cc1-a470-b483a1a6f096)]
13 interface nsIBlocklistService : nsISupports
15 // Indicates that the item does not appear in the blocklist.
16 const unsigned long STATE_NOT_BLOCKED = 0;
17 // Indicates that the item is in the blocklist but the problem is not severe
18 // enough to warant forcibly blocking.
19 const unsigned long STATE_SOFTBLOCKED = 1;
20 // Indicates that the item should be blocked and never used.
21 const unsigned long STATE_BLOCKED = 2;
22 // Indicates that the item is considered outdated, and there is a known
23 // update available.
24 const unsigned long STATE_OUTDATED = 3;
25 // Indicates that the item is vulnerable and there is an update.
26 const unsigned long STATE_VULNERABLE_UPDATE_AVAILABLE = 4;
27 // Indicates that the item is vulnerable and there is no update.
28 const unsigned long STATE_VULNERABLE_NO_UPDATE = 5;
30 // Unused; Please increment if we add more blocklist states.
31 const unsigned long STATE_MAX = 6;
33 /**
34 * Determine the blocklist state of a plugin
35 * @param plugin
36 * The plugin to get the state for
37 * @param appVersion
38 * The version of the application we are checking in the blocklist.
39 * If this parameter is null, the version of the running application
40 * is used.
41 * @param toolkitVersion
42 * The version of the toolkit we are checking in the blocklist.
43 * If this parameter is null, the version of the running toolkit
44 * is used.
45 * @returns Promise that resolves to the STATE constant.
47 Promise getPluginBlocklistState(in nsIPluginTag plugin,
48 [optional] in AString appVersion,
49 [optional] in AString toolkitVersion);
51 readonly attribute boolean isLoaded;