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 13namespace { 14 15// Keys in the dictionary returned by GetExtensionBasicInfo(). 16const char kDescriptionKey[] = "description"; 17const char kEnabledKey[] = "enabled"; 18const char kHomepageUrlKey[] = "homepageUrl"; 19const char kIdKey[] = "id"; 20const char kNameKey[] = "name"; 21const char kKioskEnabledKey[] = "kioskEnabled"; 22const char kKioskOnlyKey[] = "kioskOnly"; 23const char kOfflineEnabledKey[] = "offlineEnabled"; 24const char kOptionsUrlKey[] = "optionsUrl"; 25const char kDetailsUrlKey[] = "detailsUrl"; 26const char kVersionKey[] = "version"; 27const char kPackagedAppKey[] = "packagedApp"; 28 29} // namespace 30 31namespace extensions { 32 33void 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