| Index: chrome/browser/extensions/extension_assets_manager_chromeos.cc
|
| diff --git a/chrome/browser/extensions/extension_assets_manager_chromeos.cc b/chrome/browser/extensions/extension_assets_manager_chromeos.cc
|
| index c6213bc2bf3884ada8b8c1d17dc98b9f1e845d7b..ee709fd276946b8e1aa6a0ed0d5dfcb363c76207 100644
|
| --- a/chrome/browser/extensions/extension_assets_manager_chromeos.cc
|
| +++ b/chrome/browser/extensions/extension_assets_manager_chromeos.cc
|
| @@ -7,14 +7,17 @@
|
| #include <stddef.h>
|
|
|
| #include <map>
|
| +#include <utility>
|
| #include <vector>
|
|
|
| #include "base/command_line.h"
|
| #include "base/files/file_util.h"
|
| #include "base/macros.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/memory/singleton.h"
|
| #include "base/sequenced_task_runner.h"
|
| #include "base/sys_info.h"
|
| +#include "base/values.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/chromeos/profiles/profile_helper.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| @@ -397,19 +400,18 @@ void ExtensionAssetsManagerChromeOS::InstallSharedExtensionDone(
|
|
|
| PrefService* local_state = g_browser_process->local_state();
|
| DictionaryPrefUpdate shared_extensions(local_state, kSharedExtensions);
|
| - base::DictionaryValue* extension_info = NULL;
|
| - if (!shared_extensions->GetDictionary(id, &extension_info)) {
|
| - extension_info = new base::DictionaryValue;
|
| - shared_extensions->Set(id, extension_info);
|
| + base::DictionaryValue* extension_info_weak = NULL;
|
| + if (!shared_extensions->GetDictionary(id, &extension_info_weak)) {
|
| + auto extension_info = base::MakeUnique<base::DictionaryValue>();
|
| + extension_info_weak = extension_info.get();
|
| + shared_extensions->Set(id, std::move(extension_info));
|
| }
|
|
|
| CHECK(!shared_extensions->HasKey(version));
|
| - base::DictionaryValue* version_info = new base::DictionaryValue;
|
| - extension_info->SetWithoutPathExpansion(version, version_info);
|
| + auto version_info = base::MakeUnique<base::DictionaryValue>();
|
| version_info->SetString(kSharedExtensionPath, shared_version_dir.value());
|
|
|
| - base::ListValue* users = new base::ListValue;
|
| - version_info->Set(kSharedExtensionUsers, users);
|
| + auto users = base::MakeUnique<base::ListValue>();
|
| for (size_t i = 0; i < pending_installs.size(); i++) {
|
| ExtensionAssetsManagerHelper::PendingInstallInfo& info =
|
| pending_installs[i];
|
| @@ -419,6 +421,9 @@ void ExtensionAssetsManagerChromeOS::InstallSharedExtensionDone(
|
| FROM_HERE,
|
| base::Bind(info.callback, shared_version_dir));
|
| }
|
| + version_info->Set(kSharedExtensionUsers, std::move(users));
|
| + extension_info_weak->SetWithoutPathExpansion(version,
|
| + std::move(version_info));
|
| }
|
|
|
| // static
|
|
|