Update the CrxInstaller and UnpackedInstaller to use the ExtensionInstallChecker

This patch removes the deprecated ExtensionInstaller and uses
ExtensionInstallChecker in CrxInstaller and UnpackedInstaller.

BUG=386404
TEST=browser_tests
[email protected] (for include in supervised_user_service_unittest.cc)

Review URL: https://codereview.chromium.org/381553002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282250 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/crx_installer_browsertest.cc b/chrome/browser/extensions/crx_installer_browsertest.cc
index fe4ff281..6521239 100644
--- a/chrome/browser/extensions/crx_installer_browsertest.cc
+++ b/chrome/browser/extensions/crx_installer_browsertest.cc
@@ -4,6 +4,7 @@
 
 #include "base/at_exit.h"
 #include "base/memory/ref_counted.h"
+#include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/download/download_crx_util.h"
 #include "chrome/browser/extensions/browser_action_test_util.h"
 #include "chrome/browser/extensions/crx_installer.h"
@@ -24,6 +25,7 @@
 #include "content/public/test/download_test_observer.h"
 #include "extensions/browser/extension_prefs.h"
 #include "extensions/browser/extension_system.h"
+#include "extensions/browser/management_policy.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/feature_switch.h"
 #include "extensions/common/file_util.h"
@@ -137,6 +139,21 @@
       browser->tab_strip_model()->GetActiveWebContents());
 }
 
+class ManagementPolicyMock : public extensions::ManagementPolicy::Provider {
+ public:
+  ManagementPolicyMock() {}
+
+  virtual std::string GetDebugPolicyProviderName() const OVERRIDE {
+    return "ManagementPolicyMock";
+  }
+
+  virtual bool UserMayLoad(const Extension* extension,
+                           base::string16* error) const OVERRIDE {
+    *error = base::UTF8ToUTF16("Dummy error message");
+    return false;
+  }
+};
+
 }  // namespace
 
 class ExtensionCrxInstallerTest : public ExtensionBrowserTest {
@@ -550,4 +567,14 @@
                                                browser()->profile()));
 }
 
+IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, ManagementPolicy) {
+  ManagementPolicyMock policy;
+  extensions::ExtensionSystem::Get(profile())
+      ->management_policy()
+      ->RegisterProvider(&policy);
+
+  base::FilePath crx_path = test_data_dir_.AppendASCII("crx_installer/v1.crx");
+  EXPECT_FALSE(InstallExtension(crx_path, 0));
+}
+
 }  // namespace extensions