# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.

Classes = [
    {
        'name': 'CookieBannerService',
        'cid': '{eac9cdc4-ecee-49f2-91da-7627e15c1f3c}',
        'interfaces': ['nsICookieBannerService'],
        'contract_ids': ['@mozilla.org/cookie-banner-service;1'],
        'type': 'mozilla::nsCookieBannerService',
        'headers': ['/toolkit/components/cookiebanners/nsCookieBannerService.h'],
        'singleton': True,
        'constructor': 'mozilla::nsCookieBannerService::GetSingleton',
        'js_name': 'cookieBanners',
        'categories': {
            'profile-after-change': 'nsCookieBannerService',
            'idle-daily': 'nsCookieBannerService',
        },
        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
    },
    {
        'cid': '{eb1904db-e0d1-4760-a721-db76b1ca3e94}',
        'interfaces': ['nsICookieBannerRule'],
        'headers': ['/toolkit/components/cookiebanners/nsCookieBannerRule.h'],
        'type': 'mozilla::nsCookieBannerRule',
        'contract_ids': ['@mozilla.org/cookie-banner-rule;1'],
        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
    },
    {
        'cid': '{1d8d9470-97d3-4885-a108-44a5c4fb36e2}',
        'contract_ids': ['@mozilla.org/cookie-banner-list-service;1'],
        'esModule': 'resource://gre/modules/CookieBannerListService.sys.mjs',
        'constructor': 'CookieBannerListService',
        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
    },
    {
        'cid': '{56197e18-d144-45b5-9f77-84102f064462}',
        'interfaces': ['nsICookieBannerTelemetryService'],
        'headers': ['/toolkit/components/cookiebanners/nsCookieBannerTelemetryService.h'],
        'contract_ids': ['@mozilla.org/cookie-banner-telemetry-service;1'],
        'type': 'mozilla::nsCookieBannerTelemetryService',
        'singleton': True,
        'constructor': 'mozilla::nsCookieBannerTelemetryService::GetSingleton',
        'categories': {
            'profile-after-change': 'nsCookieBannerTelemetryService',
        },
        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
    },
]
