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

Side by Side Diff: extensions/browser/api/management/management_api.cc

Issue 2261313002: [Extensions] Convert some SyncExtensionFunctions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ready Created 4 years, 3 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
OLDNEW
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 "extensions/browser/api/management/management_api.h" 5 #include "extensions/browser/api/management/management_api.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 261
262 if (extension.ShouldNotBeVisible()) 262 if (extension.ShouldNotBeVisible())
263 continue; // Skip built-in extensions/apps. 263 continue; // Skip built-in extensions/apps.
264 264
265 extension_list->push_back(CreateExtensionInfo(extension, context)); 265 extension_list->push_back(CreateExtensionInfo(extension, context));
266 } 266 }
267 } 267 }
268 268
269 } // namespace 269 } // namespace
270 270
271 bool ManagementGetAllFunction::RunSync() { 271 ExtensionFunction::ResponseAction ManagementGetAllFunction::Run() {
272 ExtensionInfoList extensions; 272 ExtensionInfoList extensions;
273 ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context()); 273 ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context());
274 274
275 AddExtensionInfo(registry->enabled_extensions(), &extensions, 275 AddExtensionInfo(registry->enabled_extensions(), &extensions,
276 browser_context()); 276 browser_context());
277 AddExtensionInfo(registry->disabled_extensions(), &extensions, 277 AddExtensionInfo(registry->disabled_extensions(), &extensions,
278 browser_context()); 278 browser_context());
279 AddExtensionInfo(registry->terminated_extensions(), &extensions, 279 AddExtensionInfo(registry->terminated_extensions(), &extensions,
280 browser_context()); 280 browser_context());
281 281
282 results_ = management::GetAll::Results::Create(extensions); 282 return RespondNow(
283 return true; 283 ArgumentList(management::GetAll::Results::Create(extensions)));
284 } 284 }
285 285
286 bool ManagementGetFunction::RunSync() { 286 ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
287 std::unique_ptr<management::Get::Params> params( 287 std::unique_ptr<management::Get::Params> params(
288 management::Get::Params::Create(*args_)); 288 management::Get::Params::Create(*args_));
289 EXTENSION_FUNCTION_VALIDATE(params.get()); 289 EXTENSION_FUNCTION_VALIDATE(params.get());
290 ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context()); 290 ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context());
291 291
292 const Extension* extension = 292 const Extension* extension =
293 registry->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); 293 registry->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING);
294 if (!extension) { 294 if (!extension)
295 error_ = 295 return RespondNow(Error(keys::kNoExtensionError, params->id));
296 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id);
297 return false;
298 }
299 296
300 results_ = management::Get::Results::Create( 297 return RespondNow(ArgumentList(management::Get::Results::Create(
301 CreateExtensionInfo(*extension, browser_context())); 298 CreateExtensionInfo(*extension, browser_context()))));
302
303 return true;
304 } 299 }
305 300
306 bool ManagementGetSelfFunction::RunSync() { 301 ExtensionFunction::ResponseAction ManagementGetSelfFunction::Run() {
307 results_ = management::Get::Results::Create( 302 return RespondNow(ArgumentList(management::Get::Results::Create(
308 CreateExtensionInfo(*extension_, browser_context())); 303 CreateExtensionInfo(*extension_, browser_context()))));
309
310 return true;
311 } 304 }
312 305
313 bool ManagementGetPermissionWarningsByIdFunction::RunSync() { 306 ExtensionFunction::ResponseAction
307 ManagementGetPermissionWarningsByIdFunction::Run() {
314 std::unique_ptr<management::GetPermissionWarningsById::Params> params( 308 std::unique_ptr<management::GetPermissionWarningsById::Params> params(
315 management::GetPermissionWarningsById::Params::Create(*args_)); 309 management::GetPermissionWarningsById::Params::Create(*args_));
316 EXTENSION_FUNCTION_VALIDATE(params.get()); 310 EXTENSION_FUNCTION_VALIDATE(params.get());
317 311
318 const Extension* extension = 312 const Extension* extension =
319 ExtensionRegistry::Get(browser_context()) 313 ExtensionRegistry::Get(browser_context())
320 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); 314 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING);
321 if (!extension) { 315 if (!extension)
322 error_ = 316 return RespondNow(Error(keys::kNoExtensionError, params->id));
323 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id);
324 return false;
325 }
326 317
327 std::vector<std::string> warnings = CreateWarningsList(extension); 318 std::vector<std::string> warnings = CreateWarningsList(extension);
328 results_ = management::GetPermissionWarningsById::Results::Create(warnings); 319 return RespondNow(ArgumentList(
329 return true; 320 management::GetPermissionWarningsById::Results::Create(warnings)));
330 } 321 }
331 322
332 bool ManagementGetPermissionWarningsByManifestFunction::RunAsync() { 323 bool ManagementGetPermissionWarningsByManifestFunction::RunAsync() {
333 std::unique_ptr<management::GetPermissionWarningsByManifest::Params> params( 324 std::unique_ptr<management::GetPermissionWarningsByManifest::Params> params(
334 management::GetPermissionWarningsByManifest::Params::Create(*args_)); 325 management::GetPermissionWarningsByManifest::Params::Create(*args_));
335 EXTENSION_FUNCTION_VALIDATE(params.get()); 326 EXTENSION_FUNCTION_VALIDATE(params.get());
336 327
337 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance() 328 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance()
338 ->Get(browser_context()) 329 ->Get(browser_context())
339 ->GetDelegate(); 330 ->GetDelegate();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 373
383 void ManagementGetPermissionWarningsByManifestFunction::OnParseFailure( 374 void ManagementGetPermissionWarningsByManifestFunction::OnParseFailure(
384 const std::string& error) { 375 const std::string& error) {
385 error_ = error; 376 error_ = error;
386 SendResponse(false); 377 SendResponse(false);
387 378
388 // Matched with AddRef() in RunAsync(). 379 // Matched with AddRef() in RunAsync().
389 Release(); 380 Release();
390 } 381 }
391 382
392 bool ManagementLaunchAppFunction::RunSync() { 383 ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() {
393 std::unique_ptr<management::LaunchApp::Params> params( 384 std::unique_ptr<management::LaunchApp::Params> params(
394 management::LaunchApp::Params::Create(*args_)); 385 management::LaunchApp::Params::Create(*args_));
395 EXTENSION_FUNCTION_VALIDATE(params.get()); 386 EXTENSION_FUNCTION_VALIDATE(params.get());
396 const Extension* extension = 387 const Extension* extension =
397 ExtensionRegistry::Get(browser_context()) 388 ExtensionRegistry::Get(browser_context())
398 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); 389 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING);
399 if (!extension) { 390 if (!extension)
400 error_ = 391 return RespondNow(Error(keys::kNoExtensionError, params->id));
401 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id); 392 if (!extension->is_app())
402 return false; 393 return RespondNow(Error(keys::kNotAnAppError, params->id));
403 }
404 if (!extension->is_app()) {
405 error_ = ErrorUtils::FormatErrorMessage(keys::kNotAnAppError, params->id);
406 return false;
407 }
408 394
409 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance() 395 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance()
410 ->Get(browser_context()) 396 ->Get(browser_context())
411 ->GetDelegate(); 397 ->GetDelegate();
412 return delegate->LaunchAppFunctionDelegate(extension, browser_context()); 398 delegate->LaunchAppFunctionDelegate(extension, browser_context());
399 return RespondNow(NoArguments());
413 } 400 }
414 401
415 ManagementSetEnabledFunction::ManagementSetEnabledFunction() { 402 ManagementSetEnabledFunction::ManagementSetEnabledFunction() {
416 } 403 }
417 404
418 ManagementSetEnabledFunction::~ManagementSetEnabledFunction() { 405 ManagementSetEnabledFunction::~ManagementSetEnabledFunction() {
419 } 406 }
420 407
421 ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() { 408 ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() {
422 std::unique_ptr<management::SetEnabled::Params> params( 409 std::unique_ptr<management::SetEnabled::Params> params(
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
697 ->GetDelegate() 684 ->GetDelegate()
698 ->CreateAppShortcutFunctionDelegate(this, extension)) { 685 ->CreateAppShortcutFunctionDelegate(this, extension)) {
699 // Matched with a Release() in OnCloseShortcutPrompt(). 686 // Matched with a Release() in OnCloseShortcutPrompt().
700 AddRef(); 687 AddRef();
701 } 688 }
702 689
703 // Response is sent async in OnCloseShortcutPrompt(). 690 // Response is sent async in OnCloseShortcutPrompt().
704 return true; 691 return true;
705 } 692 }
706 693
707 bool ManagementSetLaunchTypeFunction::RunSync() { 694 ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() {
708 if (!user_gesture()) { 695 if (!user_gesture())
709 error_ = keys::kGestureNeededForSetLaunchTypeError; 696 return RespondNow(Error(keys::kGestureNeededForSetLaunchTypeError));
710 return false;
711 }
712 697
713 std::unique_ptr<management::SetLaunchType::Params> params( 698 std::unique_ptr<management::SetLaunchType::Params> params(
714 management::SetLaunchType::Params::Create(*args_)); 699 management::SetLaunchType::Params::Create(*args_));
715 EXTENSION_FUNCTION_VALIDATE(params.get()); 700 EXTENSION_FUNCTION_VALIDATE(params.get());
716 const Extension* extension = 701 const Extension* extension =
717 ExtensionRegistry::Get(browser_context()) 702 ExtensionRegistry::Get(browser_context())
718 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); 703 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING);
719 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance() 704 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance()
720 ->Get(browser_context()) 705 ->Get(browser_context())
721 ->GetDelegate(); 706 ->GetDelegate();
722 if (!extension) { 707 if (!extension)
723 error_ = 708 return RespondNow(Error(keys::kNoExtensionError, params->id));
724 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id);
725 return false;
726 }
727 709
728 if (!extension->is_app()) { 710 if (!extension->is_app())
729 error_ = ErrorUtils::FormatErrorMessage(keys::kNotAnAppError, params->id); 711 return RespondNow(Error(keys::kNotAnAppError, params->id));
730 return false;
731 }
732 712
733 std::vector<management::LaunchType> available_launch_types = 713 std::vector<management::LaunchType> available_launch_types =
734 GetAvailableLaunchTypes(*extension, delegate); 714 GetAvailableLaunchTypes(*extension, delegate);
735 715
736 management::LaunchType app_launch_type = params->launch_type; 716 management::LaunchType app_launch_type = params->launch_type;
737 if (std::find(available_launch_types.begin(), available_launch_types.end(), 717 if (std::find(available_launch_types.begin(), available_launch_types.end(),
738 app_launch_type) == available_launch_types.end()) { 718 app_launch_type) == available_launch_types.end()) {
739 error_ = keys::kLaunchTypeNotAvailableError; 719 return RespondNow(Error(keys::kLaunchTypeNotAvailableError));
740 return false;
741 } 720 }
742 721
743 LaunchType launch_type = LAUNCH_TYPE_DEFAULT; 722 LaunchType launch_type = LAUNCH_TYPE_DEFAULT;
744 switch (app_launch_type) { 723 switch (app_launch_type) {
745 case management::LAUNCH_TYPE_OPEN_AS_PINNED_TAB: 724 case management::LAUNCH_TYPE_OPEN_AS_PINNED_TAB:
746 launch_type = LAUNCH_TYPE_PINNED; 725 launch_type = LAUNCH_TYPE_PINNED;
747 break; 726 break;
748 case management::LAUNCH_TYPE_OPEN_AS_REGULAR_TAB: 727 case management::LAUNCH_TYPE_OPEN_AS_REGULAR_TAB:
749 launch_type = LAUNCH_TYPE_REGULAR; 728 launch_type = LAUNCH_TYPE_REGULAR;
750 break; 729 break;
751 case management::LAUNCH_TYPE_OPEN_FULL_SCREEN: 730 case management::LAUNCH_TYPE_OPEN_FULL_SCREEN:
752 launch_type = LAUNCH_TYPE_FULLSCREEN; 731 launch_type = LAUNCH_TYPE_FULLSCREEN;
753 break; 732 break;
754 case management::LAUNCH_TYPE_OPEN_AS_WINDOW: 733 case management::LAUNCH_TYPE_OPEN_AS_WINDOW:
755 launch_type = LAUNCH_TYPE_WINDOW; 734 launch_type = LAUNCH_TYPE_WINDOW;
756 break; 735 break;
757 case management::LAUNCH_TYPE_NONE: 736 case management::LAUNCH_TYPE_NONE:
758 NOTREACHED(); 737 NOTREACHED();
759 } 738 }
760 739
761 delegate->SetLaunchType(browser_context(), params->id, launch_type); 740 delegate->SetLaunchType(browser_context(), params->id, launch_type);
762 741
763 return true; 742 return RespondNow(NoArguments());
764 } 743 }
765 744
766 ManagementGenerateAppForLinkFunction::ManagementGenerateAppForLinkFunction() { 745 ManagementGenerateAppForLinkFunction::ManagementGenerateAppForLinkFunction() {
767 } 746 }
768 747
769 ManagementGenerateAppForLinkFunction::~ManagementGenerateAppForLinkFunction() { 748 ManagementGenerateAppForLinkFunction::~ManagementGenerateAppForLinkFunction() {
770 } 749 }
771 750
772 void ManagementGenerateAppForLinkFunction::FinishCreateBookmarkApp( 751 void ManagementGenerateAppForLinkFunction::FinishCreateBookmarkApp(
773 const Extension* extension, 752 const Extension* extension,
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 ManagementAPI::GetFactoryInstance() { 882 ManagementAPI::GetFactoryInstance() {
904 return g_factory.Pointer(); 883 return g_factory.Pointer();
905 } 884 }
906 885
907 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { 886 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) {
908 management_event_router_.reset(new ManagementEventRouter(browser_context_)); 887 management_event_router_.reset(new ManagementEventRouter(browser_context_));
909 EventRouter::Get(browser_context_)->UnregisterObserver(this); 888 EventRouter::Get(browser_context_)->UnregisterObserver(this);
910 } 889 }
911 890
912 } // namespace extensions 891 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/api/management/management_api.h ('k') | extensions/browser/api/management/management_api_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698