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

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

Issue 257333002: Drive extension functions from ExtensionFunction::Run. The (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase, fix test Created 6 years, 7 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 | Annotate | Revision Log
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 "chrome/browser/extensions/api/management/management_api.h" 5 #include "chrome/browser/extensions/api/management/management_api.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 std::string manifest_; 366 std::string manifest_;
367 367
368 // Results of parsing. 368 // Results of parsing.
369 scoped_ptr<base::DictionaryValue> parsed_manifest_; 369 scoped_ptr<base::DictionaryValue> parsed_manifest_;
370 370
371 std::string error_; 371 std::string error_;
372 }; 372 };
373 373
374 } // namespace 374 } // namespace
375 375
376 bool ManagementGetPermissionWarningsByManifestFunction::RunImpl() { 376 bool ManagementGetPermissionWarningsByManifestFunction::RunAsync() {
377 scoped_ptr<management::GetPermissionWarningsByManifest::Params> params( 377 scoped_ptr<management::GetPermissionWarningsByManifest::Params> params(
378 management::GetPermissionWarningsByManifest::Params::Create(*args_)); 378 management::GetPermissionWarningsByManifest::Params::Create(*args_));
379 EXTENSION_FUNCTION_VALIDATE(params.get()); 379 EXTENSION_FUNCTION_VALIDATE(params.get());
380 380
381 scoped_refptr<SafeManifestJSONParser> parser = 381 scoped_refptr<SafeManifestJSONParser> parser =
382 new SafeManifestJSONParser(this, params->manifest_str); 382 new SafeManifestJSONParser(this, params->manifest_str);
383 parser->Start(); 383 parser->Start();
384 384
385 // Matched with a Release() in OnParseSuccess/Failure(). 385 // Matched with a Release() in OnParseSuccess/Failure().
386 AddRef(); 386 AddRef();
(...skipping 12 matching lines...) Expand all
399 if (!extension.get()) { 399 if (!extension.get()) {
400 OnParseFailure(keys::kExtensionCreateError); 400 OnParseFailure(keys::kExtensionCreateError);
401 return; 401 return;
402 } 402 }
403 403
404 std::vector<std::string> warnings = CreateWarningsList(extension.get()); 404 std::vector<std::string> warnings = CreateWarningsList(extension.get());
405 results_ = 405 results_ =
406 management::GetPermissionWarningsByManifest::Results::Create(warnings); 406 management::GetPermissionWarningsByManifest::Results::Create(warnings);
407 SendResponse(true); 407 SendResponse(true);
408 408
409 // Matched with AddRef() in RunImpl(). 409 // Matched with AddRef() in RunAsync().
410 Release(); 410 Release();
411 } 411 }
412 412
413 void ManagementGetPermissionWarningsByManifestFunction::OnParseFailure( 413 void ManagementGetPermissionWarningsByManifestFunction::OnParseFailure(
414 const std::string& error) { 414 const std::string& error) {
415 error_ = error; 415 error_ = error;
416 SendResponse(false); 416 SendResponse(false);
417 417
418 // Matched with AddRef() in RunImpl(). 418 // Matched with AddRef() in RunAsync().
419 Release(); 419 Release();
420 } 420 }
421 421
422 bool ManagementLaunchAppFunction::RunSync() { 422 bool ManagementLaunchAppFunction::RunSync() {
423 scoped_ptr<management::LaunchApp::Params> params( 423 scoped_ptr<management::LaunchApp::Params> params(
424 management::LaunchApp::Params::Create(*args_)); 424 management::LaunchApp::Params::Create(*args_));
425 EXTENSION_FUNCTION_VALIDATE(params.get()); 425 EXTENSION_FUNCTION_VALIDATE(params.get());
426 const Extension* extension = service()->GetExtensionById(params->id, true); 426 const Extension* extension = service()->GetExtensionById(params->id, true);
427 if (!extension) { 427 if (!extension) {
428 error_ = ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, 428 error_ = ErrorUtils::FormatErrorMessage(keys::kNoExtensionError,
(...skipping 21 matching lines...) Expand all
450 450
451 return true; 451 return true;
452 } 452 }
453 453
454 ManagementSetEnabledFunction::ManagementSetEnabledFunction() { 454 ManagementSetEnabledFunction::ManagementSetEnabledFunction() {
455 } 455 }
456 456
457 ManagementSetEnabledFunction::~ManagementSetEnabledFunction() { 457 ManagementSetEnabledFunction::~ManagementSetEnabledFunction() {
458 } 458 }
459 459
460 bool ManagementSetEnabledFunction::RunImpl() { 460 bool ManagementSetEnabledFunction::RunAsync() {
461 scoped_ptr<management::SetEnabled::Params> params( 461 scoped_ptr<management::SetEnabled::Params> params(
462 management::SetEnabled::Params::Create(*args_)); 462 management::SetEnabled::Params::Create(*args_));
463 EXTENSION_FUNCTION_VALIDATE(params.get()); 463 EXTENSION_FUNCTION_VALIDATE(params.get());
464 464
465 extension_id_ = params->id; 465 extension_id_ = params->id;
466 466
467 const Extension* extension = service()->GetInstalledExtension(extension_id_); 467 const Extension* extension = service()->GetInstalledExtension(extension_id_);
468 if (!extension || extension->ShouldNotBeVisible()) { 468 if (!extension || extension->ShouldNotBeVisible()) {
469 error_ = ErrorUtils::FormatErrorMessage( 469 error_ = ErrorUtils::FormatErrorMessage(
470 keys::kNoExtensionError, extension_id_); 470 keys::kNoExtensionError, extension_id_);
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 Finish(false); 601 Finish(false);
602 Release(); 602 Release();
603 } 603 }
604 604
605 ManagementUninstallFunction::ManagementUninstallFunction() { 605 ManagementUninstallFunction::ManagementUninstallFunction() {
606 } 606 }
607 607
608 ManagementUninstallFunction::~ManagementUninstallFunction() { 608 ManagementUninstallFunction::~ManagementUninstallFunction() {
609 } 609 }
610 610
611 bool ManagementUninstallFunction::RunImpl() { 611 bool ManagementUninstallFunction::RunAsync() {
612 scoped_ptr<management::Uninstall::Params> params( 612 scoped_ptr<management::Uninstall::Params> params(
613 management::Uninstall::Params::Create(*args_)); 613 management::Uninstall::Params::Create(*args_));
614 EXTENSION_FUNCTION_VALIDATE(extension_); 614 EXTENSION_FUNCTION_VALIDATE(extension_);
615 EXTENSION_FUNCTION_VALIDATE(params.get()); 615 EXTENSION_FUNCTION_VALIDATE(params.get());
616 616
617 bool show_confirm_dialog = true; 617 bool show_confirm_dialog = true;
618 // By default confirmation dialog isn't shown when uninstalling self, but this 618 // By default confirmation dialog isn't shown when uninstalling self, but this
619 // can be overridden with showConfirmDialog. 619 // can be overridden with showConfirmDialog.
620 if (params->id == extension_->id()) { 620 if (params->id == extension_->id()) {
621 show_confirm_dialog = params->options.get() && 621 show_confirm_dialog = params->options.get() &&
622 params->options->show_confirm_dialog.get() && 622 params->options->show_confirm_dialog.get() &&
623 *params->options->show_confirm_dialog; 623 *params->options->show_confirm_dialog;
624 } 624 }
625 if (show_confirm_dialog && !user_gesture()) { 625 if (show_confirm_dialog && !user_gesture()) {
626 error_ = keys::kGestureNeededForUninstallError; 626 error_ = keys::kGestureNeededForUninstallError;
627 return false; 627 return false;
628 } 628 }
629 return Uninstall(params->id, show_confirm_dialog); 629 return Uninstall(params->id, show_confirm_dialog);
630 } 630 }
631 631
632 ManagementUninstallSelfFunction::ManagementUninstallSelfFunction() { 632 ManagementUninstallSelfFunction::ManagementUninstallSelfFunction() {
633 } 633 }
634 634
635 ManagementUninstallSelfFunction::~ManagementUninstallSelfFunction() { 635 ManagementUninstallSelfFunction::~ManagementUninstallSelfFunction() {
636 } 636 }
637 637
638 bool ManagementUninstallSelfFunction::RunImpl() { 638 bool ManagementUninstallSelfFunction::RunAsync() {
639 scoped_ptr<management::UninstallSelf::Params> params( 639 scoped_ptr<management::UninstallSelf::Params> params(
640 management::UninstallSelf::Params::Create(*args_)); 640 management::UninstallSelf::Params::Create(*args_));
641 EXTENSION_FUNCTION_VALIDATE(params.get()); 641 EXTENSION_FUNCTION_VALIDATE(params.get());
642 642
643 bool show_confirm_dialog = false; 643 bool show_confirm_dialog = false;
644 if (params->options.get() && params->options->show_confirm_dialog.get()) 644 if (params->options.get() && params->options->show_confirm_dialog.get())
645 show_confirm_dialog = *params->options->show_confirm_dialog; 645 show_confirm_dialog = *params->options->show_confirm_dialog;
646 return Uninstall(extension_->id(), show_confirm_dialog); 646 return Uninstall(extension_->id(), show_confirm_dialog);
647 } 647 }
648 648
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 return g_factory.Pointer(); 740 return g_factory.Pointer();
741 } 741 }
742 742
743 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { 743 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) {
744 management_event_router_.reset( 744 management_event_router_.reset(
745 new ManagementEventRouter(Profile::FromBrowserContext(browser_context_))); 745 new ManagementEventRouter(Profile::FromBrowserContext(browser_context_)));
746 EventRouter::Get(browser_context_)->UnregisterObserver(this); 746 EventRouter::Get(browser_context_)->UnregisterObserver(this);
747 } 747 }
748 748
749 } // namespace extensions 749 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698