gecko-dev/netwerk/url-classifier/nsIChannelClassifierService...

60 строки
2.0 KiB
Plaintext

/* 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 "nsIContentPolicy.idl"
#include "nsISupports.idl"
interface nsIChannel;
interface nsIURI;
interface nsIObserver;
[scriptable, uuid(9b0353a7-ab46-4914-9178-2215ee221e4e)]
interface nsIUrlClassifierBlockedChannel: nsISupports
{
// blocked reason
const unsigned long TRACKING_PROTECTION = 0;
const unsigned long SOCIAL_TRACKING_PROTECTION = 1;
const unsigned long FINGERPRINTING_PROTECTION = 2;
const unsigned long CRYPTOMINING_PROTECTION = 3;
// Feature that blocks this channel.
readonly attribute uint8_t reason;
// Comma separated list of tables that find a match for the channel's url.
readonly attribute ACString tables;
readonly attribute AString url;
readonly attribute uint64_t tabId;
readonly attribute uint64_t channelId;
readonly attribute boolean isPrivateBrowsing;
readonly attribute AString topLevelUrl;
// Ask UrlClassifier to unblock the load.
// This is similar to allow(), the only difference is that the unblocked channel
// is still considered as a tracking channel, so classifier will notify UI
// content blocking event for the channel.
void unblock();
// Ask UrlClassifier to allow the load.
// This is similar to unblock(), the only difference is that the allowed channel
// is not considered as a tracking channel anymore. UI will not receive content
// blocking event for the channel.
void allow();
};
[scriptable, uuid(9411409c-5dac-40b9-ba36-2738a7237a4c)]
interface nsIChannelClassifierService : nsISupports
{
// when a channel is blocked, the observer should receive
// "urlclassifier-before-block-channel" callback an alternative way is to
// use a custom callback instead of using nsIObserver
void addListener(in nsIObserver aObserver);
void removeListener(in nsIObserver aObserver);
};