| 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 "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 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 | 440 |
| 441 AddRef(); // Matched in OnInstallPromptDone(). | 441 AddRef(); // Matched in OnInstallPromptDone(). |
| 442 install_prompt_ = delegate->SetEnabledFunctionDelegate( | 442 install_prompt_ = delegate->SetEnabledFunctionDelegate( |
| 443 GetSenderWebContents(), browser_context(), extension, | 443 GetSenderWebContents(), browser_context(), extension, |
| 444 base::Bind(&ManagementSetEnabledFunction::OnInstallPromptDone, this)); | 444 base::Bind(&ManagementSetEnabledFunction::OnInstallPromptDone, this)); |
| 445 return RespondLater(); | 445 return RespondLater(); |
| 446 } | 446 } |
| 447 if (prefs->GetDisableReasons(extension_id_) & | 447 if (prefs->GetDisableReasons(extension_id_) & |
| 448 Extension::DISABLE_UNSUPPORTED_REQUIREMENT) { | 448 Extension::DISABLE_UNSUPPORTED_REQUIREMENT) { |
| 449 // Recheck the requirements. | 449 // Recheck the requirements. |
| 450 requirements_checker_ = delegate->CreateRequirementsChecker(); | 450 requirements_checker_ = base::MakeUnique<RequirementsChecker>(extension); |
| 451 requirements_checker_->Check( | 451 requirements_checker_->Start( |
| 452 extension, | |
| 453 base::Bind(&ManagementSetEnabledFunction::OnRequirementsChecked, | 452 base::Bind(&ManagementSetEnabledFunction::OnRequirementsChecked, |
| 454 this)); // This bind creates a reference. | 453 this)); // This bind creates a reference. |
| 455 return RespondLater(); | 454 return RespondLater(); |
| 456 } | 455 } |
| 457 delegate->EnableExtension(browser_context(), extension_id_); | 456 delegate->EnableExtension(browser_context(), extension_id_); |
| 458 } else if (currently_enabled && !params->enabled) { | 457 } else if (currently_enabled && !params->enabled) { |
| 459 delegate->DisableExtension(browser_context(), extension_id_, | 458 delegate->DisableExtension(browser_context(), extension_id_, |
| 460 Extension::DISABLE_USER_ACTION); | 459 Extension::DISABLE_USER_ACTION); |
| 461 } | 460 } |
| 462 | 461 |
| 463 return RespondNow(NoArguments()); | 462 return RespondNow(NoArguments()); |
| 464 } | 463 } |
| 465 | 464 |
| 466 void ManagementSetEnabledFunction::OnInstallPromptDone(bool did_accept) { | 465 void ManagementSetEnabledFunction::OnInstallPromptDone(bool did_accept) { |
| 467 if (did_accept) { | 466 if (did_accept) { |
| 468 ManagementAPI::GetFactoryInstance() | 467 ManagementAPI::GetFactoryInstance() |
| 469 ->Get(browser_context()) | 468 ->Get(browser_context()) |
| 470 ->GetDelegate() | 469 ->GetDelegate() |
| 471 ->EnableExtension(browser_context(), extension_id_); | 470 ->EnableExtension(browser_context(), extension_id_); |
| 472 Respond(OneArgument(base::MakeUnique<base::Value>(true))); | 471 Respond(OneArgument(base::MakeUnique<base::Value>(true))); |
| 473 } else { | 472 } else { |
| 474 Respond(Error(keys::kUserDidNotReEnableError)); | 473 Respond(Error(keys::kUserDidNotReEnableError)); |
| 475 } | 474 } |
| 476 | 475 |
| 477 Release(); // Balanced in Run(). | 476 Release(); // Balanced in Run(). |
| 478 } | 477 } |
| 479 | 478 |
| 480 void ManagementSetEnabledFunction::OnRequirementsChecked( | 479 void ManagementSetEnabledFunction::OnRequirementsChecked( |
| 481 const std::vector<std::string>& requirements_errors) { | 480 PreloadCheck::Errors errors) { |
| 482 if (requirements_errors.empty()) { | 481 if (errors.empty()) { |
| 483 ManagementAPI::GetFactoryInstance()->Get(browser_context())->GetDelegate()-> | 482 ManagementAPI::GetFactoryInstance()->Get(browser_context())->GetDelegate()-> |
| 484 EnableExtension(browser_context(), extension_id_); | 483 EnableExtension(browser_context(), extension_id_); |
| 485 Respond(NoArguments()); | 484 Respond(NoArguments()); |
| 486 } else { | 485 } else { |
| 487 // TODO(devlin): Should we really be noisy here all the time? | 486 // TODO(devlin): Should we really be noisy here all the time? |
| 488 Respond(Error(keys::kMissingRequirementsError, | 487 Respond(Error(keys::kMissingRequirementsError, |
| 489 base::JoinString(requirements_errors, " "))); | 488 base::UTF16ToUTF8(requirements_checker_->GetErrorMessage()))); |
| 490 } | 489 } |
| 491 } | 490 } |
| 492 | 491 |
| 493 ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() { | 492 ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() { |
| 494 } | 493 } |
| 495 | 494 |
| 496 ManagementUninstallFunctionBase::~ManagementUninstallFunctionBase() { | 495 ManagementUninstallFunctionBase::~ManagementUninstallFunctionBase() { |
| 497 } | 496 } |
| 498 | 497 |
| 499 ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( | 498 ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( |
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 866 ManagementAPI::GetFactoryInstance() { | 865 ManagementAPI::GetFactoryInstance() { |
| 867 return g_factory.Pointer(); | 866 return g_factory.Pointer(); |
| 868 } | 867 } |
| 869 | 868 |
| 870 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { | 869 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { |
| 871 management_event_router_.reset(new ManagementEventRouter(browser_context_)); | 870 management_event_router_.reset(new ManagementEventRouter(browser_context_)); |
| 872 EventRouter::Get(browser_context_)->UnregisterObserver(this); | 871 EventRouter::Get(browser_context_)->UnregisterObserver(this); |
| 873 } | 872 } |
| 874 | 873 |
| 875 } // namespace extensions | 874 } // namespace extensions |
| OLD | NEW |