Consistently use namespaced base::Version in extensions code.

BUG=639416

Review-Url: https://codereview.chromium.org/2259383002
Cr-Commit-Position: refs/heads/master@{#413496}
diff --git a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
index 3e2e7345..3d73adf 100644
--- a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
+++ b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
@@ -337,9 +337,10 @@
     const content::NotificationSource& source,
     const content::NotificationDetails& details) {
   DCHECK_EQ(extensions::NOTIFICATION_EXTENSION_UPDATE_FOUND, type);
-  using UpdateDetails = const std::pair<std::string, Version>;
+  using UpdateDetails = const std::pair<std::string, base::Version>;
   const std::string& id = content::Details<UpdateDetails>(details)->first;
-  const Version& version = content::Details<UpdateDetails>(details)->second;
+  const base::Version& version =
+      content::Details<UpdateDetails>(details)->second;
   if (version.IsValid()) {
     CallUpdateCallbacks(
         id, UpdateCheckResult(true, kUpdateFound, version.GetString()));
diff --git a/chrome/browser/extensions/chrome_extensions_browser_client.cc b/chrome/browser/extensions/chrome_extensions_browser_client.cc
index 9836496e..47e5881 100644
--- a/chrome/browser/extensions/chrome_extensions_browser_client.cc
+++ b/chrome/browser/extensions/chrome_extensions_browser_client.cc
@@ -325,7 +325,7 @@
     const std::string& min_version) {
   base::Version browser_version =
       base::Version(version_info::GetVersionNumber());
-  Version browser_min_version(min_version);
+  base::Version browser_min_version(min_version);
   if (browser_version.IsValid() && browser_min_version.IsValid() &&
       browser_min_version.CompareTo(browser_version) > 0) {
     return false;
diff --git a/chrome/browser/extensions/extension_management_internal.cc b/chrome/browser/extensions/extension_management_internal.cc
index a472df7..5d317f827 100644
--- a/chrome/browser/extensions/extension_management_internal.cc
+++ b/chrome/browser/extensions/extension_management_internal.cc
@@ -138,7 +138,7 @@
           schema_constants::kMinimumVersionRequired,
           &minimum_version_required_str)) {
     std::unique_ptr<base::Version> version(
-        new Version(minimum_version_required_str));
+        new base::Version(minimum_version_required_str));
     // We accept a general version string here. Note that count of components in
     // version string of extensions is limited to 4.
     if (!version->IsValid())
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 53de0608..b7a0853 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -1519,7 +1519,7 @@
 void ExtensionService::AddComponentExtension(const Extension* extension) {
   const std::string old_version_string(
       extension_prefs_->GetVersionString(extension->id()));
-  const Version old_version(old_version_string);
+  const base::Version old_version(old_version_string);
 
   VLOG(1) << "AddComponentExtension " << extension->name();
   if (!old_version.IsValid() || old_version != *extension->version()) {
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc
index 8b87b05..09962b27 100644
--- a/chrome/browser/extensions/extension_service_unittest.cc
+++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -285,7 +285,8 @@
     visit_count_++;
     for (DataMap::const_iterator i = extension_map_.begin();
          i != extension_map_.end(); ++i) {
-      std::unique_ptr<Version> version(new Version(i->second.first));
+      std::unique_ptr<base::Version> version(
+          new base::Version(i->second.first));
 
       std::unique_ptr<ExternalInstallInfoFile> info(new ExternalInstallInfoFile(
           i->first, std::move(version), i->second.second, location_,
@@ -299,15 +300,16 @@
     return extension_map_.find(id) != extension_map_.end();
   }
 
-  bool GetExtensionDetails(const std::string& id,
-                           Manifest::Location* location,
-                           std::unique_ptr<Version>* version) const override {
+  bool GetExtensionDetails(
+      const std::string& id,
+      Manifest::Location* location,
+      std::unique_ptr<base::Version>* version) const override {
     DataMap::const_iterator it = extension_map_.find(id);
     if (it == extension_map_.end())
       return false;
 
     if (version)
-      version->reset(new Version(it->second.first));
+      version->reset(new base::Version(it->second.first));
 
     if (location)
       *location = location_;
@@ -409,13 +411,13 @@
 
       // Ask provider if the extension we got back is registered.
       Manifest::Location location = Manifest::INVALID_LOCATION;
-      std::unique_ptr<Version> v1;
+      std::unique_ptr<base::Version> v1;
       base::FilePath crx_path;
 
       EXPECT_TRUE(provider_->GetExtensionDetails(info.extension_id, NULL, &v1));
       EXPECT_STREQ(info.version->GetString().c_str(), v1->GetString().c_str());
 
-      std::unique_ptr<Version> v2;
+      std::unique_ptr<base::Version> v2;
       EXPECT_TRUE(
           provider_->GetExtensionDetails(info.extension_id, &location, &v2));
       EXPECT_STREQ(info.version->GetString().c_str(), v1->GetString().c_str());
@@ -445,7 +447,7 @@
       EXPECT_TRUE(provider_->HasExtension(info.extension_id));
 
       // External extensions with update URLs do not have versions.
-      std::unique_ptr<Version> v1;
+      std::unique_ptr<base::Version> v1;
       Manifest::Location location1 = Manifest::INVALID_LOCATION;
       EXPECT_TRUE(
           provider_->GetExtensionDetails(info.extension_id, &location1, &v1));
@@ -1150,7 +1152,7 @@
   service()->set_extensions_enabled(true);
 
   // Register and install an external extension.
-  std::unique_ptr<Version> version(new Version("1.0.0.0"));
+  std::unique_ptr<base::Version> version(new base::Version("1.0.0.0"));
   content::WindowedNotificationObserver observer(
       extensions::NOTIFICATION_CRX_INSTALLER_DONE,
       content::NotificationService::AllSources());
@@ -1186,7 +1188,7 @@
   content::WindowedNotificationObserver observer(
       extensions::NOTIFICATION_CRX_INSTALLER_DONE,
       content::NotificationService::AllSources());
-  std::unique_ptr<Version> version(new Version("1.0.0.0"));
+  std::unique_ptr<base::Version> version(new base::Version("1.0.0.0"));
   std::unique_ptr<ExternalInstallInfoFile> info(new ExternalInstallInfoFile(
       good_crx, std::move(version), path, Manifest::EXTERNAL_PREF,
       Extension::NO_FLAGS, false, false));
@@ -1207,7 +1209,7 @@
   ValidateIntegerPref(good_crx, "state",
                       Extension::EXTERNAL_EXTENSION_UNINSTALLED);
 
-  version.reset(new Version("1.0.0.1"));
+  version.reset(new base::Version("1.0.0.1"));
   // Repeat the same thing with a newer version of the extension.
   path = data_dir().AppendASCII("good2.crx");
   info.reset(new ExternalInstallInfoFile(good_crx, std::move(version), path,
@@ -1264,7 +1266,7 @@
   base::FilePath path = data_dir().AppendASCII("good.crx");
   service()->set_extensions_enabled(true);
 
-  std::unique_ptr<Version> version(new Version("1.0.0.0"));
+  std::unique_ptr<base::Version> version(new base::Version("1.0.0.0"));
 
   const std::string wrong_id = all_zero;
   const std::string correct_id = good_crx;
@@ -1304,7 +1306,7 @@
   content::WindowedNotificationObserver observer(
       extensions::NOTIFICATION_CRX_INSTALLER_DONE,
       content::NotificationService::AllSources());
-  std::unique_ptr<Version> wrong_version(new Version("1.2.3.4"));
+  std::unique_ptr<base::Version> wrong_version(new base::Version("1.2.3.4"));
   std::unique_ptr<ExternalInstallInfoFile> info(new ExternalInstallInfoFile(
       good_crx, std::move(wrong_version), path, Manifest::EXTERNAL_PREF,
       Extension::NO_FLAGS, false, false));
@@ -1315,7 +1317,7 @@
 
   // Try again with the right version. Expect success.
   service()->pending_extension_manager()->Remove(good_crx);
-  std::unique_ptr<Version> correct_version(new Version("1.0.0.0"));
+  std::unique_ptr<base::Version> correct_version(new base::Version("1.0.0.0"));
   info->version = std::move(correct_version);
   content::WindowedNotificationObserver observer2(
       extensions::NOTIFICATION_CRX_INSTALLER_DONE,
@@ -3013,7 +3015,7 @@
       good->id(),
       std::string(),
       extensions::ManifestURL::GetUpdateURL(good),
-      Version(),
+      base::Version(),
       &IsExtension,
       kGoodIsFromSync,
       Manifest::INTERNAL,
@@ -4234,7 +4236,7 @@
   service()->set_extensions_enabled(true);
 
   // Register and install an external extension.
-  std::unique_ptr<Version> version(new Version("1.0.0.0"));
+  std::unique_ptr<base::Version> version(new base::Version("1.0.0.0"));
   content::WindowedNotificationObserver observer(
       extensions::NOTIFICATION_CRX_INSTALLER_DONE,
       content::NotificationService::AllSources());
@@ -5811,8 +5813,8 @@
 }
 
 TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) {
-  Version older_version("0.1.0.0");
-  Version newer_version("2.0.0.0");
+  base::Version older_version("0.1.0.0");
+  base::Version newer_version("2.0.0.0");
 
   // We don't want the extension to be installed.  A path that doesn't
   // point to a valid CRX ensures this.
@@ -5843,7 +5845,8 @@
       service()->pending_extension_manager();
   EXPECT_FALSE(pending->IsIdPending(kGoodId));
 
-  std::unique_ptr<Version> older_version_ptr(new Version(older_version));
+  std::unique_ptr<base::Version> older_version_ptr(
+      new base::Version(older_version));
   std::unique_ptr<ExternalInstallInfoFile> info(new ExternalInstallInfoFile(
       kGoodId, std::move(older_version_ptr), kInvalidPathToCrx,
       Manifest::INTERNAL, kCreationFlags, kDontMarkAcknowledged,
@@ -5924,29 +5927,29 @@
   // older, or the same, and succeed if the version is newer.
 
   // Older than the installed version...
-  info->version.reset(new Version(older_version));
+  info->version.reset(new base::Version(older_version));
   EXPECT_FALSE(service()->OnExternalExtensionFileFound(*info));
   EXPECT_FALSE(pending->IsIdPending(kGoodId));
 
   // Same version as the installed version...
-  info->version.reset(new Version(ext->VersionString()));
+  info->version.reset(new base::Version(ext->VersionString()));
   EXPECT_FALSE(service()->OnExternalExtensionFileFound(*info));
   EXPECT_FALSE(pending->IsIdPending(kGoodId));
 
   // Newer than the installed version...
-  info->version.reset(new Version(newer_version));
+  info->version.reset(new base::Version(newer_version));
   EXPECT_TRUE(service()->OnExternalExtensionFileFound(*info));
   EXPECT_TRUE(pending->IsIdPending(kGoodId));
 
   // An external install for a higher priority install source should succeed
   // if the version is greater.  |older_version| is not...
-  info->version.reset(new Version(older_version));
+  info->version.reset(new base::Version(older_version));
   info->crx_location = Manifest::EXTERNAL_PREF;
   EXPECT_FALSE(service()->OnExternalExtensionFileFound(*info));
   EXPECT_TRUE(pending->IsIdPending(kGoodId));
 
   // |newer_version| is newer.
-  info->version.reset(new Version(newer_version));
+  info->version.reset(new base::Version(newer_version));
   EXPECT_TRUE(service()->OnExternalExtensionFileFound(*info));
   EXPECT_TRUE(pending->IsIdPending(kGoodId));
 
@@ -5964,9 +5967,9 @@
 }
 
 TEST_F(ExtensionServiceTest, ConcurrentExternalLocalFile) {
-  Version kVersion123("1.2.3");
-  Version kVersion124("1.2.4");
-  Version kVersion125("1.2.5");
+  base::Version kVersion123("1.2.3");
+  base::Version kVersion124("1.2.4");
+  base::Version kVersion125("1.2.5");
   const base::FilePath kInvalidPathToCrx(FILE_PATH_LITERAL("invalid_path"));
   const int kCreationFlags = 0;
   const bool kDontMarkAcknowledged = false;
@@ -5980,9 +5983,9 @@
 
   // An external provider starts installing from a local crx.
   std::unique_ptr<ExternalInstallInfoFile> info(new ExternalInstallInfoFile(
-      kGoodId, base::WrapUnique(new Version(kVersion123)), kInvalidPathToCrx,
-      Manifest::EXTERNAL_PREF, kCreationFlags, kDontMarkAcknowledged,
-      kDontInstallImmediately));
+      kGoodId, base::WrapUnique(new base::Version(kVersion123)),
+      kInvalidPathToCrx, Manifest::EXTERNAL_PREF, kCreationFlags,
+      kDontMarkAcknowledged, kDontInstallImmediately));
   EXPECT_TRUE(service()->OnExternalExtensionFileFound(*info));
 
   const extensions::PendingExtensionInfo* pending_info;
@@ -5991,14 +5994,14 @@
   EXPECT_EQ(pending_info->version(), kVersion123);
 
   // Adding a newer version overrides the currently pending version.
-  info->version.reset(new Version(kVersion124));
+  info->version.reset(new base::Version(kVersion124));
   EXPECT_TRUE(service()->OnExternalExtensionFileFound(*info));
   EXPECT_TRUE((pending_info = pending->GetById(kGoodId)));
   EXPECT_TRUE(pending_info->version().IsValid());
   EXPECT_EQ(pending_info->version(), kVersion124);
 
   // Adding an older version fails.
-  info->version.reset(new Version(kVersion123));
+  info->version.reset(new base::Version(kVersion123));
   EXPECT_FALSE(service()->OnExternalExtensionFileFound(*info));
   EXPECT_TRUE((pending_info = pending->GetById(kGoodId)));
   EXPECT_TRUE(pending_info->version().IsValid());
@@ -6071,7 +6074,7 @@
 
   // Fake an external file from external_extensions.json.
   bool AddPendingExternalPrefFileInstall() {
-    std::unique_ptr<Version> version(new Version("1.0.0.0"));
+    std::unique_ptr<base::Version> version(new base::Version("1.0.0.0"));
     std::unique_ptr<ExternalInstallInfoFile> info(new ExternalInstallInfoFile(
         crx_id_, std::move(version), crx_path_, Manifest::EXTERNAL_PREF,
         Extension::NO_FLAGS, false, false));
diff --git a/chrome/browser/extensions/extension_sync_data.cc b/chrome/browser/extensions/extension_sync_data.cc
index b1d2031..d6d7de18 100644
--- a/chrome/browser/extensions/extension_sync_data.cc
+++ b/chrome/browser/extensions/extension_sync_data.cc
@@ -241,7 +241,7 @@
     return false;
   }
 
-  Version specifics_version(specifics.version());
+  base::Version specifics_version(specifics.version());
   if (!specifics_version.IsValid()) {
     LOG(ERROR) << "Attempt to sync bad ExtensionSpecifics (bad version):\n"
                << GetExtensionSpecificsLogMessage(specifics);
diff --git a/chrome/browser/extensions/extension_sync_data_unittest.cc b/chrome/browser/extensions/extension_sync_data_unittest.cc
index bb4837c7..b9c6a715 100644
--- a/chrome/browser/extensions/extension_sync_data_unittest.cc
+++ b/chrome/browser/extensions/extension_sync_data_unittest.cc
@@ -111,7 +111,7 @@
   EXPECT_FALSE(extension_sync_data.remote_install());
   EXPECT_EQ(ExtensionSyncData::BOOLEAN_TRUE,
             extension_sync_data.all_urls_enabled());
-  EXPECT_EQ(Version(kVersion), extension_sync_data.version());
+  EXPECT_EQ(base::Version(kVersion), extension_sync_data.version());
   EXPECT_EQ(std::string(kName), extension_sync_data.name());
 
   // Check the serialize-deserialize process for ExtensionSyncData to proto.
diff --git a/chrome/browser/extensions/external_policy_loader_unittest.cc b/chrome/browser/extensions/external_policy_loader_unittest.cc
index 7fd52e00..9aaae08 100644
--- a/chrome/browser/extensions/external_policy_loader_unittest.cc
+++ b/chrome/browser/extensions/external_policy_loader_unittest.cc
@@ -85,7 +85,7 @@
 
     // Provider returns the correct location when asked.
     Manifest::Location location1;
-    std::unique_ptr<Version> version1;
+    std::unique_ptr<base::Version> version1;
     provider_->GetExtensionDetails(info.extension_id, &location1, &version1);
     EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, location1);
     EXPECT_FALSE(version1.get());
diff --git a/chrome/browser/extensions/external_provider_impl.cc b/chrome/browser/extensions/external_provider_impl.cc
index 3673d8e..c3a5088 100644
--- a/chrome/browser/extensions/external_provider_impl.cc
+++ b/chrome/browser/extensions/external_provider_impl.cc
@@ -343,7 +343,8 @@
         path = base_path.Append(external_crx);
       }
 
-      std::unique_ptr<Version> version(new Version(external_version));
+      std::unique_ptr<base::Version> version(
+          new base::Version(external_version));
       if (!version->IsValid()) {
         LOG(WARNING) << "Malformed extension dictionary for extension: "
                      << extension_id.c_str() << ".  Invalid version string \""
@@ -402,7 +403,7 @@
 bool ExternalProviderImpl::GetExtensionDetails(
     const std::string& id,
     Manifest::Location* location,
-    std::unique_ptr<Version>* version) const {
+    std::unique_ptr<base::Version>* version) const {
   CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
   CHECK(prefs_.get());
   CHECK(ready_);
@@ -422,7 +423,7 @@
       return false;
 
     if (version)
-      version->reset(new Version(external_version));
+      version->reset(new base::Version(external_version));
 
   } else {
     NOTREACHED();  // Chrome should not allow prefs to get into this state.
@@ -443,9 +444,9 @@
   if (profile_ &&
       extension->GetString(kMinProfileCreatedByVersion,
                            &min_profile_created_by_version)) {
-    Version profile_version(
+    base::Version profile_version(
         profile_->GetPrefs()->GetString(prefs::kProfileCreatedByVersion));
-    Version min_version(min_profile_created_by_version);
+    base::Version min_version(min_profile_created_by_version);
     if (min_version.IsValid() && profile_version.CompareTo(min_version) < 0) {
       unsupported_extensions->insert(extension_id);
       VLOG(1) << "Skip installing (or uninstall) external extension: "
diff --git a/chrome/browser/extensions/external_registry_loader_win.cc b/chrome/browser/extensions/external_registry_loader_win.cc
index 9b660b2e..ca6c105 100644
--- a/chrome/browser/extensions/external_registry_loader_win.cc
+++ b/chrome/browser/extensions/external_registry_loader_win.cc
@@ -164,7 +164,7 @@
       continue;
     }
 
-    Version version(base::UTF16ToASCII(extension_version));
+    base::Version version(base::UTF16ToASCII(extension_version));
     if (!version.IsValid()) {
       LOG(ERROR) << "Invalid version value " << extension_version
                  << " for key " << key_path << ".";
diff --git a/chrome/browser/extensions/pending_extension_info.cc b/chrome/browser/extensions/pending_extension_info.cc
index 1a034ca..119b3b2 100644
--- a/chrome/browser/extensions/pending_extension_info.cc
+++ b/chrome/browser/extensions/pending_extension_info.cc
@@ -12,7 +12,7 @@
     const std::string& id,
     const std::string& install_parameter,
     const GURL& update_url,
-    const Version& version,
+    const base::Version& version,
     ShouldAllowInstallPredicate should_allow_install,
     bool is_from_sync,
     Manifest::Location install_source,
diff --git a/chrome/browser/extensions/pending_extension_info.h b/chrome/browser/extensions/pending_extension_info.h
index 9d4e939..7eb6feb 100644
--- a/chrome/browser/extensions/pending_extension_info.h
+++ b/chrome/browser/extensions/pending_extension_info.h
@@ -30,7 +30,7 @@
   PendingExtensionInfo(const std::string& id,
                        const std::string& install_parameter,
                        const GURL& update_url,
-                       const Version& version,
+                       const base::Version& version,
                        ShouldAllowInstallPredicate should_allow_install,
                        bool is_from_sync,
                        Manifest::Location install_source,
@@ -50,7 +50,7 @@
 
   const std::string& id() const { return id_; }
   const GURL& update_url() const { return update_url_; }
-  const Version& version() const { return version_; }
+  const base::Version& version() const { return version_; }
   const std::string& install_parameter() const { return install_parameter_; }
 
   // ShouldAllowInstall() returns the result of running constructor argument
@@ -79,7 +79,7 @@
   std::string id_;
 
   GURL update_url_;
-  Version version_;
+  base::Version version_;
   std::string install_parameter_;
 
   // When the extension is about to be installed, this function is
diff --git a/chrome/browser/extensions/pending_extension_manager.cc b/chrome/browser/extensions/pending_extension_manager.cc
index 9014cc9..ee7759b 100644
--- a/chrome/browser/extensions/pending_extension_manager.cc
+++ b/chrome/browser/extensions/pending_extension_manager.cc
@@ -25,7 +25,7 @@
   return true;
 }
 
-std::string GetVersionString(const Version& version) {
+std::string GetVersionString(const base::Version& version) {
   return version.IsValid() ? version.GetString() : "invalid";
 }
 
@@ -146,7 +146,7 @@
   return AddExtensionImpl(id,
                           std::string(),
                           update_url,
-                          Version(),
+                          base::Version(),
                           should_allow_install,
                           kIsFromSync,
                           kManifestLocation,
@@ -187,7 +187,7 @@
   return AddExtensionImpl(id,
                           install_parameter,
                           update_url,
-                          Version(),
+                          base::Version(),
                           &AlwaysInstall,
                           kIsFromSync,
                           location,
@@ -200,7 +200,7 @@
 bool PendingExtensionManager::AddFromExternalFile(
     const std::string& id,
     Manifest::Location install_source,
-    const Version& version,
+    const base::Version& version,
     int creation_flags,
     bool mark_acknowledged) {
   // TODO(skerner): AddFromSync() checks to see if the extension is
@@ -248,7 +248,7 @@
     const std::string& id,
     const std::string& install_parameter,
     const GURL& update_url,
-    const Version& version,
+    const base::Version& version,
     PendingExtensionInfo::ShouldAllowInstallPredicate should_allow_install,
     bool is_from_sync,
     Manifest::Location install_source,
diff --git a/chrome/browser/extensions/unpacked_installer.cc b/chrome/browser/extensions/unpacked_installer.cc
index 1808fa7..cfa45d7 100644
--- a/chrome/browser/extensions/unpacked_installer.cc
+++ b/chrome/browser/extensions/unpacked_installer.cc
@@ -221,7 +221,7 @@
           SharedModuleInfo::GetImports(extension());
       std::vector<SharedModuleInfo::ImportInfo>::const_iterator i;
       for (i = imports.begin(); i != imports.end(); ++i) {
-        Version version_required(i->minimum_version);
+        base::Version version_required(i->minimum_version);
         const Extension* imported_module =
             service->GetExtensionById(i->extension_id, true);
         if (!imported_module) {
diff --git a/chrome/browser/extensions/updater/extension_updater_unittest.cc b/chrome/browser/extensions/updater/extension_updater_unittest.cc
index 550b890..33ae029 100644
--- a/chrome/browser/extensions/updater/extension_updater_unittest.cc
+++ b/chrome/browser/extensions/updater/extension_updater_unittest.cc
@@ -432,7 +432,7 @@
         PendingExtensionInfo(id,
                              std::string(),
                              update_url,
-                             Version(),
+                             base::Version(),
                              should_allow_install,
                              kIsFromSync,
                              Manifest::INTERNAL,
@@ -1172,7 +1172,7 @@
 
     std::string id = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
     std::string hash;
-    Version version("0.0.1");
+    base::Version version("0.0.1");
     std::set<int> requests;
     requests.insert(0);
     std::unique_ptr<ExtensionDownloader::ExtensionFetch> fetch(
@@ -1282,7 +1282,7 @@
     GURL test_url(base::StringPrintf("%s/extension.crx", url_prefix.c_str()));
     std::string id = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
     std::string hash;
-  Version version("0.0.1");
+    base::Version version("0.0.1");
     std::set<int> requests;
     requests.insert(0);
     std::unique_ptr<ExtensionDownloader::ExtensionFetch> fetch(
diff --git a/chrome/browser/extensions/updater/local_extension_cache.cc b/chrome/browser/extensions/updater/local_extension_cache.cc
index 28f9b65..05e9c98 100644
--- a/chrome/browser/extensions/updater/local_extension_cache.cc
+++ b/chrome/browser/extensions/updater/local_extension_cache.cc
@@ -132,8 +132,8 @@
                                       const std::string& version,
                                       const std::string& expected_hash,
                                       int* compare) {
-  Version new_version(version);
-  Version prev_version(entry->second.version);
+  base::Version new_version(version);
+  base::Version prev_version(entry->second.version);
   int cmp = new_version.CompareTo(prev_version);
 
   if (compare)
@@ -156,7 +156,7 @@
     return;
   }
 
-  Version version_validator(version);
+  base::Version version_validator(version);
   if (!version_validator.IsValid()) {
     LOG(ERROR) << "Extension " << id << " has bad version " << version;
     callback.Run(file_path, true);
@@ -442,7 +442,7 @@
       id.clear();
     }
 
-    if (!Version(version).IsValid()) {
+    if (!base::Version(version).IsValid()) {
       LOG(ERROR) << "Bad extension version in cache: " << version;
       version.clear();
     }
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc
index 1178c869..adb5e13 100644
--- a/chrome/browser/extensions/webstore_installer.cc
+++ b/chrome/browser/extensions/webstore_installer.cc
@@ -414,7 +414,7 @@
     CHECK_EQ(extension->id(), id_);
     ReportSuccess();
   } else {
-    const Version version_required(info.minimum_version);
+    const base::Version version_required(info.minimum_version);
     if (version_required.IsValid() &&
         extension->version()->CompareTo(version_required) < 0) {
       // It should not happen, CrxInstaller will make sure the version is
@@ -488,11 +488,10 @@
         Approval::CreateForSharedModule(profile_);
     const SharedModuleInfo::ImportInfo& info = pending_modules_.front();
     approval->extension_id = info.extension_id;
-    const Version version_required(info.minimum_version);
+    const base::Version version_required(info.minimum_version);
 
     if (version_required.IsValid()) {
-      approval->minimum_version.reset(
-          new Version(version_required));
+      approval->minimum_version.reset(new base::Version(version_required));
     }
     download_item_->SetUserData(kApprovalKey, approval.release());
   } else {
diff --git a/chrome/browser/extensions/webstore_installer.h b/chrome/browser/extensions/webstore_installer.h
index f4736233..473666a 100644
--- a/chrome/browser/extensions/webstore_installer.h
+++ b/chrome/browser/extensions/webstore_installer.h
@@ -156,7 +156,7 @@
     scoped_refptr<Extension> dummy_extension;
 
     // Required minimum version.
-    std::unique_ptr<Version> minimum_version;
+    std::unique_ptr<base::Version> minimum_version;
 
     // The authuser index required to download the item being installed. May be
     // the empty string, in which case no authuser parameter is used.
diff --git a/chrome/common/extensions/manifest_handlers/minimum_chrome_version_checker.cc b/chrome/common/extensions/manifest_handlers/minimum_chrome_version_checker.cc
index bedbf960..0bcc65e 100644
--- a/chrome/common/extensions/manifest_handlers/minimum_chrome_version_checker.cc
+++ b/chrome/common/extensions/manifest_handlers/minimum_chrome_version_checker.cc
@@ -33,13 +33,13 @@
     return false;
   }
 
-  Version minimum_version(minimum_version_string);
+  base::Version minimum_version(minimum_version_string);
   if (!minimum_version.IsValid()) {
     *error = base::ASCIIToUTF16(errors::kInvalidMinimumChromeVersion);
     return false;
   }
 
-  Version current_version(version_info::GetVersionNumber());
+  base::Version current_version(version_info::GetVersionNumber());
   if (!current_version.IsValid()) {
     NOTREACHED();
     return false;
diff --git a/extensions/browser/api/runtime/runtime_api.cc b/extensions/browser/api/runtime/runtime_api.cc
index c7e238c4..b8f4f31 100644
--- a/extensions/browser/api/runtime/runtime_api.cc
+++ b/extensions/browser/api/runtime/runtime_api.cc
@@ -251,7 +251,7 @@
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::Bind(&RuntimeEventRouter::DispatchOnInstalledEvent,
-                 browser_context_, extension->id(), Version(), true));
+                 browser_context_, extension->id(), base::Version(), true));
 }
 
 void RuntimeAPI::OnExtensionWillBeInstalled(
@@ -509,7 +509,7 @@
 void RuntimeEventRouter::DispatchOnInstalledEvent(
     content::BrowserContext* context,
     const std::string& extension_id,
-    const Version& old_version,
+    const base::Version& old_version,
     bool chrome_updated) {
   if (!ExtensionsBrowserClient::Get()->IsValidContext(context))
     return;
diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc
index 123fb307..91c08c2 100644
--- a/extensions/browser/updater/extension_downloader.cc
+++ b/extensions/browser/updater/extension_downloader.cc
@@ -151,9 +151,9 @@
 
 }  // namespace
 
-UpdateDetails::UpdateDetails(const std::string& id, const Version& version)
-    : id(id), version(version) {
-}
+UpdateDetails::UpdateDetails(const std::string& id,
+                             const base::Version& version)
+    : id(id), version(version) {}
 
 UpdateDetails::~UpdateDetails() {
 }
@@ -228,7 +228,7 @@
   // Use a zero version to ensure that a pending extension will always
   // be updated, and thus installed (assuming all extensions have
   // non-zero versions).
-  Version version("0.0.0.0");
+  base::Version version("0.0.0.0");
   DCHECK(version.IsValid());
 
   return AddExtensionData(id, version, Manifest::TYPE_UNKNOWN, update_url,
@@ -287,7 +287,7 @@
 }
 
 bool ExtensionDownloader::AddExtensionData(const std::string& id,
-                                           const Version& version,
+                                           const base::Version& version,
                                            Manifest::Type extension_type,
                                            const GURL& extension_update_url,
                                            const std::string& update_url_data,
@@ -632,8 +632,8 @@
 
       VLOG(2) << id << " is at '" << version << "'";
 
-      Version existing_version(version);
-      Version update_version(update->version);
+      base::Version existing_version(version);
+      base::Version update_version(update->version);
       if (!update_version.IsValid() ||
           update_version.CompareTo(existing_version) <= 0) {
         continue;
@@ -850,7 +850,7 @@
 
 void ExtensionDownloader::NotifyUpdateFound(const std::string& id,
                                             const std::string& version) {
-  UpdateDetails updateInfo(id, Version(version));
+  UpdateDetails updateInfo(id, base::Version(version));
   content::NotificationService::current()->Notify(
       extensions::NOTIFICATION_EXTENSION_UPDATE_FOUND,
       content::NotificationService::AllBrowserContextsAndSources(),
diff --git a/extensions/browser/updater/update_service.cc b/extensions/browser/updater/update_service.cc
index 64bdae1..dc211a6 100644
--- a/extensions/browser/updater/update_service.cc
+++ b/extensions/browser/updater/update_service.cc
@@ -43,7 +43,7 @@
 }
 
 void UpdateService::SendUninstallPing(const std::string& id,
-                                      const Version& version,
+                                      const base::Version& version,
                                       int reason) {
   update_client_->SendUninstallPing(id, version, reason);
 }
diff --git a/extensions/browser/updater/update_service_unittest.cc b/extensions/browser/updater/update_service_unittest.cc
index 83f42d6..cceb8e3 100644
--- a/extensions/browser/updater/update_service_unittest.cc
+++ b/extensions/browser/updater/update_service_unittest.cc
@@ -38,9 +38,11 @@
   // Used for tests that uninstall pings get requested properly.
   struct UninstallPing {
     std::string id;
-    Version version;
+    base::Version version;
     int reason;
-    UninstallPing(const std::string& id, const Version& version, int reason)
+    UninstallPing(const std::string& id,
+                  const base::Version& version,
+                  int reason)
         : id(id), version(version), reason(reason) {}
   };
   std::vector<UninstallPing>& uninstall_pings() { return uninstall_pings_; }
@@ -62,7 +64,7 @@
   bool IsUpdating(const std::string& id) const override { return false; }
   void Stop() override {}
   void SendUninstallPing(const std::string& id,
-                         const Version& version,
+                         const base::Version& version,
                          int reason) override {
     uninstall_pings_.emplace_back(id, version, reason);
   }
diff --git a/extensions/browser/user_script_loader.cc b/extensions/browser/user_script_loader.cc
index d9bb997..92c7fc15 100644
--- a/extensions/browser/user_script_loader.cc
+++ b/extensions/browser/user_script_loader.cc
@@ -115,7 +115,7 @@
       } else if (GetDeclarationValue(line, kNameDeclaration, &value)) {
         script->set_name(value);
       } else if (GetDeclarationValue(line, kVersionDeclaration, &value)) {
-        Version version(value);
+        base::Version version(value);
         if (version.IsValid())
           script->set_version(version.GetString());
       } else if (GetDeclarationValue(line, kDescriptionDeclaration, &value)) {
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
index fd77aa0..2f5e2d65 100644
--- a/extensions/common/extension.cc
+++ b/extensions/common/extension.cc
@@ -579,7 +579,7 @@
     *error = base::ASCIIToUTF16(errors::kInvalidVersion);
     return false;
   }
-  version_.reset(new Version(version_str));
+  version_.reset(new base::Version(version_str));
   if (!version_->IsValid() || version_->components().size() > 4) {
     *error = base::ASCIIToUTF16(errors::kInvalidVersion);
     return false;
diff --git a/extensions/common/manifest_handlers/shared_module_info.cc b/extensions/common/manifest_handlers/shared_module_info.cc
index 25679e1..b8f6229 100644
--- a/extensions/common/manifest_handlers/shared_module_info.cc
+++ b/extensions/common/manifest_handlers/shared_module_info.cc
@@ -187,7 +187,7 @@
           return false;
         }
         imports_.back().minimum_version = min_version;
-        Version v(min_version);
+        base::Version v(min_version);
         if (!v.IsValid()) {
           *error = ErrorUtils::FormatErrorMessageUTF16(
               errors::kInvalidImportVersion, base::SizeTToString(i));
diff --git a/extensions/common/update_manifest.cc b/extensions/common/update_manifest.cc
index 548bbe5..adb7c31 100644
--- a/extensions/common/update_manifest.cc
+++ b/extensions/common/update_manifest.cc
@@ -169,7 +169,7 @@
     *error_detail = "Missing version for updatecheck.";
     return false;
   }
-  Version version(result->version);
+  base::Version version(result->version);
   if (!version.IsValid()) {
     *error_detail = "Invalid version: '";
     *error_detail += result->version;
@@ -180,7 +180,7 @@
   // Get the minimum browser version (not required).
   result->browser_min_version = GetAttribute(updatecheck, "prodversionmin");
   if (result->browser_min_version.length()) {
-    Version browser_min_version(result->browser_min_version);
+    base::Version browser_min_version(result->browser_min_version);
     if (!browser_min_version.IsValid()) {
       *error_detail = "Invalid prodversionmin: '";
       *error_detail += result->browser_min_version;