Index: chrome/browser/extensions/extension_service_unittest.cc |
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc |
index 0e9e7576ebcaff1cb329df0f39edaa520e8fa33e..3b0a8b33e911c545be6a377cdd3063476e287e94 100644 |
--- a/chrome/browser/extensions/extension_service_unittest.cc |
+++ b/chrome/browser/extensions/extension_service_unittest.cc |
@@ -270,7 +270,7 @@ class MockExtensionProvider : public extensions::ExternalProviderInterface { |
visitor_->OnExternalExtensionFileFound( |
i->first, &version, i->second.second, location_, |
- Extension::NO_FLAGS, false); |
+ Extension::NO_FLAGS, false, false); |
} |
visitor_->OnExternalProviderReady(this); |
} |
@@ -377,7 +377,8 @@ class MockProviderVisitor |
const base::FilePath& path, |
Manifest::Location unused, |
int creation_flags, |
- bool mark_acknowledged) override { |
+ bool mark_acknowledged, |
+ bool install_immediately) override { |
EXPECT_EQ(expected_creation_flags_, creation_flags); |
++ids_found_; |
@@ -1564,12 +1565,14 @@ TEST_F(ExtensionServiceTest, InstallingExternalExtensionWithFlags) { |
content::WindowedNotificationObserver observer( |
extensions::NOTIFICATION_CRX_INSTALLER_DONE, |
content::NotificationService::AllSources()); |
- if (service()->OnExternalExtensionFileFound(good_crx, |
- &version, |
- path, |
- Manifest::EXTERNAL_PREF, |
- Extension::FROM_BOOKMARK, |
- false /* mark_acknowledged */)) { |
+ if (service()->OnExternalExtensionFileFound( |
+ good_crx, |
+ &version, |
+ path, |
+ Manifest::EXTERNAL_PREF, |
+ Extension::FROM_BOOKMARK, |
+ false /* mark_acknowledged */, |
+ false /* install_immediately */)) { |
observer.Wait(); |
} |
@@ -1604,6 +1607,7 @@ TEST_F(ExtensionServiceTest, UninstallingExternalExtensions) { |
path, |
Manifest::EXTERNAL_PREF, |
Extension::NO_FLAGS, |
+ false, |
false)) { |
observer.Wait(); |
} |
@@ -1621,6 +1625,7 @@ TEST_F(ExtensionServiceTest, UninstallingExternalExtensions) { |
path, |
Manifest::EXTERNAL_PREF, |
Extension::NO_FLAGS, |
+ false, |
false); |
base::RunLoop().RunUntilIdle(); |
ASSERT_TRUE(NULL == service()->GetExtensionById(good_crx, false)); |
@@ -1635,6 +1640,7 @@ TEST_F(ExtensionServiceTest, UninstallingExternalExtensions) { |
path, |
Manifest::EXTERNAL_PREF, |
Extension::NO_FLAGS, |
+ false, |
false); |
base::RunLoop().RunUntilIdle(); |
ASSERT_TRUE(NULL == service()->GetExtensionById(good_crx, false)); |
@@ -1702,6 +1708,7 @@ TEST_F(ExtensionServiceTest, FailOnWrongId) { |
path, |
Manifest::EXTERNAL_PREF, |
Extension::NO_FLAGS, |
+ false, |
false); |
observer.Wait(); |
@@ -1716,6 +1723,7 @@ TEST_F(ExtensionServiceTest, FailOnWrongId) { |
path, |
Manifest::EXTERNAL_PREF, |
Extension::NO_FLAGS, |
+ false, |
false)) { |
observer2.Wait(); |
} |
@@ -1739,6 +1747,7 @@ TEST_F(ExtensionServiceTest, FailOnWrongVersion) { |
path, |
Manifest::EXTERNAL_PREF, |
Extension::NO_FLAGS, |
+ false, |
false); |
observer.Wait(); |
@@ -1755,6 +1764,7 @@ TEST_F(ExtensionServiceTest, FailOnWrongVersion) { |
path, |
Manifest::EXTERNAL_PREF, |
Extension::NO_FLAGS, |
+ false, |
false)) { |
observer2.Wait(); |
} |
@@ -6825,6 +6835,7 @@ TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) { |
const int kCreationFlags = 0; |
const bool kDontMarkAcknowledged = false; |
+ const bool kDontInstallImmediately = false; |
InitializeEmptyExtensionService(); |
@@ -6852,12 +6863,14 @@ TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) { |
content::WindowedNotificationObserver observer( |
extensions::NOTIFICATION_CRX_INSTALLER_DONE, |
content::NotificationService::AllSources()); |
- EXPECT_TRUE(service()->OnExternalExtensionFileFound(kGoodId, |
- &older_version, |
- kInvalidPathToCrx, |
- Manifest::INTERNAL, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_TRUE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &older_version, |
+ kInvalidPathToCrx, |
+ Manifest::INTERNAL, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
observer.Wait(); |
VerifyCrxInstall(kInvalidPathToCrx, INSTALL_FAILED); |
@@ -6868,12 +6881,14 @@ TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) { |
content::WindowedNotificationObserver observer( |
extensions::NOTIFICATION_CRX_INSTALLER_DONE, |
content::NotificationService::AllSources()); |
- EXPECT_TRUE(service()->OnExternalExtensionFileFound(kGoodId, |
- &older_version, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_PREF, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_TRUE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &older_version, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_PREF, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
observer.Wait(); |
VerifyCrxInstall(kInvalidPathToCrx, INSTALL_FAILED); |
@@ -6882,21 +6897,25 @@ TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) { |
// Simulate an external source adding as EXTERNAL_PREF again. |
// This is rejected because the version and the location are the same as |
// the previous installation, which is still pending. |
- EXPECT_FALSE(service()->OnExternalExtensionFileFound(kGoodId, |
- &older_version, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_PREF, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_FALSE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &older_version, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_PREF, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
// Try INTERNAL again. Should fail. |
- EXPECT_FALSE(service()->OnExternalExtensionFileFound(kGoodId, |
- &older_version, |
- kInvalidPathToCrx, |
- Manifest::INTERNAL, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_FALSE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &older_version, |
+ kInvalidPathToCrx, |
+ Manifest::INTERNAL, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
{ |
@@ -6904,33 +6923,38 @@ TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) { |
content::WindowedNotificationObserver observer( |
extensions::NOTIFICATION_CRX_INSTALLER_DONE, |
content::NotificationService::AllSources()); |
- EXPECT_TRUE( |
- service()->OnExternalExtensionFileFound(kGoodId, |
- &older_version, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_REGISTRY, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_TRUE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &older_version, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_REGISTRY, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
observer.Wait(); |
VerifyCrxInstall(kInvalidPathToCrx, INSTALL_FAILED); |
} |
// Registry outranks both external pref and internal, so both fail. |
- EXPECT_FALSE(service()->OnExternalExtensionFileFound(kGoodId, |
- &older_version, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_PREF, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_FALSE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &older_version, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_PREF, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
- EXPECT_FALSE(service()->OnExternalExtensionFileFound(kGoodId, |
- &older_version, |
- kInvalidPathToCrx, |
- Manifest::INTERNAL, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_FALSE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &older_version, |
+ kInvalidPathToCrx, |
+ Manifest::INTERNAL, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
pending->Remove(kGoodId); |
@@ -6954,70 +6978,83 @@ TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) { |
// older, or the same, and succeed if the version is newer. |
// Older than the installed version... |
- EXPECT_FALSE(service()->OnExternalExtensionFileFound(kGoodId, |
- &older_version, |
- kInvalidPathToCrx, |
- Manifest::INTERNAL, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_FALSE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &older_version, |
+ kInvalidPathToCrx, |
+ Manifest::INTERNAL, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_FALSE(pending->IsIdPending(kGoodId)); |
// Same version as the installed version... |
- EXPECT_FALSE(service()->OnExternalExtensionFileFound(kGoodId, |
- ext->version(), |
- kInvalidPathToCrx, |
- Manifest::INTERNAL, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_FALSE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ ext->version(), |
+ kInvalidPathToCrx, |
+ Manifest::INTERNAL, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_FALSE(pending->IsIdPending(kGoodId)); |
// Newer than the installed version... |
- EXPECT_TRUE(service()->OnExternalExtensionFileFound(kGoodId, |
- &newer_version, |
- kInvalidPathToCrx, |
- Manifest::INTERNAL, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_TRUE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &newer_version, |
+ kInvalidPathToCrx, |
+ Manifest::INTERNAL, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
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... |
- EXPECT_FALSE(service()->OnExternalExtensionFileFound(kGoodId, |
- &older_version, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_PREF, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_FALSE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &older_version, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_PREF, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
// |newer_version| is newer. |
- EXPECT_TRUE(service()->OnExternalExtensionFileFound(kGoodId, |
- &newer_version, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_PREF, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_TRUE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &newer_version, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_PREF, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
// An external install for an even higher priority install source should |
// succeed if the version is greater. |
- EXPECT_TRUE( |
- service()->OnExternalExtensionFileFound(kGoodId, |
- &newer_version, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_REGISTRY, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_TRUE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &newer_version, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_REGISTRY, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
// Because EXTERNAL_PREF is a lower priority source than EXTERNAL_REGISTRY, |
// adding from external pref will now fail. |
- EXPECT_FALSE(service()->OnExternalExtensionFileFound(kGoodId, |
- &newer_version, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_PREF, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_FALSE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &newer_version, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_PREF, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
} |
@@ -7028,6 +7065,7 @@ TEST_F(ExtensionServiceTest, ConcurrentExternalLocalFile) { |
const base::FilePath kInvalidPathToCrx(FILE_PATH_LITERAL("invalid_path")); |
const int kCreationFlags = 0; |
const bool kDontMarkAcknowledged = false; |
+ const bool kDontInstallImmediately = false; |
InitializeEmptyExtensionService(); |
@@ -7036,48 +7074,55 @@ TEST_F(ExtensionServiceTest, ConcurrentExternalLocalFile) { |
EXPECT_FALSE(pending->IsIdPending(kGoodId)); |
// An external provider starts installing from a local crx. |
- EXPECT_TRUE(service()->OnExternalExtensionFileFound(kGoodId, |
- &kVersion123, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_PREF, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_TRUE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &kVersion123, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_PREF, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
const extensions::PendingExtensionInfo* info; |
EXPECT_TRUE((info = pending->GetById(kGoodId))); |
EXPECT_TRUE(info->version().IsValid()); |
EXPECT_TRUE(info->version().Equals(kVersion123)); |
// Adding a newer version overrides the currently pending version. |
- EXPECT_TRUE(service()->OnExternalExtensionFileFound(kGoodId, |
- &kVersion124, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_PREF, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_TRUE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &kVersion124, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_PREF, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE((info = pending->GetById(kGoodId))); |
EXPECT_TRUE(info->version().IsValid()); |
EXPECT_TRUE(info->version().Equals(kVersion124)); |
// Adding an older version fails. |
- EXPECT_FALSE(service()->OnExternalExtensionFileFound(kGoodId, |
- &kVersion123, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_PREF, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_FALSE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &kVersion123, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_PREF, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE((info = pending->GetById(kGoodId))); |
EXPECT_TRUE(info->version().IsValid()); |
EXPECT_TRUE(info->version().Equals(kVersion124)); |
// Adding an older version fails even when coming from a higher-priority |
// location. |
- EXPECT_FALSE( |
- service()->OnExternalExtensionFileFound(kGoodId, |
- &kVersion123, |
- kInvalidPathToCrx, |
- Manifest::EXTERNAL_REGISTRY, |
- kCreationFlags, |
- kDontMarkAcknowledged)); |
+ EXPECT_FALSE(service()->OnExternalExtensionFileFound( |
+ kGoodId, |
+ &kVersion123, |
+ kInvalidPathToCrx, |
+ Manifest::EXTERNAL_REGISTRY, |
+ kCreationFlags, |
+ kDontMarkAcknowledged, |
+ kDontInstallImmediately)); |
EXPECT_TRUE((info = pending->GetById(kGoodId))); |
EXPECT_TRUE(info->version().IsValid()); |
EXPECT_TRUE(info->version().Equals(kVersion124)); |
@@ -7150,6 +7195,7 @@ class ExtensionSourcePriorityTest : public ExtensionServiceTest { |
crx_path_, |
Manifest::EXTERNAL_PREF, |
Extension::NO_FLAGS, |
+ false, |
false); |
} |