# -*- 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/.

Headers = [
    '/image/build/nsImageModule.h',
]

InitFunc = 'mozilla::image::EnsureModuleInitialized'
# This is called by LayoutModuleDtor to ensure it happens at the right time
# during shutdown.
# UnloadFunc = 'mozilla::image::ShutdownModule'

Classes = [
    # XXX We would like to get rid of the imgLoader factory constructor.  See the
    # comment documenting the imgLoader constructor.
    {
        'cid': '{c1354898-e3fe-4602-88a7-c4520c21cb4e}',
        'contract_ids': [
            '@mozilla.org/image/cache;1',
            '@mozilla.org/image/loader;1',
        ],
        'type': 'imgLoader',
        'headers': ['imgLoader.h'],
        'init_method': 'Init',
        'categories': {
            'content-sniffing-services': '@mozilla.org/image/loader;1',
            'orb-content-sniffers': '@mozilla.org/image/loader;1',
            'net-and-orb-content-sniffers': '@mozilla.org/image/loader;1',
        },
    },
    {
        'cid': '{f6fcd651-164b-4416-b001-9c8c393fd93b}',
        'contract_ids': [
            '@mozilla.org/image-blocker-content-policy;1',
        ],
        'type': 'mozilla::image::ImageBlocker',
        'headers': ['ImageBlocker.h'],
        'categories': {'content-policy': '@mozilla.org/image-blocker-content-policy;1'},
    },
    {
        'cid': '{20557898-1dd2-11b2-8f65-9c462ee2bc95}',
        'contract_ids': ['@mozilla.org/image/request;1'],
        'type': 'imgRequestProxy',
        'headers': ['imgRequestProxy.h'],
    },
    {
        'cid': '{3d8fa16d-c9e1-4b50-bdef-2c7ae249967a}',
        'contract_ids': ['@mozilla.org/image/tools;1'],
        'type': 'mozilla::image::imgTools',
        'headers': ['/image/imgTools.h'],
    },
    {
        'cid': '{13a5320c-4c91-4fa4-bd16-b081a3ba8c0b}',
        'contract_ids': ['@mozilla.org/image/encoder;2?type=image/bmp'],
        'type': 'nsBMPEncoder',
        'headers': ['/image/encoders/bmp/nsBMPEncoder.h'],
    },
    {
        'cid': '{92ae3ab2-8968-41b1-8709-b6123bceaf21}',
        'contract_ids': ['@mozilla.org/image/encoder;2?type=image/vnd.microsoft.icon'],
        'type': 'nsICOEncoder',
        'headers': ['/image/encoders/ico/nsICOEncoder.h'],
    },
    {
        'cid': '{ac2bb8fe-eeeb-4572-b40f-be03932b56e0}',
        'contract_ids': ['@mozilla.org/image/encoder;2?type=image/jpeg'],
        'type': 'nsJPEGEncoder',
        'headers': ['/image/encoders/jpeg/nsJPEGEncoder.h'],
    },
    {
        'cid': '{38d1592e-b81e-432b-86f8-471878bbfe07}',
        'contract_ids': ['@mozilla.org/image/encoder;2?type=image/png'],
        'type': 'nsPNGEncoder',
        'headers': ['/image/encoders/png/nsPNGEncoder.h'],
    },
    {
        'cid': '{a8e5a8e5-bebf-4512-9f50-e41e4748ce28}',
        'contract_ids': ['@mozilla.org/image/encoder;2?type=image/webp'],
        'type': 'nsWebPEncoder',
        'headers': ['/image/encoders/webp/nsWebPEncoder.h'],
    },
]
