Source code
Revision control
Copy as Markdown
Other Tools
/* 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
#include "nsISupports.idl"
#include "nsIFingerprintingWebCompatService.idl"
interface nsIPrincipal;
interface nsIChannel;
/**
* The singleton serivce which handles fingerprinting protection stuffs.
*/
[scriptable, builtinclass, uuid(20093b2e-d5d5-4ce0-8355-96b8d2dc7ff5)]
interface nsIRFPService : nsISupports
{
/**
* Set the fingerprinting overrides.
*
* @param aOverrides
* An array of fingerprinting overrides.
*/
void setFingerprintingOverrides(in Array<nsIFingerprintingOverride> aOverrides);
/**
* Get the fingerprinting overrides of the given scope. This is for testing
* purpose.
*
* @param aScope
* The scope of the fingerprinting override.
* @return The RFPTarget flags for the fingerprinting overrides of the given
* scope. 0 if the overridden scope doesn't exist.
*
*/
uint64_t getFingerprintingOverrides(in ACString aDomainKey);
/**
* Clean all overrides. This is for testing purpose.
*/
void cleanAllOverrides();
/**
* The bitfield of the default enabled RFP Targets.
*/
readonly attribute uint64_t enabledFingerprintingProtections;
/**
* Clean all fingerprinting randomization keys.
*/
void cleanAllRandomKeys();
/**
* Clean the fingerprinting randomization key by the given principal.
*/
void cleanRandomKeyByPrincipal(in nsIPrincipal aPrincipal);
/**
* Clean the fingerprinting randomization key by the given domain.
*/
[implicit_jscontext]
void cleanRandomKeyBySite(in ACString aSchemelessSite, in jsval originAttributes);
/**
* Clean the fingerprinting randomization key by the given host and
* OriginAttributesPattern.
*/
void cleanRandomKeyByHost(in ACString aHost,
in AString aPattern);
/**
* Clean the fingerprinting randomization key by the given
* OriginAttributesPattern.
*/
void cleanRandomKeyByOriginAttributesPattern(in AString aPattern);
/**
* Test function for generating and return the fingerprinting randomization
* key for the given channel.
*/
Array<uint8_t> testGenerateRandomKey(in nsIChannel aChannel);
};