Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Side by Side Diff: extensions/common/extension_api.cc

Issue 1908953003: Convert //extensions/{common,shell} from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase? Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « extensions/common/extension_api.h ('k') | extensions/common/extension_builder.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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 "extensions/common/extension_api.h" 5 #include "extensions/common/extension_api.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <string> 10 #include <string>
(...skipping 27 matching lines...) Expand all
38 const char* kChildKinds[] = { 38 const char* kChildKinds[] = {
39 "functions", 39 "functions",
40 "events" 40 "events"
41 }; 41 };
42 42
43 base::StringPiece ReadFromResource(int resource_id) { 43 base::StringPiece ReadFromResource(int resource_id) {
44 return ResourceBundle::GetSharedInstance().GetRawDataResource( 44 return ResourceBundle::GetSharedInstance().GetRawDataResource(
45 resource_id); 45 resource_id);
46 } 46 }
47 47
48 scoped_ptr<base::ListValue> LoadSchemaList(const std::string& name, 48 std::unique_ptr<base::ListValue> LoadSchemaList(
49 const base::StringPiece& schema) { 49 const std::string& name,
50 const base::StringPiece& schema) {
50 std::string error_message; 51 std::string error_message;
51 scoped_ptr<base::Value> result( 52 std::unique_ptr<base::Value> result(base::JSONReader::ReadAndReturnError(
52 base::JSONReader::ReadAndReturnError( 53 schema,
53 schema, 54 base::JSON_PARSE_RFC | base::JSON_DETACHABLE_CHILDREN, // options
54 base::JSON_PARSE_RFC | base::JSON_DETACHABLE_CHILDREN, // options 55 NULL, // error code
55 NULL, // error code 56 &error_message));
56 &error_message));
57 57
58 // Tracking down http://crbug.com/121424 58 // Tracking down http://crbug.com/121424
59 char buf[128]; 59 char buf[128];
60 base::snprintf(buf, arraysize(buf), "%s: (%d) '%s'", 60 base::snprintf(buf, arraysize(buf), "%s: (%d) '%s'",
61 name.c_str(), 61 name.c_str(),
62 result.get() ? result->GetType() : -1, 62 result.get() ? result->GetType() : -1,
63 error_message.c_str()); 63 error_message.c_str());
64 64
65 CHECK(result.get()) << error_message << " for schema " << schema; 65 CHECK(result.get()) << error_message << " for schema " << schema;
66 CHECK(result->IsType(base::Value::TYPE_LIST)) << " for schema " << schema; 66 CHECK(result->IsType(base::Value::TYPE_LIST)) << " for schema " << schema;
(...skipping 28 matching lines...) Expand all
95 return child_node; 95 return child_node;
96 } 96 }
97 97
98 return NULL; 98 return NULL;
99 } 99 }
100 100
101 struct Static { 101 struct Static {
102 Static() 102 Static()
103 : api(ExtensionAPI::CreateWithDefaultConfiguration()) { 103 : api(ExtensionAPI::CreateWithDefaultConfiguration()) {
104 } 104 }
105 scoped_ptr<ExtensionAPI> api; 105 std::unique_ptr<ExtensionAPI> api;
106 }; 106 };
107 107
108 base::LazyInstance<Static> g_lazy_instance = LAZY_INSTANCE_INITIALIZER; 108 base::LazyInstance<Static> g_lazy_instance = LAZY_INSTANCE_INITIALIZER;
109 109
110 // May override |g_lazy_instance| for a test. 110 // May override |g_lazy_instance| for a test.
111 ExtensionAPI* g_shared_instance_for_test = NULL; 111 ExtensionAPI* g_shared_instance_for_test = NULL;
112 112
113 // If it exists and does not already specify a namespace, then the value stored 113 // If it exists and does not already specify a namespace, then the value stored
114 // with key |key| in |schema| will be updated to |schema_namespace| + "." + 114 // with key |key| in |schema| will be updated to |schema_namespace| + "." +
115 // |schema[key]|. 115 // |schema[key]|.
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 : original_api_(g_shared_instance_for_test) { 206 : original_api_(g_shared_instance_for_test) {
207 g_shared_instance_for_test = testing_api; 207 g_shared_instance_for_test = testing_api;
208 } 208 }
209 209
210 ExtensionAPI::OverrideSharedInstanceForTest::~OverrideSharedInstanceForTest() { 210 ExtensionAPI::OverrideSharedInstanceForTest::~OverrideSharedInstanceForTest() {
211 g_shared_instance_for_test = original_api_; 211 g_shared_instance_for_test = original_api_;
212 } 212 }
213 213
214 void ExtensionAPI::LoadSchema(const std::string& name, 214 void ExtensionAPI::LoadSchema(const std::string& name,
215 const base::StringPiece& schema) { 215 const base::StringPiece& schema) {
216 scoped_ptr<base::ListValue> schema_list(LoadSchemaList(name, schema)); 216 std::unique_ptr<base::ListValue> schema_list(LoadSchemaList(name, schema));
217 std::string schema_namespace; 217 std::string schema_namespace;
218 extensions::ExtensionsClient* extensions_client = 218 extensions::ExtensionsClient* extensions_client =
219 extensions::ExtensionsClient::Get(); 219 extensions::ExtensionsClient::Get();
220 DCHECK(extensions_client); 220 DCHECK(extensions_client);
221 while (!schema_list->empty()) { 221 while (!schema_list->empty()) {
222 base::DictionaryValue* schema = NULL; 222 base::DictionaryValue* schema = NULL;
223 { 223 {
224 scoped_ptr<base::Value> value; 224 std::unique_ptr<base::Value> value;
225 schema_list->Remove(schema_list->GetSize() - 1, &value); 225 schema_list->Remove(schema_list->GetSize() - 1, &value);
226 CHECK(value.release()->GetAsDictionary(&schema)); 226 CHECK(value.release()->GetAsDictionary(&schema));
227 } 227 }
228 228
229 CHECK(schema->GetString("namespace", &schema_namespace)); 229 CHECK(schema->GetString("namespace", &schema_namespace));
230 PrefixWithNamespace(schema_namespace, schema); 230 PrefixWithNamespace(schema_namespace, schema);
231 schemas_[schema_namespace] = make_linked_ptr(schema); 231 schemas_[schema_namespace] = make_linked_ptr(schema);
232 if (!extensions_client->IsAPISchemaGenerated(schema_namespace)) 232 if (!extensions_client->IsAPISchemaGenerated(schema_namespace))
233 CHECK_EQ(1u, unloaded_schemas_.erase(schema_namespace)); 233 CHECK_EQ(1u, unloaded_schemas_.erase(schema_namespace));
234 } 234 }
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 break; 388 break;
389 389
390 api_name_candidate = api_name_candidate.substr(0, last_dot_index); 390 api_name_candidate = api_name_candidate.substr(0, last_dot_index);
391 } 391 }
392 392
393 *child_name = ""; 393 *child_name = "";
394 return std::string(); 394 return std::string();
395 } 395 }
396 396
397 } // namespace extensions 397 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/common/extension_api.h ('k') | extensions/common/extension_builder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698