// Dictionary of default apps to install into new profiles.  Each entry maps
// the extension's id to its crx's path (relative to this file) and the version
// of the extension contained in the crx.
//
// When an extension is added or removed here, the two lists 'default_apps_list'
// and 'default_apps_list_linux_dest' in build/common.gypi must also be updated.
{
  "blpcfgokakmgnkcojhhkbfbldkacnbeo" : {
    "external_crx": "youtube.crx",
    "external_version": "4.2.5",
    "is_bookmark_app": true
  },
  "coobgpohoikkiipiblmjeljniedjpjpf" : {
    "external_crx": "search.crx",
    "external_version": "0.0.0.19",
    "is_bookmark_app": true
  },
  "pjkljhegncpnkpknbcohdijeoejaedia" : {
    "external_crx": "gmail.crx",
    "external_version": "7"
  },
  "apdfllckaahabafndbhieahigkjlhalf" : {
    "external_crx": "drive.crx",
    "external_version": "6.2"
  },
  "aohghmighlieiainnegkcijnfilokake" : {
    "external_crx": "docs.crx",
    "external_version": "0.0.0.6"
  },
  // Google Sheets
  "aapocclcgogkmnckokdopfmhonfmgoek" : {
    "external_update_url": "https://clients2.google.com/service/update2/crx"
  },
  // Google Slides
  "felcaaldnbdncclmgdcncolpebgiejap" : {
    "external_update_url": "https://clients2.google.com/service/update2/crx"
  }
}

