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

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

Issue 2783813002: Move ChromeRequirementsChecker to //extensions as a PreloadCheck (Closed)
Patch Set: rebase? Created 3 years, 8 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 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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