| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_management_api.h" | 5 #include "chrome/browser/extensions/extension_management_api.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 | 155 |
| 156 if (extension.location() == Extension::COMPONENT) | 156 if (extension.location() == Extension::COMPONENT) |
| 157 continue; // Skip built-in extensions. | 157 continue; // Skip built-in extensions. |
| 158 | 158 |
| 159 list->Append(CreateExtensionInfo(extension, service)); | 159 list->Append(CreateExtensionInfo(extension, service)); |
| 160 } | 160 } |
| 161 } | 161 } |
| 162 | 162 |
| 163 bool GetAllExtensionsFunction::RunImpl() { | 163 bool GetAllExtensionsFunction::RunImpl() { |
| 164 ListValue* result = new ListValue(); | 164 ListValue* result = new ListValue(); |
| 165 result_.reset(result); | 165 SetResult(result); |
| 166 | 166 |
| 167 AddExtensionInfo(result, *service()->extensions(), service()); | 167 AddExtensionInfo(result, *service()->extensions(), service()); |
| 168 AddExtensionInfo(result, *service()->disabled_extensions(), service()); | 168 AddExtensionInfo(result, *service()->disabled_extensions(), service()); |
| 169 | 169 |
| 170 return true; | 170 return true; |
| 171 } | 171 } |
| 172 | 172 |
| 173 bool GetExtensionByIdFunction::RunImpl() { | 173 bool GetExtensionByIdFunction::RunImpl() { |
| 174 std::string extension_id; | 174 std::string extension_id; |
| 175 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &extension_id)); | 175 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &extension_id)); |
| 176 const Extension* extension = service()->GetExtensionById(extension_id, true); | 176 const Extension* extension = service()->GetExtensionById(extension_id, true); |
| 177 if (!extension) { | 177 if (!extension) { |
| 178 error_ = ExtensionErrorUtils::FormatErrorMessage(keys::kNoExtensionError, | 178 error_ = ExtensionErrorUtils::FormatErrorMessage(keys::kNoExtensionError, |
| 179 extension_id); | 179 extension_id); |
| 180 return false; | 180 return false; |
| 181 } | 181 } |
| 182 DictionaryValue* result = CreateExtensionInfo(*extension, service()); | 182 DictionaryValue* result = CreateExtensionInfo(*extension, service()); |
| 183 result_.reset(result); | 183 SetResult(result); |
| 184 | 184 |
| 185 return true; | 185 return true; |
| 186 } | 186 } |
| 187 | 187 |
| 188 bool GetPermissionWarningsByIdFunction::RunImpl() { | 188 bool GetPermissionWarningsByIdFunction::RunImpl() { |
| 189 std::string ext_id; | 189 std::string ext_id; |
| 190 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &ext_id)); | 190 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &ext_id)); |
| 191 | 191 |
| 192 const Extension* extension = service()->GetExtensionById(ext_id, true); | 192 const Extension* extension = service()->GetExtensionById(ext_id, true); |
| 193 if (!extension) { | 193 if (!extension) { |
| 194 error_ = ExtensionErrorUtils::FormatErrorMessage(keys::kNoExtensionError, | 194 error_ = ExtensionErrorUtils::FormatErrorMessage(keys::kNoExtensionError, |
| 195 ext_id); | 195 ext_id); |
| 196 return false; | 196 return false; |
| 197 } | 197 } |
| 198 | 198 |
| 199 PermissionMessages warnings = extension->GetPermissionMessages(); | 199 PermissionMessages warnings = extension->GetPermissionMessages(); |
| 200 ListValue* result = new ListValue(); | 200 ListValue* result = new ListValue(); |
| 201 for (PermissionMessages::const_iterator i = warnings.begin(); | 201 for (PermissionMessages::const_iterator i = warnings.begin(); |
| 202 i < warnings.end(); ++i) | 202 i < warnings.end(); ++i) |
| 203 result->Append(Value::CreateStringValue(i->message())); | 203 result->Append(Value::CreateStringValue(i->message())); |
| 204 result_.reset(result); | 204 SetResult(result); |
| 205 return true; | 205 return true; |
| 206 } | 206 } |
| 207 | 207 |
| 208 namespace { | 208 namespace { |
| 209 | 209 |
| 210 // This class helps GetPermissionWarningsByManifestFunction manage | 210 // This class helps GetPermissionWarningsByManifestFunction manage |
| 211 // sending manifest JSON strings to the utility process for parsing. | 211 // sending manifest JSON strings to the utility process for parsing. |
| 212 class SafeManifestJSONParser : public UtilityProcessHostClient { | 212 class SafeManifestJSONParser : public UtilityProcessHostClient { |
| 213 public: | 213 public: |
| 214 SafeManifestJSONParser(GetPermissionWarningsByManifestFunction* client, | 214 SafeManifestJSONParser(GetPermissionWarningsByManifestFunction* client, |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 if (!extension.get()) { | 318 if (!extension.get()) { |
| 319 OnParseFailure(keys::kExtensionCreateError); | 319 OnParseFailure(keys::kExtensionCreateError); |
| 320 return; | 320 return; |
| 321 } | 321 } |
| 322 | 322 |
| 323 PermissionMessages warnings = extension->GetPermissionMessages(); | 323 PermissionMessages warnings = extension->GetPermissionMessages(); |
| 324 ListValue* result = new ListValue(); | 324 ListValue* result = new ListValue(); |
| 325 for (PermissionMessages::const_iterator i = warnings.begin(); | 325 for (PermissionMessages::const_iterator i = warnings.begin(); |
| 326 i < warnings.end(); ++i) | 326 i < warnings.end(); ++i) |
| 327 result->Append(Value::CreateStringValue(i->message())); | 327 result->Append(Value::CreateStringValue(i->message())); |
| 328 result_.reset(result); | 328 SetResult(result); |
| 329 SendResponse(true); | 329 SendResponse(true); |
| 330 | 330 |
| 331 // Matched with AddRef() in RunImpl(). | 331 // Matched with AddRef() in RunImpl(). |
| 332 Release(); | 332 Release(); |
| 333 } | 333 } |
| 334 | 334 |
| 335 void GetPermissionWarningsByManifestFunction::OnParseFailure( | 335 void GetPermissionWarningsByManifestFunction::OnParseFailure( |
| 336 const std::string& error) { | 336 const std::string& error) { |
| 337 error_ = error; | 337 error_ = error; |
| 338 SendResponse(false); | 338 SendResponse(false); |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 ExtensionService* service = profile->GetExtensionService(); | 585 ExtensionService* service = profile->GetExtensionService(); |
| 586 args.Append(CreateExtensionInfo(*extension, service)); | 586 args.Append(CreateExtensionInfo(*extension, service)); |
| 587 } | 587 } |
| 588 | 588 |
| 589 std::string args_json; | 589 std::string args_json; |
| 590 base::JSONWriter::Write(&args, &args_json); | 590 base::JSONWriter::Write(&args, &args_json); |
| 591 | 591 |
| 592 profile->GetExtensionEventRouter()->DispatchEventToRenderers( | 592 profile->GetExtensionEventRouter()->DispatchEventToRenderers( |
| 593 event_name, args_json, NULL, GURL(), extensions::EventFilteringInfo()); | 593 event_name, args_json, NULL, GURL(), extensions::EventFilteringInfo()); |
| 594 } | 594 } |
| OLD | NEW |