1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/extensions/extension_installer.h" 6 7 #include "base/bind.h" 8 #include "chrome/browser/profiles/profile.h" 9 #include "content/public/browser/browser_thread.h" 10 #include "extensions/browser/extension_system.h" 11 #include "extensions/browser/management_policy.h" 12 13 namespace extensions { 14 15 ExtensionInstaller::ExtensionInstaller(Profile* profile) 16 : requirements_checker_(new RequirementsChecker()), 17 profile_(profile), 18 weak_ptr_factory_(this) { 19 } 20 21 ExtensionInstaller::~ExtensionInstaller() { 22 } 23 24 void ExtensionInstaller::CheckRequirements( 25 const RequirementsCallback& callback) { 26 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 27 requirements_checker_->Check(extension_, callback); 28 } 29 30 base::string16 ExtensionInstaller::CheckManagementPolicy() { 31 base::string16 error; 32 bool allowed = ExtensionSystem::Get(profile_)->management_policy() 33 ->UserMayLoad(extension_.get(), &error); 34 DCHECK(allowed || !error.empty()); 35 return error; 36 } 37 38 } // namespace extensions 39