# -*- 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 = [
    '/widget/android/nsWidgetFactory.h',
]

InitFunc = 'nsWidgetAndroidModuleCtor'
UnloadFunc = 'nsWidgetAndroidModuleDtor'

Classes = [
    {
        'cid': '{2d96b3df-c051-11d1-a827-0040959a28c9}',
        'contract_ids': ['@mozilla.org/widget/appshell/android;1'],
        'legacy_constructor': 'nsAppShellConstructor',
        'headers': ['/widget/android/nsWidgetFactory.h'],
        'processes': ProcessSelector.ALLOW_IN_GPU_RDD_VR_SOCKET_UTILITY_AND_GMPLUGIN_PROCESS,
    },
    {
        'cid': '{d594094c-28b6-466b-97d7-66c039c3dea9}',
        'contract_ids': ['@mozilla.org/gfx/parent/screenmanager;1'],
        'singleton': True,
        'type': 'mozilla::widget::ScreenManager',
        'headers': ['mozilla/widget/ScreenManager.h'],
        'constructor': 'mozilla::widget::ScreenManager::GetAddRefedSingleton',
        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
    },
    {
        'cid': '{6987230e-0098-4e78-bc5f-1493ee7519fa}',
        'contract_ids': ['@mozilla.org/widget/useridleservice;1'],
        'singleton': True,
        'type': 'nsUserIdleServiceAndroid',
        'headers': ['/widget/android/nsUserIdleServiceAndroid.h'],
        'constructor': 'nsUserIdleServiceAndroid::GetInstance',
    },
    {
        'cid': '{8b5314bc-db01-11d2-96ce-0060b0fb9956}',
        'contract_ids': ['@mozilla.org/widget/transferable;1'],
        'type': 'nsTransferable',
        'headers': ['/widget/nsTransferable.h'],
    },
    {
        'cid': '{9d5adbb9-1da4-4162-acba-b373fe3ae837}',
        'contract_ids': ['@mozilla.org/widget/parent/clipboard;1'],
        'interfaces': ['nsIClipboard'],
        'type': 'nsClipboard',
        'headers': ['/widget/android/nsClipboard.h'],
        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
    },
    {
        'cid': '{77221d5a-1dd2-11b2-8c69-c710f15d2ed5}',
        'contract_ids': ['@mozilla.org/widget/clipboardhelper;1'],
        'type': 'nsClipboardHelper',
        'headers': ['/widget/nsClipboardHelper.h'],
    },
    {
        'cid': '{841387c8-72e6-484b-9296-bf6eea80d58a}',
        'contract_ids': ['@mozilla.org/gfx/printsettings-service;1'],
        'type': 'nsPrintSettingsServiceAndroid',
        'headers': ['/widget/android/nsPrintSettingsServiceAndroid.h'],
        'init_method': 'Init',
    },
    {
        'cid': '{d3f69889-e13a-4321-980c-a39332e21f34}',
        'contract_ids': ['@mozilla.org/gfx/devicecontextspec;1'],
        'type': 'nsDeviceContextSpecAndroid',
        'headers': ['/widget/android/nsDeviceContextAndroid.h'],
    },
    {
        'cid': '{948a0023-e3a7-11d2-96cf-0060b0fb9956}',
        'contract_ids': ['@mozilla.org/widget/htmlformatconverter;1'],
        'type': 'nsHTMLFormatConverter',
        'headers': ['/widget/nsHTMLFormatConverter.h'],
    },
    {
        'name': 'GfxInfo',
        'cid': '{d755a760-9f27-11df-0800-200c9a664242}',
        'contract_ids': ['@mozilla.org/gfx/info;1'],
        'type': 'mozilla::widget::GfxInfo',
        'headers': ['/widget/android/GfxInfo.h'],
        'init_method': 'Init',
    },
    {
        'js_name': 'androidBridge',
        'cid': '{0fe2321d-ebd9-467d-a743-03a68d40599e}',
        'contract_ids': ['@mozilla.org/android/bridge;1'],
        'interfaces': ['nsIGeckoViewBridge'],
        'type': 'nsAndroidBridge',
        'headers': ['/widget/android/AndroidBridge.h'],
    },
    {
        'cid': '{84e11f80-ca55-11dd-ad8b-0800200c9a66}',
        'contract_ids': ['@mozilla.org/system-alerts-service;1'],
        'type': 'mozilla::widget::AndroidAlerts',
        'headers': ['/widget/android/AndroidAlerts.h'],
    },
    {
        'cid': '{b1abaf0e-52b2-4e65-aee1-299ea9a74230}',
        'contract_ids': ['@mozilla.org/widget/parent/dragservice;1'],
        'singleton': True,
        'type': 'nsDragService',
        'headers': ['/widget/android/nsDragService.h'],
        'constructor': 'nsDragService::GetInstance',
        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
    },
]
