// 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 extensions/common/features/* to understand this file, in particular
// feature.h, simple_feature.h, and base_feature_provider.h.

// To add a new whitelisted ID, SHA-1 it and force it to uppercase. In Bash:
//
// $ echo -n "aaaabbbbccccddddeeeeffffgggghhhh" | \
// sha1sum | tr '[:lower:]' '[:upper:]'
// 9A0417016F345C934A1A88F55CA17C05014EEEBA  -
//
// Google employees: please update http://go/chrome-api-whitelist to map
// hashes back to ids.

{
  // 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": [
      "nckgahadagoaajjgafhacjanaoiihapd",  // Google Talk prod
      "eggnbpckecmjlblplehfpjjdhhidfdoj",  // Google Talk beta
      "ppleadejekpmccmnpjdimmlfljlkdfej",  // Google Talk alpha
      "ljclpkphhpbpinifbeabbhlfddcpfdde",   // Google Talk debug
      "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
  },
  "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"]
  },
  "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"
    }
  ],
  "kiosk_enabled": {
    "channel": "stable",
    "extension_types": [
      "platform_app"
    ]
  },
  "kiosk_only": {
    "channel": "dev",
    "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
    ]
  },
  "manifest_version": {
    "channel": "stable",
    "extension_types": "all"
  },
  "nacl_modules": {
    "channel": "stable",
    "extension_types": [
      "extension", "legacy_packaged_app", "hosted_app", "platform_app"
    ]
  },
  "name": {
    "channel": "stable",
    "extension_types": "all"
  },
  "offline_enabled": {
    "channel": "stable",
    "extension_types": [
      "extension", "legacy_packaged_app", "hosted_app", "platform_app"
    ]
  },
  "options_ui": {
    "channel": "trunk",
    "extension_types": ["extension", "legacy_packaged_app"]
  },
  "sandbox": {
    "channel": "stable",
    "extension_types": [
      "extension", "platform_app", "legacy_packaged_app"
    ],
    "min_manifest_version": 2
  },
  "sockets": {
    "channel": "stable",
    "extension_types": ["platform_app"]
  },
  "version": {
    "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
  }
}