// 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 extension APIs implemented under src/extensions.
// See extensions/common/features/* to understand this file, in particular
// feature.h, simple_feature.h, and base_feature_provider.h.
//
// Note that specifying "web_page", "blessed_web_page", or "all" as a context
// type will require manually updating chrome/renderer/resources/dispatcher.cc.

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

{
  "app.runtime": [{
    "channel": "stable",
    "contexts": ["blessed_extension"],
    "extension_types": ["platform_app"],
    "noparent": true
  }, {
    "channel": "stable",
    "component_extensions_auto_granted": false,
    "contexts": ["blessed_extension"],
    "extension_types": ["extension"],
    "noparent": true,
    "whitelist": [
      "2FC374607C2DF285634B67C64A2E356C607091C3",  // Quickoffice
      "3727DD3E564B6055387425027AD74C58784ACC15",  // Quickoffice internal
      "12E618C3C6E97495AAECF2AC12DEB082353241C6"   // QO component extension
    ]
  }],
  "dns": {
    "dependencies": ["permission:dns"],
    "contexts": ["blessed_extension"]
  },
  "hid": {
    "dependencies": ["permission:hid"],
    "contexts": ["blessed_extension"]
  },
  "power": {
    "dependencies": ["permission:power"],
    "contexts": ["blessed_extension"]
  },
  "runtime": {
    "channel": "stable",
    "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
    "contexts": ["blessed_extension"]
  },
  "runtime.getManifest": {
    "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
  },
  "runtime.connect": {
    // Everything except WebUI.
    "contexts": [
      "blessed_web_page",
      "content_script",
      "blessed_extension",
      "unblessed_extension",
      "web_page"
    ],
    "matches": ["<all_urls>"]
  },
  "runtime.getURL": {
    "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
  },
  "runtime.id": {
    "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
  },
  "runtime.lastError": {
    "contexts": "all",
    "extension_types": "all",
    "matches": ["<all_urls>"]
  },
  "runtime.onConnect": {
    "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
  },
  "runtime.onMessage": {
    "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
  },
  "runtime.sendMessage": {
    // Everything except WebUI.
    "contexts": [
      "blessed_web_page",
      "content_script",
      "blessed_extension",
      "unblessed_extension",
      "web_page"
    ],
    "matches": ["<all_urls>"]
  },
  "runtime.setUninstallURL": {
    "channel": "dev"
  },
  "serial": {
    "dependencies": ["permission:serial"],
    "contexts": ["blessed_extension"]
  },
  "socket": {
    "dependencies": ["permission:socket"],
    "contexts": ["blessed_extension"]
  },
  "sockets.tcp": {
    "dependencies": ["manifest:sockets"],
    "contexts": ["blessed_extension"]
  },
  "sockets.tcpServer": {
    "dependencies": ["manifest:sockets"],
    "contexts": ["blessed_extension"]
  },
  "sockets.udp": {
    "dependencies": ["manifest:sockets"],
    "contexts": ["blessed_extension"]
  },
  "storage": {
    "dependencies": ["permission:storage"],
    "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
  },
  "test": [{
    "internal": true,
    "channel": "stable",
    "extension_types": "all",
    // Everything except web pages and WebUI. WebUI is declared in a separate
    // rule to keep the "matches" property isolated.
    "contexts": [
      "blessed_extension",
      "blessed_web_page",
      "content_script",
      "unblessed_extension"
    ]
  }, {
    "internal": true,
    "channel": "stable",
    "contexts": ["webui"],
    "matches": [
      "chrome://extensions-frame/*"
    ]
  }],
  "types": {
    "channel": "stable",
    "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
    "contexts": ["blessed_extension"]
  },
  "types.private": {
    "channel": "dev",
    "extension_types": ["extension"],
    "location": "component"
  },
  "usb": {
    "dependencies": ["permission:usb"],
    "contexts": ["blessed_extension"]
  },
  "usbPrivate": {
    "channel": "dev",
    "contexts": ["webui"]
  }
}
