Index: extensions/browser/api/management/management_api.cc |
diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc |
index e1e72af4c18710a02f74d098ad4e592595d27e29..984f41c73804f5e62cdd458154519bc983b5afbe 100644 |
--- a/extensions/browser/api/management/management_api.cc |
+++ b/extensions/browser/api/management/management_api.cc |
@@ -53,8 +53,8 @@ namespace management = api::management; |
namespace { |
-typedef std::vector<linked_ptr<management::ExtensionInfo>> ExtensionInfoList; |
-typedef std::vector<linked_ptr<management::IconInfo>> IconInfoList; |
+typedef std::vector<management::ExtensionInfo> ExtensionInfoList; |
+typedef std::vector<management::IconInfo> IconInfoList; |
enum AutoConfirmForTest { DO_NOT_SKIP = 0, PROCEED, ABORT }; |
@@ -92,79 +92,78 @@ std::vector<management::LaunchType> GetAvailableLaunchTypes( |
return launch_type_list; |
} |
-scoped_ptr<management::ExtensionInfo> CreateExtensionInfo( |
+management::ExtensionInfo CreateExtensionInfo( |
const Extension& extension, |
content::BrowserContext* context) { |
ExtensionSystem* system = ExtensionSystem::Get(context); |
ExtensionRegistry* registry = ExtensionRegistry::Get(context); |
const ManagementAPIDelegate* delegate = |
ManagementAPI::GetFactoryInstance()->Get(context)->GetDelegate(); |
- scoped_ptr<management::ExtensionInfo> info(new management::ExtensionInfo()); |
- |
- info->id = extension.id(); |
- info->name = extension.name(); |
- info->short_name = extension.short_name(); |
- info->enabled = registry->enabled_extensions().Contains(info->id); |
- info->offline_enabled = OfflineEnabledInfo::IsOfflineEnabled(&extension); |
- info->version = extension.VersionString(); |
+ management::ExtensionInfo info; |
+ |
+ info.id = extension.id(); |
+ info.name = extension.name(); |
+ info.short_name = extension.short_name(); |
+ info.enabled = registry->enabled_extensions().Contains(info.id); |
+ info.offline_enabled = OfflineEnabledInfo::IsOfflineEnabled(&extension); |
+ info.version = extension.VersionString(); |
if (!extension.version_name().empty()) |
- info->version_name.reset(new std::string(extension.version_name())); |
- info->description = extension.description(); |
- info->options_url = OptionsPageInfo::GetOptionsPage(&extension).spec(); |
- info->homepage_url.reset( |
+ info.version_name.reset(new std::string(extension.version_name())); |
+ info.description = extension.description(); |
+ info.options_url = OptionsPageInfo::GetOptionsPage(&extension).spec(); |
+ info.homepage_url.reset( |
new std::string(ManifestURL::GetHomepageURL(&extension).spec())); |
- info->may_disable = |
+ info.may_disable = |
system->management_policy()->UserMayModifySettings(&extension, NULL); |
- info->is_app = extension.is_app(); |
- if (info->is_app) { |
+ info.is_app = extension.is_app(); |
+ if (info.is_app) { |
if (extension.is_legacy_packaged_app()) |
- info->type = management::EXTENSION_TYPE_LEGACY_PACKAGED_APP; |
+ info.type = management::EXTENSION_TYPE_LEGACY_PACKAGED_APP; |
else if (extension.is_hosted_app()) |
- info->type = management::EXTENSION_TYPE_HOSTED_APP; |
+ info.type = management::EXTENSION_TYPE_HOSTED_APP; |
else |
- info->type = management::EXTENSION_TYPE_PACKAGED_APP; |
+ info.type = management::EXTENSION_TYPE_PACKAGED_APP; |
} else if (extension.is_theme()) { |
- info->type = management::EXTENSION_TYPE_THEME; |
+ info.type = management::EXTENSION_TYPE_THEME; |
} else { |
- info->type = management::EXTENSION_TYPE_EXTENSION; |
+ info.type = management::EXTENSION_TYPE_EXTENSION; |
} |
- if (info->enabled) { |
- info->disabled_reason = management::EXTENSION_DISABLED_REASON_NONE; |
+ if (info.enabled) { |
+ info.disabled_reason = management::EXTENSION_DISABLED_REASON_NONE; |
} else { |
ExtensionPrefs* prefs = ExtensionPrefs::Get(context); |
if (prefs->DidExtensionEscalatePermissions(extension.id())) { |
- info->disabled_reason = |
+ info.disabled_reason = |
management::EXTENSION_DISABLED_REASON_PERMISSIONS_INCREASE; |
} else { |
- info->disabled_reason = |
- management::EXTENSION_DISABLED_REASON_UNKNOWN; |
+ info.disabled_reason = management::EXTENSION_DISABLED_REASON_UNKNOWN; |
} |
} |
if (!ManifestURL::GetUpdateURL(&extension).is_empty()) { |
- info->update_url.reset( |
+ info.update_url.reset( |
new std::string(ManifestURL::GetUpdateURL(&extension).spec())); |
} |
if (extension.is_app()) { |
- info->app_launch_url.reset( |
+ info.app_launch_url.reset( |
new std::string(delegate->GetFullLaunchURL(&extension).spec())); |
} |
const ExtensionIconSet::IconMap& icons = |
IconsInfo::GetIcons(&extension).map(); |
if (!icons.empty()) { |
- info->icons.reset(new IconInfoList()); |
+ info.icons.reset(new IconInfoList()); |
ExtensionIconSet::IconMap::const_iterator icon_iter; |
for (icon_iter = icons.begin(); icon_iter != icons.end(); ++icon_iter) { |
- management::IconInfo* icon_info = new management::IconInfo(); |
- icon_info->size = icon_iter->first; |
+ management::IconInfo icon_info; |
+ icon_info.size = icon_iter->first; |
GURL url = |
- delegate->GetIconURL(&extension, icon_info->size, |
+ delegate->GetIconURL(&extension, icon_info.size, |
ExtensionIconSet::MATCH_EXACTLY, false, nullptr); |
- icon_info->url = url.spec(); |
- info->icons->push_back(make_linked_ptr<management::IconInfo>(icon_info)); |
+ icon_info.url = url.spec(); |
+ info.icons->push_back(std::move(icon_info)); |
} |
} |
@@ -173,7 +172,7 @@ scoped_ptr<management::ExtensionInfo> CreateExtensionInfo( |
if (!perms.empty()) { |
std::set<std::string>::const_iterator perms_iter; |
for (perms_iter = perms.begin(); perms_iter != perms.end(); ++perms_iter) |
- info->permissions.push_back(*perms_iter); |
+ info.permissions.push_back(*perms_iter); |
} |
if (!extension.is_hosted_app()) { |
@@ -183,38 +182,38 @@ scoped_ptr<management::ExtensionInfo> CreateExtensionInfo( |
if (!host_perms.is_empty()) { |
for (URLPatternSet::const_iterator iter = host_perms.begin(); |
iter != host_perms.end(); ++iter) { |
- info->host_permissions.push_back(iter->GetAsString()); |
+ info.host_permissions.push_back(iter->GetAsString()); |
} |
} |
} |
switch (extension.location()) { |
case Manifest::INTERNAL: |
- info->install_type = management::EXTENSION_INSTALL_TYPE_NORMAL; |
+ info.install_type = management::EXTENSION_INSTALL_TYPE_NORMAL; |
break; |
case Manifest::UNPACKED: |
case Manifest::COMMAND_LINE: |
- info->install_type = management::EXTENSION_INSTALL_TYPE_DEVELOPMENT; |
+ info.install_type = management::EXTENSION_INSTALL_TYPE_DEVELOPMENT; |
break; |
case Manifest::EXTERNAL_PREF: |
case Manifest::EXTERNAL_REGISTRY: |
case Manifest::EXTERNAL_PREF_DOWNLOAD: |
- info->install_type = management::EXTENSION_INSTALL_TYPE_SIDELOAD; |
+ info.install_type = management::EXTENSION_INSTALL_TYPE_SIDELOAD; |
break; |
case Manifest::EXTERNAL_POLICY: |
case Manifest::EXTERNAL_POLICY_DOWNLOAD: |
- info->install_type = management::EXTENSION_INSTALL_TYPE_ADMIN; |
+ info.install_type = management::EXTENSION_INSTALL_TYPE_ADMIN; |
break; |
case Manifest::NUM_LOCATIONS: |
NOTREACHED(); |
case Manifest::INVALID_LOCATION: |
case Manifest::COMPONENT: |
case Manifest::EXTERNAL_COMPONENT: |
- info->install_type = management::EXTENSION_INSTALL_TYPE_OTHER; |
+ info.install_type = management::EXTENSION_INSTALL_TYPE_OTHER; |
break; |
} |
- info->launch_type = management::LAUNCH_TYPE_NONE; |
+ info.launch_type = management::LAUNCH_TYPE_NONE; |
if (extension.is_app()) { |
LaunchType launch_type; |
if (extension.is_platform_app()) { |
@@ -226,23 +225,23 @@ scoped_ptr<management::ExtensionInfo> CreateExtensionInfo( |
switch (launch_type) { |
case LAUNCH_TYPE_PINNED: |
- info->launch_type = management::LAUNCH_TYPE_OPEN_AS_PINNED_TAB; |
+ info.launch_type = management::LAUNCH_TYPE_OPEN_AS_PINNED_TAB; |
break; |
case LAUNCH_TYPE_REGULAR: |
- info->launch_type = management::LAUNCH_TYPE_OPEN_AS_REGULAR_TAB; |
+ info.launch_type = management::LAUNCH_TYPE_OPEN_AS_REGULAR_TAB; |
break; |
case LAUNCH_TYPE_FULLSCREEN: |
- info->launch_type = management::LAUNCH_TYPE_OPEN_FULL_SCREEN; |
+ info.launch_type = management::LAUNCH_TYPE_OPEN_FULL_SCREEN; |
break; |
case LAUNCH_TYPE_WINDOW: |
- info->launch_type = management::LAUNCH_TYPE_OPEN_AS_WINDOW; |
+ info.launch_type = management::LAUNCH_TYPE_OPEN_AS_WINDOW; |
break; |
case LAUNCH_TYPE_INVALID: |
case NUM_LAUNCH_TYPES: |
NOTREACHED(); |
} |
- info->available_launch_types.reset(new std::vector<management::LaunchType>( |
+ info.available_launch_types.reset(new std::vector<management::LaunchType>( |
GetAvailableLaunchTypes(extension, delegate))); |
} |
@@ -259,8 +258,7 @@ void AddExtensionInfo(const ExtensionSet& extensions, |
if (extension.ShouldNotBeVisible()) |
continue; // Skip built-in extensions/apps. |
- extension_list->push_back(make_linked_ptr<management::ExtensionInfo>( |
- CreateExtensionInfo(extension, context).release())); |
+ extension_list->push_back(CreateExtensionInfo(extension, context)); |
} |
} |
@@ -295,17 +293,15 @@ bool ManagementGetFunction::RunSync() { |
return false; |
} |
- scoped_ptr<management::ExtensionInfo> info = |
- CreateExtensionInfo(*extension, browser_context()); |
- results_ = management::Get::Results::Create(*info); |
+ results_ = management::Get::Results::Create( |
+ CreateExtensionInfo(*extension, browser_context())); |
return true; |
} |
bool ManagementGetSelfFunction::RunSync() { |
- scoped_ptr<management::ExtensionInfo> info = |
- CreateExtensionInfo(*extension_, browser_context()); |
- results_ = management::Get::Results::Create(*info); |
+ results_ = management::Get::Results::Create( |
+ CreateExtensionInfo(*extension_, browser_context())); |
return true; |
} |
@@ -773,9 +769,8 @@ void ManagementGenerateAppForLinkFunction::FinishCreateBookmarkApp( |
const Extension* extension, |
const WebApplicationInfo& web_app_info) { |
if (extension) { |
- scoped_ptr<management::ExtensionInfo> info = |
- CreateExtensionInfo(*extension, browser_context()); |
- results_ = management::GenerateAppForLink::Results::Create(*info); |
+ results_ = management::GenerateAppForLink::Results::Create( |
+ CreateExtensionInfo(*extension, browser_context())); |
SendResponse(true); |
Release(); |
@@ -871,9 +866,7 @@ void ManagementEventRouter::BroadcastEvent( |
if (event_name == management::OnUninstalled::kEventName) { |
args->Append(new base::StringValue(extension->id())); |
} else { |
- scoped_ptr<management::ExtensionInfo> info = |
- CreateExtensionInfo(*extension, browser_context_); |
- args->Append(info->ToValue().release()); |
+ args->Append(CreateExtensionInfo(*extension, browser_context_).ToValue()); |
} |
EventRouter::Get(browser_context_) |