- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / extension_installer.cc
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/extensions/extension_system.h"
9 #include "chrome/browser/extensions/management_policy.h"
10 #include "chrome/browser/profiles/profile.h"
11 #include "content/public/browser/browser_thread.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(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
27   requirements_checker_->Check(extension_, callback);
28 }
29
30 string16 ExtensionInstaller::CheckManagementPolicy() {
31   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