Move Extension Location and Type enums to Manifest, and move InstallWarning to its own file.

Reverses the dependency between Extension and Manifest.
Part 1 of moving Manifest to top-level extensions.

BUG=162530
[email protected]


Review URL: https://chromiumcodereview.appspot.com/12093036

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179828 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 8d72c59..3ea33e9 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -86,7 +86,6 @@
 #include "chrome/common/extensions/extension_resource.h"
 #include "chrome/common/extensions/feature_switch.h"
 #include "chrome/common/extensions/features/feature.h"
-#include "chrome/common/extensions/manifest.h"
 #include "chrome/common/extensions/manifest_url_handler.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/startup_metric_utils.h"
@@ -126,6 +125,7 @@
 using extensions::ExtensionIdSet;
 using extensions::ExtensionInfo;
 using extensions::FeatureSwitch;
+using extensions::Manifest;
 using extensions::PermissionMessage;
 using extensions::PermissionMessages;
 using extensions::PermissionSet;
@@ -244,7 +244,7 @@
 bool ExtensionService::OnExternalExtensionUpdateUrlFound(
     const std::string& id,
     const GURL& update_url,
-    Extension::Location location) {
+    Manifest::Location location) {
   CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
   CHECK(Extension::IdIsValid(id));
 
@@ -252,8 +252,8 @@
   if (extension) {
     // Already installed. Skip this install if the current location has
     // higher priority than |location|.
-    Extension::Location current = extension->location();
-    if (current == Extension::GetHigherPriorityLocation(current, location))
+    Manifest::Location current = extension->location();
+    if (current == Manifest::GetHigherPriorityLocation(current, location))
       return false;
     // Otherwise, overwrite the current installation.
   }
@@ -820,7 +820,7 @@
                                            external_uninstall);
 
   // Tell the backend to start deleting installed extensions on the file thread.
-  if (Extension::LOAD != extension->location()) {
+  if (Manifest::LOAD != extension->location()) {
     if (!GetFileTaskRunner()->PostTask(
             FROM_HERE,
             base::Bind(
@@ -1580,7 +1580,7 @@
     return false;
   // If this is an existing component extension we always allow it to
   // work in incognito mode.
-  if (extension && extension->location() == Extension::COMPONENT)
+  if (extension && extension->location() == Manifest::COMPONENT)
     return true;
 
   // Check the prefs.
@@ -1592,7 +1592,7 @@
   const Extension* extension = GetInstalledExtension(extension_id);
   if (extension && !extension->can_be_incognito_enabled())
     return;
-  if (extension && extension->location() == Extension::COMPONENT) {
+  if (extension && extension->location() == Manifest::COMPONENT) {
     // This shouldn't be called for component extensions unless they are
     // syncable.
     DCHECK(extension->IsSyncable());
@@ -1781,7 +1781,7 @@
       extension_prefs_->GetInstalledExtensionsInfo());
   for (size_t i = 0; i < extensions_info->size(); ++i) {
     ExtensionInfo* info = extensions_info->at(i).get();
-    if (Extension::IsExternalLocation(info->extension_location))
+    if (Manifest::IsExternalLocation(info->extension_location))
       CheckExternalUninstall(info->extension_id);
   }
   IdentifyAlertableExtensions();
@@ -1868,7 +1868,7 @@
   if (!FeatureSwitch::prompt_for_external_extensions()->IsEnabled())
     return false;
 
-  return (Extension::IsExternalLocation(extension->location()) &&
+  return (Manifest::IsExternalLocation(extension->location()) &&
           !extension_prefs_->IsExternalExtensionAcknowledged(extension->id()) &&
           !(extension_prefs_->GetDisableReasons(extension->id()) &
                 Extension::DISABLE_SIDELOAD_WIPEOUT));
@@ -2051,8 +2051,8 @@
   // is set (http://crbug.com/29067).
   if (!extensions_enabled() &&
       !extension->is_theme() &&
-      extension->location() != Extension::COMPONENT &&
-      !Extension::IsExternalLocation(extension->location())) {
+      extension->location() != Manifest::COMPONENT &&
+      !Manifest::IsExternalLocation(extension->location())) {
     return;
   }
 
@@ -2230,7 +2230,7 @@
   if (is_extension_upgrade) {
     // Other than for unpacked extensions, CrxInstaller should have guaranteed
     // that we aren't downgrading.
-    if (extension->location() != Extension::LOAD)
+    if (extension->location() != Manifest::LOAD)
       CHECK_GE(extension->version()->CompareTo(*(old->version())), 0);
 
     // Extensions get upgraded if the privileges are allowed to increase or
@@ -2288,11 +2288,11 @@
   if (!wipeout_is_active_)
     return;
 
-  if (extension->GetType() != Extension::TYPE_EXTENSION)
+  if (extension->GetType() != Manifest::TYPE_EXTENSION)
     return;
 
-  Extension::Location location = extension->location();
-  if (location != Extension::EXTERNAL_REGISTRY)
+  Manifest::Location location = extension->location();
+  if (location != Manifest::EXTERNAL_REGISTRY)
     return;
 
   if (extension_prefs_->IsExternalExtensionExcludedFromWipeout(extension->id()))
@@ -2315,7 +2315,7 @@
   for (ExtensionSet::const_iterator iter = extensions_.begin();
        iter != extensions_.end(); ++iter) {
     const Extension* extension = *iter;
-    if (!extension->is_theme() && extension->location() != Extension::COMPONENT)
+    if (!extension->is_theme() && extension->location() != Manifest::COMPONENT)
       extension_ids.insert(extension->id());
   }
 
@@ -2386,19 +2386,19 @@
     UMA_HISTOGRAM_ENUMERATION("Extensions.InstallType",
                               extension->GetType(), 100);
     UMA_HISTOGRAM_ENUMERATION("Extensions.InstallSource",
-                              extension->location(), Extension::NUM_LOCATIONS);
+                              extension->location(), Manifest::NUM_LOCATIONS);
     RecordPermissionMessagesHistogram(
         extension, "Extensions.Permissions_Install");
   } else {
     UMA_HISTOGRAM_ENUMERATION("Extensions.UpdateType",
                               extension->GetType(), 100);
     UMA_HISTOGRAM_ENUMERATION("Extensions.UpdateSource",
-                              extension->location(), Extension::NUM_LOCATIONS);
+                              extension->location(), Manifest::NUM_LOCATIONS);
   }
 
   // Certain extension locations are specific enough that we can
   // auto-acknowledge any extension that came from one of them.
-  if (extension->location() == Extension::EXTERNAL_POLICY_DOWNLOAD)
+  if (extension->location() == Manifest::EXTERNAL_POLICY_DOWNLOAD)
     AcknowledgeExternalExtension(extension->id());
   const Extension::State initial_state =
       initial_enable ? Extension::ENABLED : Extension::DISABLED;
@@ -2473,7 +2473,7 @@
 
   // Unpacked extensions default to allowing file access, but if that has been
   // overridden, don't reset the value.
-  if (Extension::ShouldAlwaysAllowFileAccess(extension->location()) &&
+  if (Manifest::ShouldAlwaysAllowFileAccess(extension->location()) &&
       !extension_prefs_->HasAllowFileAccessSetting(extension->id())) {
     extension_prefs_->SetAllowFileAccess(extension->id(), true);
   }
@@ -2541,7 +2541,7 @@
   const Extension* extension = extensions_.GetExtensionOrAppByURL(
       ExtensionURLInfo(url));
   return extension && (!extension->is_hosted_app() ||
-                       extension->location() == Extension::COMPONENT);
+                       extension->location() == Manifest::COMPONENT);
 }
 
 bool ExtensionService::ShouldBlockUrlInBrowserTab(GURL* url) {
@@ -2559,7 +2559,7 @@
          const std::string& id,
          const Version* version,
          const FilePath& path,
-         Extension::Location location,
+         Manifest::Location location,
          int creation_flags,
          bool mark_acknowledged) {
   CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -2578,8 +2578,8 @@
     // app is already installed as internal, then do the version check.
     // TODO(grv) : Remove after Q1-2013.
     bool is_default_apps_migration =
-        (location == Extension::INTERNAL &&
-         Extension::IsExternalLocation(existing->location()));
+        (location == Manifest::INTERNAL &&
+         Manifest::IsExternalLocation(existing->location()));
 
     if (!is_default_apps_migration) {
       DCHECK(version);
@@ -2775,7 +2775,7 @@
   ExtensionIdSet result;
   for (ExtensionSet::const_iterator it = extensions_.begin();
        it != extensions_.end(); ++it) {
-    if ((*it)->is_app() && (*it)->location() != Extension::COMPONENT)
+    if ((*it)->is_app() && (*it)->location() != Manifest::COMPONENT)
       result.insert((*it)->id());
   }
 
@@ -2989,8 +2989,8 @@
     // External extensions are initially disabled. We prompt the user before
     // enabling them. Hosted apps are excepted because they are not dangerous
     // (they need to be launched by the user anyway).
-    if (extension->GetType() != Extension::TYPE_HOSTED_APP &&
-        Extension::IsExternalLocation(extension->location()) &&
+    if (extension->GetType() != Manifest::TYPE_HOSTED_APP &&
+        Manifest::IsExternalLocation(extension->location()) &&
         !extension_prefs_->IsExternalExtensionAcknowledged(extension->id())) {
       return false;
     }