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/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 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 SendResponse(true); | 500 SendResponse(true); |
501 Release(); | 501 Release(); |
502 } | 502 } |
503 | 503 |
504 void ManagementSetEnabledFunction::InstallUIAbort(bool user_initiated) { | 504 void ManagementSetEnabledFunction::InstallUIAbort(bool user_initiated) { |
505 error_ = keys::kUserDidNotReEnableError; | 505 error_ = keys::kUserDidNotReEnableError; |
506 SendResponse(false); | 506 SendResponse(false); |
507 Release(); | 507 Release(); |
508 } | 508 } |
509 | 509 |
510 ManagementUninstallFunction::ManagementUninstallFunction() { | 510 ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() { |
511 } | 511 } |
512 | 512 |
513 ManagementUninstallFunction::~ManagementUninstallFunction() { | 513 ManagementUninstallFunctionBase::~ManagementUninstallFunctionBase() { |
514 } | 514 } |
515 | 515 |
516 bool ManagementUninstallFunction::RunImpl() { | 516 bool ManagementUninstallFunctionBase::Uninstall( |
517 scoped_ptr<management::Uninstall::Params> params( | 517 const std::string& extension_id, |
518 management::Uninstall::Params::Create(*args_)); | 518 bool show_confirm_dialog) { |
519 EXTENSION_FUNCTION_VALIDATE(params.get()); | 519 extension_id_ = extension_id; |
520 | |
521 extension_id_ = params->id; | |
522 | |
523 bool show_confirm_dialog = false; | |
524 if (params->options.get() && params->options->show_confirm_dialog.get()) | |
525 show_confirm_dialog = *params->options->show_confirm_dialog; | |
526 | |
527 const Extension* extension = service()->GetExtensionById(extension_id_, true); | 520 const Extension* extension = service()->GetExtensionById(extension_id_, true); |
528 if (!extension) { | 521 if (!extension) { |
529 error_ = ErrorUtils::FormatErrorMessage( | 522 error_ = ErrorUtils::FormatErrorMessage( |
530 keys::kNoExtensionError, extension_id_); | 523 keys::kNoExtensionError, extension_id_); |
531 return false; | 524 return false; |
532 } | 525 } |
533 | 526 |
534 if (!ExtensionSystem::Get(profile())->management_policy()-> | 527 if (!ExtensionSystem::Get(profile())->management_policy()-> |
535 UserMayModifySettings(extension, NULL)) { | 528 UserMayModifySettings(extension, NULL)) { |
536 error_ = ErrorUtils::FormatErrorMessage( | 529 error_ = ErrorUtils::FormatErrorMessage( |
(...skipping 11 matching lines...) Expand all Loading... |
548 Finish(true); | 541 Finish(true); |
549 } | 542 } |
550 } else { | 543 } else { |
551 Finish(auto_confirm_for_test == PROCEED); | 544 Finish(auto_confirm_for_test == PROCEED); |
552 } | 545 } |
553 | 546 |
554 return true; | 547 return true; |
555 } | 548 } |
556 | 549 |
557 // static | 550 // static |
558 void ManagementUninstallFunction::SetAutoConfirmForTest(bool should_proceed) { | 551 void ManagementUninstallFunctionBase::SetAutoConfirmForTest( |
| 552 bool should_proceed) { |
559 auto_confirm_for_test = should_proceed ? PROCEED : ABORT; | 553 auto_confirm_for_test = should_proceed ? PROCEED : ABORT; |
560 } | 554 } |
561 | 555 |
562 void ManagementUninstallFunction::Finish(bool should_uninstall) { | 556 void ManagementUninstallFunctionBase::Finish(bool should_uninstall) { |
563 if (should_uninstall) { | 557 if (should_uninstall) { |
564 bool success = service()->UninstallExtension( | 558 bool success = service()->UninstallExtension( |
565 extension_id_, | 559 extension_id_, |
566 false, /* external uninstall */ | 560 false, /* external uninstall */ |
567 NULL); | 561 NULL); |
568 | 562 |
569 // TODO set error_ if !success | 563 // TODO set error_ if !success |
570 SendResponse(success); | 564 SendResponse(success); |
571 } else { | 565 } else { |
572 error_ = ErrorUtils::FormatErrorMessage( | 566 error_ = ErrorUtils::FormatErrorMessage( |
573 keys::kUninstallCanceledError, extension_id_); | 567 keys::kUninstallCanceledError, extension_id_); |
574 SendResponse(false); | 568 SendResponse(false); |
575 } | 569 } |
576 | 570 |
577 } | 571 } |
578 | 572 |
579 void ManagementUninstallFunction::ExtensionUninstallAccepted() { | 573 void ManagementUninstallFunctionBase::ExtensionUninstallAccepted() { |
580 Finish(true); | 574 Finish(true); |
581 Release(); | 575 Release(); |
582 } | 576 } |
583 | 577 |
584 void ManagementUninstallFunction::ExtensionUninstallCanceled() { | 578 void ManagementUninstallFunctionBase::ExtensionUninstallCanceled() { |
585 Finish(false); | 579 Finish(false); |
586 Release(); | 580 Release(); |
587 } | 581 } |
588 | 582 |
| 583 ManagementUninstallFunction::ManagementUninstallFunction() { |
| 584 } |
| 585 |
| 586 ManagementUninstallFunction::~ManagementUninstallFunction() { |
| 587 } |
| 588 |
| 589 bool ManagementUninstallFunction::RunImpl() { |
| 590 scoped_ptr<management::Uninstall::Params> params( |
| 591 management::Uninstall::Params::Create(*args_)); |
| 592 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 593 |
| 594 bool show_confirm_dialog = false; |
| 595 if (params->options.get() && params->options->show_confirm_dialog.get()) |
| 596 show_confirm_dialog = *params->options->show_confirm_dialog; |
| 597 |
| 598 return Uninstall(params->id, show_confirm_dialog); |
| 599 } |
| 600 |
| 601 ManagementUninstallSelfFunction::ManagementUninstallSelfFunction() { |
| 602 } |
| 603 |
| 604 ManagementUninstallSelfFunction::~ManagementUninstallSelfFunction() { |
| 605 } |
| 606 |
| 607 bool ManagementUninstallSelfFunction::RunImpl() { |
| 608 scoped_ptr<management::UninstallSelf::Params> params( |
| 609 management::UninstallSelf::Params::Create(*args_)); |
| 610 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 611 |
| 612 bool show_confirm_dialog = false; |
| 613 if (params->options.get() && params->options->show_confirm_dialog.get()) |
| 614 show_confirm_dialog = *params->options->show_confirm_dialog; |
| 615 return Uninstall(extension_->id(), show_confirm_dialog); |
| 616 } |
| 617 |
589 ManagementEventRouter::ManagementEventRouter(Profile* profile) | 618 ManagementEventRouter::ManagementEventRouter(Profile* profile) |
590 : profile_(profile) { | 619 : profile_(profile) { |
591 int types[] = { | 620 int types[] = { |
592 chrome::NOTIFICATION_EXTENSION_INSTALLED, | 621 chrome::NOTIFICATION_EXTENSION_INSTALLED, |
593 chrome::NOTIFICATION_EXTENSION_UNINSTALLED, | 622 chrome::NOTIFICATION_EXTENSION_UNINSTALLED, |
594 chrome::NOTIFICATION_EXTENSION_LOADED, | 623 chrome::NOTIFICATION_EXTENSION_LOADED, |
595 chrome::NOTIFICATION_EXTENSION_UNLOADED | 624 chrome::NOTIFICATION_EXTENSION_UNLOADED |
596 }; | 625 }; |
597 | 626 |
598 CHECK(registrar_.IsEmpty()); | 627 CHECK(registrar_.IsEmpty()); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
679 ProfileKeyedAPIFactory<ManagementAPI>* ManagementAPI::GetFactoryInstance() { | 708 ProfileKeyedAPIFactory<ManagementAPI>* ManagementAPI::GetFactoryInstance() { |
680 return &g_factory.Get(); | 709 return &g_factory.Get(); |
681 } | 710 } |
682 | 711 |
683 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { | 712 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { |
684 management_event_router_.reset(new ManagementEventRouter(profile_)); | 713 management_event_router_.reset(new ManagementEventRouter(profile_)); |
685 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); | 714 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); |
686 } | 715 } |
687 | 716 |
688 } // namespace extensions | 717 } // namespace extensions |
OLD | NEW |