OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/extension_garbage_collector_chromeos.h" | 5 #include "chrome/browser/extensions/extension_garbage_collector_chromeos.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | |
9 #include <vector> | 8 #include <vector> |
10 | 9 |
11 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
12 #include "base/memory/ptr_util.h" | |
13 #include "base/strings/string_split.h" | 11 #include "base/strings/string_split.h" |
14 #include "base/strings/string_util.h" | 12 #include "base/strings/string_util.h" |
15 #include "base/threading/sequenced_worker_pool.h" | 13 #include "base/threading/sequenced_worker_pool.h" |
16 #include "base/values.h" | 14 #include "base/values.h" |
17 #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" | 15 #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" |
18 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" | 16 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" |
19 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 17 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
20 #include "chrome/browser/extensions/extension_assets_manager_chromeos.h" | 18 #include "chrome/browser/extensions/extension_assets_manager_chromeos.h" |
21 #include "chrome/browser/extensions/extension_service.h" | 19 #include "chrome/browser/extensions/extension_service.h" |
22 #include "chrome/browser/extensions/extension_service_test_base.h" | 20 #include "chrome/browser/extensions/extension_service_test_base.h" |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 return path; | 91 return path; |
94 } | 92 } |
95 | 93 |
96 void CreateSharedExtensionPrefs(const std::string& id, | 94 void CreateSharedExtensionPrefs(const std::string& id, |
97 const std::string& version, | 95 const std::string& version, |
98 const std::string& users_string, | 96 const std::string& users_string, |
99 const base::FilePath& path) { | 97 const base::FilePath& path) { |
100 DictionaryPrefUpdate shared_extensions(testing_local_state_.Get(), | 98 DictionaryPrefUpdate shared_extensions(testing_local_state_.Get(), |
101 ExtensionAssetsManagerChromeOS::kSharedExtensions); | 99 ExtensionAssetsManagerChromeOS::kSharedExtensions); |
102 | 100 |
103 base::DictionaryValue* extension_info_weak = NULL; | 101 base::DictionaryValue* extension_info = NULL; |
104 if (!shared_extensions->GetDictionary(id, &extension_info_weak)) { | 102 if (!shared_extensions->GetDictionary(id, &extension_info)) { |
105 auto extension_info = base::MakeUnique<base::DictionaryValue>(); | 103 extension_info = new base::DictionaryValue; |
106 extension_info_weak = extension_info.get(); | 104 shared_extensions->Set(id, extension_info); |
107 shared_extensions->Set(id, std::move(extension_info)); | |
108 } | 105 } |
109 | 106 |
110 auto version_info = base::MakeUnique<base::DictionaryValue>(); | 107 base::DictionaryValue* version_info = new base::DictionaryValue; |
| 108 extension_info->SetWithoutPathExpansion(version, version_info); |
111 version_info->SetString( | 109 version_info->SetString( |
112 ExtensionAssetsManagerChromeOS::kSharedExtensionPath, path.value()); | 110 ExtensionAssetsManagerChromeOS::kSharedExtensionPath, path.value()); |
113 | 111 |
114 auto users = base::MakeUnique<base::ListValue>(); | 112 base::ListValue* users = new base::ListValue; |
| 113 version_info->Set(ExtensionAssetsManagerChromeOS::kSharedExtensionUsers, |
| 114 users); |
115 for (const std::string& user : | 115 for (const std::string& user : |
116 base::SplitString(users_string, ",", base::KEEP_WHITESPACE, | 116 base::SplitString(users_string, ",", |
117 base::SPLIT_WANT_NONEMPTY)) { | 117 base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) |
118 users->AppendString(user); | 118 users->AppendString(user); |
119 } | |
120 version_info->Set(ExtensionAssetsManagerChromeOS::kSharedExtensionUsers, | |
121 std::move(users)); | |
122 extension_info_weak->SetWithoutPathExpansion(version, | |
123 std::move(version_info)); | |
124 } | 119 } |
125 | 120 |
126 scoped_refptr<Extension> CreateExtension(const std::string& id, | 121 scoped_refptr<Extension> CreateExtension(const std::string& id, |
127 const std::string& version, | 122 const std::string& version, |
128 const base::FilePath& path) { | 123 const base::FilePath& path) { |
129 base::DictionaryValue manifest; | 124 base::DictionaryValue manifest; |
130 manifest.SetString(manifest_keys::kName, "test"); | 125 manifest.SetString(manifest_keys::kName, "test"); |
131 manifest.SetString(manifest_keys::kVersion, version); | 126 manifest.SetString(manifest_keys::kVersion, version); |
132 | 127 |
133 std::string error; | 128 std::string error; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 | 191 |
197 const base::DictionaryValue* shared_extensions = testing_local_state_.Get()-> | 192 const base::DictionaryValue* shared_extensions = testing_local_state_.Get()-> |
198 GetDictionary(ExtensionAssetsManagerChromeOS::kSharedExtensions); | 193 GetDictionary(ExtensionAssetsManagerChromeOS::kSharedExtensions); |
199 ASSERT_TRUE(shared_extensions); | 194 ASSERT_TRUE(shared_extensions); |
200 | 195 |
201 EXPECT_FALSE(shared_extensions->HasKey(kExtensionId1)); | 196 EXPECT_FALSE(shared_extensions->HasKey(kExtensionId1)); |
202 EXPECT_TRUE(shared_extensions->HasKey(kExtensionId2)); | 197 EXPECT_TRUE(shared_extensions->HasKey(kExtensionId2)); |
203 } | 198 } |
204 | 199 |
205 } // namespace extensions | 200 } // namespace extensions |
OLD | NEW |