# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
  "ignored_extension_names": [
    "Bookmark Manager",
    "Chrome Web Store",
    "GaiaTestAuthExtension"
  ],
  "ignored_crx_files": [
  ],
  "bundled_crx_directory": "/opt/google/chrome/extensions",
  "bundled_crx_baseline": [
      { "crx_file": "apdfllckaahabafndbhieahigkjlhalf.crx",
        "name": "Google Drive",
        "effective_host_permissions": [],
        "api_permissions": ["background",
                            "clipboardRead",
                            "clipboardWrite",
                            "notifications",
                            "unlimitedStorage"]
      },
      { "crx_file": "blpcfgokakmgnkcojhhkbfbldkacnbeo.crx",
        "name": "YouTube",
        "effective_host_permissions": [],
        "api_permissions": ["appNotifications"]
      },
      { "crx_file": "ejjicmeblgpmajnghnpcppodonldlgfn.crx",
        "name": "Google Calendar",
        "effective_host_permissions": [],
        "api_permissions": ["notifications",
                            "unlimitedStorage"]
      },
      { "crx_file": "fobcpibfeplaikcclojfdhfdmbbeofai.crx",
        "name": "Games",
        "effective_host_permissions": [],
        "api_permissions": []
      },
      { "crx_file": "gbchcmhmhahfdphkhkmpfmihenigjmpp.crx",
        "name": "Chrome Remote Desktop BETA",
        "effective_host_permissions": ["https://accounts.google.com/*",
                                       "https://relay.google.com/*",
                                       "https://*.talkgadget.google.com/*",
"https://chromoting-oauth.talkgadget.google.com/talkgadget/oauth/chrome-remote-desktop/rel/*",
                                       "https://www.googleapis.com/*"],
        "api_permissions": ["clipboardRead", "clipboardWrite"]
      },
      { "crx_file": "icppfcnhkcmnfdhfhphakoifcfokfdhg.crx",
        "name": "Google Play Music",
        "effective_host_permissions": [],
        "api_permissions": []
      },
      { "crx_file": "kjebfhglflhjjjiceimfkgicifkhjlnm.crx",
        "name": "Scratchpad",
        "effective_host_permissions": ["https://docs.google.com/*",
                                       "https://www.google.com/*"],
        "api_permissions": ["contextMenus",
                            "management",
                            "notifications",
                            "tabs"]
      },
      { "crx_file": "pjkljhegncpnkpknbcohdijeoejaedia.crx",
        "name": "Gmail",
        "effective_host_permissions": [],
        "api_permissions": ["notifications"]
      },
      { "crx_file": "lneaknkopdijkpnocmklfnjbeapigfbh.crx",
        "name": "Google Maps",
        "effective_host_permissions": [],
        "api_permissions": []
      },
      { "crx_file": "dlppkpafhbajpcmmoheippocdidnckmm.crx",
        "name": "Google+",
        "effective_host_permissions": [],
        "api_permissions": []
      },
      { "crx_file": "gbkeegbaiigmenfmjfclcdgdpimamgkj.crx",
        "name": "Quickoffice Viewer",
        "effective_host_permissions": [],
        "api_permissions": ["experimental",
                            "fileBrowserHandler",
                            "fileBrowserHandlerInternal",
                            "unlimitedStorage"
                           ]
      },
      { "crx_file": "coobgpohoikkiipiblmjeljniedjpjpf.crx",
        "name": "Google Search",
        "effective_host_permissions": [],
        "api_permissions": []
      },
      { "crx_file": "kbpgddbgniojgndnhlkjbkpknjhppkbk.crx",
        "name": "Google+ Hangouts",
        "effective_host_permissions": [],
        "api_permissions": ["background", "tabs"]
      },
      { "crx_file": "hkhhlkdconhgemhegnplaldnmnmkaemd.crx",
        "name": "Get Started",
        "effective_host_permissions": [],
        "api_permissions": ["unlimitedStorage"]
      },
      { "crx_file": "mmimngoggfoobjdlefbcabngfnmieonb.crx",
        "name": "Google Play Books",
        "effective_host_permissions": [],
        "api_permissions": ["unlimitedStorage"]
      },
      { "crx_file": "aohghmighlieiainnegkcijnfilokake.crx",
        "name": "Docs",
        "effective_host_permissions": [],
        "api_permissions": []
      },
      { "crx_file": "joodangkbfjnajiiifokapkpmhfnpleo.crx",
        "name": "Calculator",
        "effective_host_permissions": [],
        "api_permissions": ["app.currentWindowInternal",
                            "app.runtime",
                            "app.window"]
      },
      { "crx_file": "felcaaldnbdncclmgdcncolpebgiejap.crx",
        "name": "Sheets",
        "effective_host_permissions": [],
        "api_permissions": []
      },
      { "crx_file": "aapocclcgogkmnckokdopfmhonfmgoek.crx",
        "name": "Slides",
        "effective_host_permissions": [],
        "api_permissions": []
      },
      { "crx_file": "fppdphmgcddhjeddoeghpjefkdlccljb.crx",
        "name": "Google Play Movies",
        "effective_host_permissions": [],
        "api_permissions": []
      },
      { "crx_file": "hfhhnacclhffhdffklopdkcgdhifgngh.crx",
        "name": "Camera",
        "effective_host_permissions": [],
        "api_permissions": ["app.currentWindowInternal",
                            "app.runtime",
                            "app.window",
                            "contextMenus",
                            "fileSystem",
                            "storage",
                            "unlimitedStorage",
                            "videoCapture"]
      }
  ],
  "component_extension_baseline": [
      { "name": "Files",
        "effective_host_permissions": ["chrome://extension-icon/*",
                                       "chrome://resources/*",
                                       "chrome://theme/*",
                                       "https://drive.google.com/*",
                                       "https://*.googleusercontent.com/*"],
        "api_permissions": ["fileBrowserHandler",
                            "fileBrowserHandlerInternal",
                            "fileBrowserPrivate",
                            "mediaPlayerPrivate",
                            "metricsPrivate",
                            "tabs",
                            "clipboardWrite",
                            "clipboardRead",
                            "unlimitedStorage"]
      },
      { "name": "Wallpaper Picker",
        "effective_host_permissions": ["https://storage.googleapis.com/*",
                                       "https://commondatastorage.googleapis.com/*",
                                       "http://lh5.ggpht.com/*"],
        "api_permissions": ["tabs",
                            "wallpaperPrivate",
                            "webRequest",
                            "webRequestInternal"]
      },
      { "name": "Mobile Activation",
        "effective_host_permissions": [],
        "api_permissions": []
      },
      { "name": "crosh_builtin",
        "effective_host_permissions": [],
        "api_permissions": ["terminalPrivate",
                            "unlimitedStorage"]
      },
      { "name": "Chrome OS ECHO Extension",
        "effective_host_permissions": ["https://*/*"],
        "api_permissions": ["cookies",
                            "echoPrivate"]
      },
      { "name": "Chrome",
        "effective_host_permissions": [],
        "api_permissions": []
      }
  ],
  "official_components": [
      { "name": "Help",
        "effective_host_permissions": [
            "http://support.google.com/chromeos/*",
            "https://support.google.com/*",
            "https://support.google.com/chromeos/*"],
        "api_permissions": ["chromeosInfoPrivate",
                            "tabs"]
      }
  ]
}
