extension_constants.cc revision 58537e28ecd584eab876aee8be7156509866d23a
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/extensions/extension_constants.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/extensions/extension_manifest_constants.h"
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <vector>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/command_line.h"
11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string_util.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/chrome_switches.h"
1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "net/base/escape.h"
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/base/url_util.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extension_urls {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string GetWebstoreLaunchURL() {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  std::string gallery_prefix = kGalleryBrowsePrefix;
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAppsGalleryURL))
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    gallery_prefix = CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        switches::kAppsGalleryURL);
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (EndsWith(gallery_prefix, "/", true))
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    gallery_prefix = gallery_prefix.substr(0, gallery_prefix.length() - 1);
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return gallery_prefix;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string GetExtensionGalleryURL() {
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return GetWebstoreLaunchURL() + "/category/extensions";
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string GetWebstoreItemDetailURLPrefix() {
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return GetWebstoreLaunchURL() + "/detail/";
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)GURL GetWebstoreItemJsonDataURL(const std::string& extension_id) {
3790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return GURL(GetWebstoreLaunchURL() + "/inlineinstall/detail/" + extension_id);
3890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)GURL GetWebstoreJsonSearchUrl(const std::string& query, const std::string& hl) {
4190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  GURL url(GetWebstoreLaunchURL() + "/jsonsearch");
4290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  url = net::AppendQueryParameter(url, "q", query);
4390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  url = net::AppendQueryParameter(url, "hl", hl);
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return url;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)GURL GetWebstoreSearchPageUrl(const std::string& query) {
4890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return GURL(GetWebstoreLaunchURL() + "/search/" +
4990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)              net::EscapeQueryParamValue(query, false));
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kGalleryUpdateHttpsUrl[] =
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    "https://clients2.google.com/service/update2/crx";
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TODO(battre): Delete the HTTP URL once the blacklist is downloaded via HTTPS.
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kExtensionBlocklistUrlPrefix[] =
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    "http://www.gstatic.com/chrome/extensions/blacklist";
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kExtensionBlocklistHttpsUrlPrefix[] =
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    "https://www.gstatic.com/chrome/extensions/blacklist";
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GURL GetWebstoreUpdateUrl() {
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CommandLine* cmdline = CommandLine::ForCurrentProcess();
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (cmdline->HasSwitch(switches::kAppsGalleryUpdateURL))
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return GURL(cmdline->GetSwitchValueASCII(switches::kAppsGalleryUpdateURL));
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  else
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return GURL(kGalleryUpdateHttpsUrl);
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool IsWebstoreUpdateUrl(const GURL& update_url) {
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  GURL store_url = GetWebstoreUpdateUrl();
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (update_url == store_url) {
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return true;
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  } else {
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return (update_url.host() == store_url.host() &&
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            update_url.path() == store_url.path());
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool IsBlacklistUpdateUrl(const GURL& url) {
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The extension blacklist URL is returned from the update service and
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // therefore not determined by Chromium. If the location of the blacklist file
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // ever changes, we need to update this function. A DCHECK in the
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // ExtensionUpdater ensures that we notice a change. This is the full URL
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // of a blacklist:
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // http://www.gstatic.com/chrome/extensions/blacklist/l_0_0_0_7.txt
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return StartsWithASCII(url.spec(), kExtensionBlocklistUrlPrefix, true) ||
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      StartsWithASCII(url.spec(), kExtensionBlocklistHttpsUrlPrefix, true);
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kGalleryBrowsePrefix[] = "https://chrome.google.com/webstore";
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace extension_urls
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extension_misc {
94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kBookmarkManagerId[] = "eemcgdkfndhakfknompkggombfjjjeno";
96c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kChromeAppId[] = "mgndgikekgjfcpckkfioiadnlibdjbkf";
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kCitrixReceiverAppId[] = "haiffjcadagjlijoggckpgfnoeiflnem";
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kCitrixReceiverAppBetaId[] = "gnedhmakppccajfpfiihfcdlnpgomkcf";
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kCitrixReceiverAppDevId[] = "fjcibdnjlbfnbfdjneajpipnlcppleek";
100c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kCloudPrintAppId[] = "mfehgcgbbipciphmccgaenjidiccnmng";
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kEnterpriseWebStoreAppId[] = "afchcafgojfnemjkcbhfekplkmjaldaa";
102c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kGmailAppId[] = "pjkljhegncpnkpknbcohdijeoejaedia";
103c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kGoogleDocAppId[] = "aohghmighlieiainnegkcijnfilokake";
104c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kGooglePlayMusicAppId[] = "icppfcnhkcmnfdhfhphakoifcfokfdhg";
105c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kGoogleSearchAppId[] = "coobgpohoikkiipiblmjeljniedjpjpf";
106c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kGoogleSheetsAppId[] = "felcaaldnbdncclmgdcncolpebgiejap";
107c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kGoogleSlidesAppId[] = "aapocclcgogkmnckokdopfmhonfmgoek";
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kHTermAppId[] = "pnhechapfaindjhompbnflcldabbghjo";
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kHTermDevAppId[] = "okddffdblfhhnmhodogpojmfkjmhinfp";
11090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const char kIdentityApiUiAppId[] = "ahjaciijnoiaklcomgnblndopackapon";
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kCroshBuiltinAppId[] = "nkoccljplnhpfnfiajclkommnmllphnl";
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kQuickOfficeComponentExtensionId[] =
1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    "bpmcpldpdmajfigpchkicefoigmkfalc";
1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kQuickOfficeDevExtensionId[] = "ionpfmkccalenbmnddpbmocokhaknphg";
1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kQuickOfficeExtensionId[] = "gbkeegbaiigmenfmjfclcdgdpimamgkj";
116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kSettingsAppId[] = "ennkphjdgehloodpbhlhldgbnhmacadg";
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kStreamsPrivateTestExtensionId[] =
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    "oickdpebdnfbgkcaoklfcdhjniefkcji";
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kWebStoreAppId[] = "ahfgeienlihckogmohjhadlkjgocpleb";
120c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kYoutubeAppId[] = "blpcfgokakmgnkcojhhkbfbldkacnbeo";
12190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const char kInAppPaymentsSupportAppId[] = "nmmhkkegccagdldgiimedpiccmgmieda";
122c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAppLaunchHistogram[] = "Extensions.AppLaunch";
1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kPlatformAppLaunchHistogram[] = "Apps.AppLaunch";
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_CHROMEOS)
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kChromeVoxExtensionPath[] =
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    "/usr/share/chromeos-assets/accessibility/extensions/access_chromevox";
12858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// The extension id for the built-in component extension.
12958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)const char kChromeVoxExtensionId[] =
13058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    "mndnfokpggljbaajbnioimlmbfngpief";
131ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochconst char kConnectivityDiagnosticsPath[] =
132ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    "/usr/share/chromeos-assets/connectivity_diagnostics";
133a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)const char kConnectivityDiagnosticsLauncherPath[] =
134a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    "/usr/share/chromeos-assets/connectivity_diagnostics_launcher";
1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kSpeechSynthesisExtensionPath[] =
1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    "/usr/share/chromeos-assets/speech_synthesis/patts";
1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kSpeechSynthesisExtensionId[] =
1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    "gjjabgpgjpampikjhjpfhneeoapjbjaf";
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kWallpaperManagerId[] = "obklkkbkpaoaejdabbfldmcfplpdgolj";
14058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#else
14158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// The extension id for the web store extension.
14258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)const char kChromeVoxExtensionId[] =
14358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    "kgejglhpjiefppelpmljglcjbhoiplfn";
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAppStateNotInstalled[] = "not_installed";
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAppStateInstalled[] = "installed";
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAppStateDisabled[] = "disabled";
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAppStateRunning[] = "running";
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAppStateCannotRun[] = "cannot_run";
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAppStateReadyToRun[] = "ready_to_run";
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kMediaFileSystemPathPart[] = "_";
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int kExtensionIconSizes[] = {
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXTENSION_ICON_GIGANTOR,  // 512
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXTENSION_ICON_EXTRA_LARGE,  // 256
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXTENSION_ICON_LARGE,  // 128
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXTENSION_ICON_MEDIUM,  // 48
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXTENSION_ICON_SMALL,  // 32
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXTENSION_ICON_SMALLISH,  // 24
162bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  EXTENSION_ICON_BITTY,  // 16
163bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  // Additional 2x resources to load.
164bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  2 * EXTENSION_ICON_MEDIUM,  // 96
165bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  2 * EXTENSION_ICON_SMALL  // 64
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const size_t kNumExtensionIconSizes =
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    arraysize(kExtensionIconSizes);
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int kExtensionActionIconSizes[] = {
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXTENSION_ICON_ACTION,  // 19,
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  2 * EXTENSION_ICON_ACTION  // 38
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const size_t kNumExtensionActionIconSizes =
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    arraysize(kExtensionActionIconSizes);
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int kScriptBadgeIconSizes[] = {
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXTENSION_ICON_BITTY,  // 16
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  2 * EXTENSION_ICON_BITTY  // 32
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const size_t kNumScriptBadgeIconSizes =
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    arraysize(kScriptBadgeIconSizes);
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace extension_misc
188