1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/ui/webui/extensions/extension_basic_info.h" 6 7 #include "base/values.h" 8 #include "chrome/common/extensions/manifest_url_handler.h" 9 #include "extensions/common/extension.h" 10 #include "extensions/common/manifest_handlers/kiosk_mode_info.h" 11 #include "extensions/common/manifest_handlers/offline_enabled_info.h" 12 13 namespace { 14 15 // Keys in the dictionary returned by GetExtensionBasicInfo(). 16 const char kDescriptionKey[] = "description"; 17 const char kEnabledKey[] = "enabled"; 18 const char kHomepageUrlKey[] = "homepageUrl"; 19 const char kIdKey[] = "id"; 20 const char kNameKey[] = "name"; 21 const char kKioskEnabledKey[] = "kioskEnabled"; 22 const char kKioskOnlyKey[] = "kioskOnly"; 23 const char kOfflineEnabledKey[] = "offlineEnabled"; 24 const char kOptionsUrlKey[] = "optionsUrl"; 25 const char kDetailsUrlKey[] = "detailsUrl"; 26 const char kVersionKey[] = "version"; 27 const char kPackagedAppKey[] = "packagedApp"; 28 29 } // namespace 30 31 namespace extensions { 32 33 void GetExtensionBasicInfo(const Extension* extension, 34 bool enabled, 35 base::DictionaryValue* info) { 36 info->SetString(kIdKey, extension->id()); 37 info->SetString(kNameKey, extension->name()); 38 info->SetBoolean(kEnabledKey, enabled); 39 info->SetBoolean(kKioskEnabledKey, 40 KioskModeInfo::IsKioskEnabled(extension)); 41 info->SetBoolean(kKioskOnlyKey, 42 KioskModeInfo::IsKioskOnly(extension)); 43 info->SetBoolean(kOfflineEnabledKey, 44 OfflineEnabledInfo::IsOfflineEnabled(extension)); 45 info->SetString(kVersionKey, extension->VersionString()); 46 info->SetString(kDescriptionKey, extension->description()); 47 info->SetString( 48 kOptionsUrlKey, 49 ManifestURL::GetOptionsPage(extension).possibly_invalid_spec()); 50 info->SetString( 51 kHomepageUrlKey, 52 ManifestURL::GetHomepageURL(extension).possibly_invalid_spec()); 53 info->SetString( 54 kDetailsUrlKey, 55 ManifestURL::GetDetailsURL(extension).possibly_invalid_spec()); 56 info->SetBoolean(kPackagedAppKey, extension->is_platform_app()); 57 } 58 59 } // namespace extensions 60