• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
ExtensionInstaller(Profile * profile)15 ExtensionInstaller::ExtensionInstaller(Profile* profile)
16     : requirements_checker_(new RequirementsChecker()),
17       profile_(profile),
18       weak_ptr_factory_(this) {
19 }
20 
~ExtensionInstaller()21 ExtensionInstaller::~ExtensionInstaller() {
22 }
23 
CheckRequirements(const RequirementsCallback & callback)24 void ExtensionInstaller::CheckRequirements(
25     const RequirementsCallback& callback) {
26   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
27   requirements_checker_->Check(extension_, callback);
28 }
29 
CheckManagementPolicy()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