// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This features file defines manifest keys implemented under src/extensions.
// See chrome/common/extensions/api/_features.md to understand this file, as
// well as feature.h, simple_feature.h, and base_feature_provider.h.

{
  "app": {
    "channel": "stable",
    "extension_types": ["legacy_packaged_app", "hosted_app", "platform_app"]
  },
  // The default platform app CSP can only be overridden by whitelisted apps.
  // This is a separate key from the top-level content_security_policy one since
  // we can't combine type restrictions with whitelisted ID restrictions. If
  // there is a need for additional whitelisted entries, the feature system
  // should instead be extended to support OR-ing of restrictions.
  "app.content_security_policy": {
    "channel": "stable",
    "extension_types": ["platform_app"],
    "min_manifest_version": 2,
    "whitelist": [
      // Keep this list in sync with extensions_misc::kHangoutsExtensionIds but
      // omit the Packaged App ids.
      "nckgahadagoaajjgafhacjanaoiihapd",  // Hangouts Production.
      "ljclpkphhpbpinifbeabbhlfddcpfdde",  // Hangouts Debug.
      "ppleadejekpmccmnpjdimmlfljlkdfej",  // Hangouts Alpha.
      "eggnbpckecmjlblplehfpjjdhhidfdoj",  // Hangouts Beta.

      "lphgohfeebnhcpiohjndkgbhhkoapkjc" // Apps Debugger
    ]
  },
  "app.background": {
    "channel": "stable",
    "extension_types": ["platform_app"],
    "min_manifest_version": 2
  },
  "background": {
    "channel": "stable",
    "extension_types": [
      // Platform apps specify their background page via app.background.
      "extension", "legacy_packaged_app", "hosted_app"
    ]
  },
  "background.persistent": {
    "channel": "stable",
    "extension_types": [
      "extension", "legacy_packaged_app"
    ],
    "min_manifest_version": 2
  },
  "background_page": {
    "channel": "stable",
    "extension_types": [
      "extension", "legacy_packaged_app", "hosted_app"
    ],
    "max_manifest_version": 1
  },
  "bluetooth": [{
    // Note: The "bluetooth" manifest permission is used by the
    // chrome.bluetooth, chrome.bluetoothSocket and chrome.bluetoothLowEnergy
    // APIs.
    "channel": "stable",
    "extension_types": ["platform_app"],
    "platforms": ["chromeos", "win", "mac"]
  }, {
    "channel": "stable",
    "extension_types": ["platform_app"],
    "platforms": ["linux"],
    "whitelist": [
      "9E287A8257E58EFB13E89C86A4B75A3AC4B058D8",  // unit_tests browser_tests
      "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80",  // http://crbug.com/396117
      "A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE",  // http://crbug.com/396117
      "E703483CEF33DEC18B4B6DD84B5C776FB9182BDB",  // http://crbug.com/396117
      "307E96539209F95A1A8740C713E6998A73657D96",  // http://crbug.com/396117
      "4F25792AF1AA7483936DE29C07806F203C7170A0",  // http://crbug.com/407693
      "BD8781D757D830FC2E85470A1B6E8A718B7EE0D9",  // http://crbug.com/407693
      "4AC2B6C63C6480D150DFDA13E4A5956EB1D0DDBB",  // http://crbug.com/407693
      "81986D4F846CEDDDB962643FA501D1780DD441BB"   // http://crbug.com/407693
    ]
  }],
  "content_capabilities": [{
    "channel": "stable",
    "extension_types": ["extension"],
    "whitelist": [
      "950D13BB9B4794F4CA2A68D3597E5DFAA47C88AE",  // Drive
      "0EEB39B7A9A52CAAE6A072F83320435749B184A4",  // http://crbug.com/481210
      "D4AF239830E1E038C9B60DA365B1EC9CB3BC5658",  // http://crbug.com/481210
      "4895B1DBB92D52488F8D9FFDF9CC7B95C7258C9A",  // http://crbug.com/505532
      "A3880AA78DB0004DE841CC980959D8443F3A8E40",  // http://crbug.com/521615
      "C8B53B3C2CC39CB504B19D990165684FF0CE880C"   // http://crbug.com/521615
    ]
  }, {
    "channel": "beta",
    "extension_types": ["extension"],
    "whitelist": [
      "4895B1DBB92D52488F8D9FFDF9CC7B95C7258C9A",  // https://crbug.com/570337
      "A3880AA78DB0004DE841CC980959D8443F3A8E40",  // https://crbug.com/570337
      "C8B53B3C2CC39CB504B19D990165684FF0CE880C"   // https://crbug.com/570337
    ]
  }, {
    "channel": "dev",
    "extension_types": ["extension"],
    "whitelist": [
      "4895B1DBB92D52488F8D9FFDF9CC7B95C7258C9A",  // https://crbug.com/570337
      "A3880AA78DB0004DE841CC980959D8443F3A8E40",  // https://crbug.com/570337
      "C8B53B3C2CC39CB504B19D990165684FF0CE880C"   // https://crbug.com/570337
    ]
  }, {
    "channel": "canary",
    "extension_types": ["extension"]
  }],
  "content_security_policy": {
    "channel": "stable",
    // Platform apps have a restricted content security policy that cannot be
    // overriden (except for a whitelist of exceptions, see the
    // app.content_security_policy whitelist).
    "extension_types": ["extension", "legacy_packaged_app"]
  },
  "current_locale": {
    "channel": "stable",
    "extension_types": "all"
  },
  "default_locale": {
    "channel": "stable",
    "extension_types": "all"
  },
  "description": {
    "channel": "stable",
    "extension_types": "all"
  },
  "externally_connectable": {
    "channel": "stable",
    "extension_types": [
      "extension", "hosted_app", "legacy_packaged_app", "platform_app"
    ]
  },
  "file_handlers": [
    {
      "channel": "stable",
      "extension_types": ["platform_app"]
    }, {
      "channel": "stable",
      "extension_types": [ "extension"],
      "whitelist": [
        "2FC374607C2DF285634B67C64A2E356C607091C3",  // Quickoffice
        "3727DD3E564B6055387425027AD74C58784ACC15",  // Quickoffice internal
        "12E618C3C6E97495AAECF2AC12DEB082353241C6"   // QO component extension
      ]
    }
  ],
  "icons": {
    "channel": "stable",
    "extension_types": "all"
  },
  "incognito": [
    {
      "channel": "stable",
      "extension_types": ["extension", "legacy_packaged_app"]
    },
    {
      "channel": "stable",
      "extension_types": ["platform_app"],
      "location": "component"
    }
  ],
  "key": {
    "channel": "stable",
    "extension_types": "all"
  },
  "kiosk": {
    "channel": "stable",
    "extension_types": ["platform_app"]
  },
  "kiosk.required_platform_version": {
    "channel": "stable",
    "extension_types": ["platform_app"]
  },
  "kiosk_enabled": {
    "channel": "stable",
    "extension_types": [
      "platform_app"
    ]
  },
  "kiosk_only": {
    "channel": "stable",
    "extension_types": [
      "platform_app"
    ],
    "platforms": ["chromeos"]
  },
  "kiosk_secondary_apps": {
    "channel": "stable",
    "extension_types": [
      "platform_app"
    ]
  },
  "launcher_page": {
    "channel": "stable",
    "min_manifest_version": 2,
    "extension_types": ["platform_app"],
    "whitelist": [
      "07BD6A765FFC289FF755D7CAB2893A40EC337FEC",  // http://crbug.com/404000
      "896B85CC7E913E11C34892C1425A093C0701D386",  // http://crbug.com/404000
      "11A01C82EF355E674E4F9728A801F5C3CB40D83F",  // http://crbug.com/404000
      "F410C88469990EE7947450311D24B8AF2ADB2595"   // http://crbug.com/404000
    ]
  },
  "manifest_version": {
    "channel": "stable",
    "extension_types": "all"
  },
  "mime_types": {
    "channel": "stable",
    "extension_types": [ "extension", "legacy_packaged_app", "platform_app" ],
    "whitelist": [
      "oickdpebdnfbgkcaoklfcdhjniefkcji",  // browser_tests
      "gbkeegbaiigmenfmjfclcdgdpimamgkj",  // QuickOffice
      "ionpfmkccalenbmnddpbmocokhaknphg",  // QuickOffice Dev
      "bpmcpldpdmajfigpchkicefoigmkfalc",  // Quickoffice component extension
      "ehibbfinohgbchlgdbfpikodjaojhccn",  // Editor
      "mhjfbmdgcfjbbpaeojofohoefgiehjai"   // PDF
    ]
  },
  "mime_types_handler": {
    "channel": "stable",
    "extension_types": [ "extension", "legacy_packaged_app", "platform_app" ],
    "whitelist": [
      "oickdpebdnfbgkcaoklfcdhjniefkcji",  // browser_tests
      "mhjfbmdgcfjbbpaeojofohoefgiehjai"   // PDF
    ]
  },
  "nacl_modules": {
    "channel": "stable",
    "extension_types": [
      "extension", "legacy_packaged_app", "hosted_app", "platform_app"
    ]
  },
  "name": {
    "channel": "stable",
    "extension_types": "all"
  },
  "oauth2": {
    "channel": "stable",
    "extension_types": [
      "extension", "legacy_packaged_app", "platform_app"
    ]
  },
  "oauth2.auto_approve": {
    "channel": "stable",
    "extension_types": [
      "extension", "platform_app"
    ],
    "whitelist": [
      "mdbihdcgjmagbcapkhhkjbbdlkflmbfo",  // unit_tests
      "pafkbggdmjlpgkdkcbjmhmfcdpncadgh",  // Google Now
      "nmmhkkegccagdldgiimedpiccmgmieda",  // In-app payments support app.
      "4B1D0E19C6C43C008C44A8278C8B5BFE15ABEB3C",
      "F7FA7ABC1ECB89BA8EE6656847EFABBF43BB9BCA",

      "07BD6A765FFC289FF755D7CAB2893A40EC337FEC",  // http://crbug.com/430730
      "896B85CC7E913E11C34892C1425A093C0701D386",  // http://crbug.com/430730
      "11A01C82EF355E674E4F9728A801F5C3CB40D83F",  // http://crbug.com/430730
      "F410C88469990EE7947450311D24B8AF2ADB2595",  // http://crbug.com/430730

      // TODO(joaodasilva): remove these two once we have the new policy to
      // grant auto approval by ID. http://crbug.com/399392
      "A8208CCC87F8261AFAEB6B85D5E8D47372DDEA6B",
      "A4577D8C2AF4CF26F40CBCA83FFA4251D6F6C8F8",
      "EFCF5358672FEE04789FD2EC3638A67ADEDB6C8C"  // http://crbug.com/514696
    ]
  },
  "offline_enabled": {
    "channel": "stable",
    "extension_types": [
      "extension", "legacy_packaged_app", "hosted_app", "platform_app"
    ]
  },
  "options_ui": {
    "channel": "stable",
    "extension_types": ["extension", "legacy_packaged_app"]
  },
  "permissions": {
    "channel": "stable",
    "extension_types": [
      "extension", "legacy_packaged_app", "hosted_app", "platform_app"
    ]
  },
  "sandbox": {
    "channel": "stable",
    "extension_types": [
      "extension", "platform_app", "legacy_packaged_app"
    ],
    "min_manifest_version": 2
  },
  "sockets": {
    "channel": "stable",
    "extension_types": ["platform_app"]
  },
  "usb_printers": {
    "channel": "stable",
    "extension_types": ["platform_app"]
  },
  "version": {
    "channel": "stable",
    "extension_types": "all"
  },
  "version_name": {
    "channel": "stable",
    "extension_types": "all"
  },
  "web_accessible_resources": [
    {
      "channel": "stable",
      "extension_types": [
        "extension", "legacy_packaged_app", "hosted_app"
      ]
    },
    {
      "channel": "stable",
      "extension_types": ["platform_app"],
      "location": "component"
    }
  ],
  "webview": {
    "channel": "stable",
    "extension_types": ["platform_app"],
    "min_manifest_version": 2
  }
}
