| 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 |