caps/nsIDomainPolicy.idl
author Belén Albeza <balbeza@mozilla.com>
Thu, 11 Oct 2018 12:01:59 +0000
changeset 499689 744747bb295cbb4a02dbf9960e5f7676822834c6
parent 390077 5a43dbcb95cab9ff9728383f05780faa72e1ad5e
child 503000 f3a78d65b0590610e4f863db4dce834303fc8b94
permissions -rw-r--r--
Bug 1494543 - Part 2: Add model + short runtime name to the sidebar item. r=jdescottes,daisuke Added new getters to the ADB scanner so our runtime objects have now the information we need. Note that the UX of the devices in this patch doesn't still match what we had in the mockups (icons don't match, and we also need a circle with a tick), but since we have another bug to handle the CSS in the Sidebar, we can always adapt it there. The information needed to display what is shown in the mockups should be passed in this patch –if I miss anything, give me a shout! Differential Revision: https://phabricator.services.mozilla.com/D7705

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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 nsIURI;
interface nsIDomainSet;

%{ C++
namespace mozilla {
namespace dom {
class DomainPolicyClone;
}
}
%}

[ptr] native DomainPolicyClonePtr(mozilla::dom::DomainPolicyClone);
[ptr] native DomainPolicyCloneConstPtr(const mozilla::dom::DomainPolicyClone);

/*
 * When a domain policy is instantiated by invoking activateDomainPolicy() on
 * nsIScriptSecurityManager, these domain sets are consulted when each new
 * global is created (they have no effect on already-created globals).
 * If javascript is globally enabled with |javascript.enabled|, the blacklists
 * are consulted. If globally disabled, the whitelists are consulted. Lookups
 * on blacklist and whitelist happen with contains(), and lookups on
 * superBlacklist and superWhitelist happen with containsSuperDomain().
 *
 * When deactivate() is invoked, the domain sets are emptied, and the
 * nsIDomainPolicy ceases to have any effect on the system.
 */
[scriptable, builtinclass, uuid(82b24a20-6701-4d40-a0f9-f5dc7321b555)]
interface nsIDomainPolicy : nsISupports
{
    readonly attribute nsIDomainSet blacklist;
    readonly attribute nsIDomainSet superBlacklist;
    readonly attribute nsIDomainSet whitelist;
    readonly attribute nsIDomainSet superWhitelist;

    void deactivate();

    [noscript, notxpcom] void cloneDomainPolicy(in DomainPolicyClonePtr aClone);
    [noscript, notxpcom] void applyClone(in DomainPolicyCloneConstPtr aClone);
};

[scriptable, builtinclass, uuid(665c981b-0a0f-4229-ac06-a826e02d4f69)]
interface nsIDomainSet : nsISupports
{
    /*
     * The type of the set. See: DomainSetType
     */
    [noscript] readonly attribute uint32_t type;

    /*
     * Add a domain to the set. No-op if it already exists.
     */
    void add(in nsIURI aDomain);

    /*
     * Remove a domain from the set. No-op if it doesn't exist.
     */
    void remove(in nsIURI aDomain);

    /*
     * Remove all entries from the set.
     */
    void clear();

    /*
     * Returns true if a given domain is in the set.
     */
    bool contains(in nsIURI aDomain);

    /*
     * Returns true if a given domain is a subdomain of one of the entries in
     * the set.
     */
    bool containsSuperDomain(in nsIURI aDomain);
};