caps/DomainPolicy.h
author Armen Zambrano Gasparnian <armenzg@mozilla.com>
Wed, 27 Jul 2016 10:51:38 -0400
changeset 307562 9f5fbb3066c91cdab754c2222299016ba6f2af21
parent 268184 e8c7dfe727cd970e2c3294934e2927b14143c205
child 443784 f3a78d65b0590610e4f863db4dce834303fc8b94
permissions -rw-r--r--
Bug 1288742 - Increase expiration date of all gecko decision artifacts bar image context tar balls. r=dustin Until now Gecko decision task artifacts would expire after a week. Unfortunately, some of these artifacts are needed in order for Treeherder to determine which tasks it can schedule on a given push. In this change, we're changing the expiration of all artifacts except those that are related to docker image optimizations, which, are very large files and we only want to keep for a week. MozReview-Commit-ID: 96ahyWmoI7W

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* vim: set ts=8 sts=4 et sw=4 tw=80: */
/* 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/. */

#ifndef DomainPolicy_h__
#define DomainPolicy_h__

#include "nsIDomainPolicy.h"
#include "nsTHashtable.h"
#include "nsURIHashKey.h"

namespace mozilla {

namespace ipc {
class URIParams;
} // namespace ipc

enum DomainSetChangeType{
    ACTIVATE_POLICY,
    DEACTIVATE_POLICY,
    ADD_DOMAIN,
    REMOVE_DOMAIN,
    CLEAR_DOMAINS
};

enum DomainSetType{
    NO_TYPE,
    BLACKLIST,
    SUPER_BLACKLIST,
    WHITELIST,
    SUPER_WHITELIST
};

class DomainSet final : public nsIDomainSet
{
public:
    NS_DECL_ISUPPORTS
    NS_DECL_NSIDOMAINSET

    explicit DomainSet(DomainSetType aType)
        : mType(aType)
    {}

    void CloneSet(InfallibleTArray<mozilla::ipc::URIParams>* aDomains);

protected:
    virtual ~DomainSet() {}
    nsTHashtable<nsURIHashKey> mHashTable;
    DomainSetType mType;
};

class DomainPolicy final : public nsIDomainPolicy
{
public:
    NS_DECL_ISUPPORTS
    NS_DECL_NSIDOMAINPOLICY
    DomainPolicy();

private:
    virtual ~DomainPolicy();

    RefPtr<DomainSet> mBlacklist;
    RefPtr<DomainSet> mSuperBlacklist;
    RefPtr<DomainSet> mWhitelist;
    RefPtr<DomainSet> mSuperWhitelist;
};

} /* namespace mozilla */

#endif /* DomainPolicy_h__ */