summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_crash_recovery_browsertest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/extension_crash_recovery_browsertest.cc')
-rw-r--r--chrome/browser/extensions/extension_crash_recovery_browsertest.cc116
1 files changed, 64 insertions, 52 deletions
diff --git a/chrome/browser/extensions/extension_crash_recovery_browsertest.cc b/chrome/browser/extensions/extension_crash_recovery_browsertest.cc
index 0bf5815..32b67af 100644
--- a/chrome/browser/extensions/extension_crash_recovery_browsertest.cc
+++ b/chrome/browser/extensions/extension_crash_recovery_browsertest.cc
@@ -82,12 +82,13 @@ class ExtensionCrashRecoveryTest : public ExtensionBrowserTest {
void LoadTestExtension() {
ExtensionBrowserTest::SetUpInProcessBrowserTestFixture();
+ const size_t size_before = GetExtensionsService()->extensions()->size();
ASSERT_TRUE(LoadExtension(
test_data_dir_.AppendASCII("common").AppendASCII("background_page")));
- Extension* extension = GetExtensionsService()->extensions()->at(0);
+ Extension* extension = GetExtensionsService()->extensions()->back();
ASSERT_TRUE(extension);
first_extension_id_ = extension->id();
- CheckExtensionConsistency(0);
+ CheckExtensionConsistency(size_before);
}
void LoadSecondExtension() {
@@ -105,35 +106,38 @@ class ExtensionCrashRecoveryTest : public ExtensionBrowserTest {
};
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, Basic) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
AcceptCrashedExtensionInfobar(0);
SCOPED_TRACE("after clicking the infobar");
- CheckExtensionConsistency(0);
+ CheckExtensionConsistency(size_before);
}
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, CloseAndReload) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
CancelCrashedExtensionInfobar(0);
ReloadExtension(first_extension_id_);
SCOPED_TRACE("after reloading");
- CheckExtensionConsistency(0);
+ CheckExtensionConsistency(size_before);
}
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, ReloadIndependently) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
ReloadExtension(first_extension_id_);
SCOPED_TRACE("after reloading");
- CheckExtensionConsistency(0);
+ CheckExtensionConsistency(size_before);
TabContents* current_tab = browser()->GetSelectedTabContents();
ASSERT_TRUE(current_tab);
@@ -147,77 +151,82 @@ IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, ReloadIndependently) {
// and close the browser, it doesn't crash. The browser is closed implicitly
// at the end of each browser test.
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, ShutdownWhileCrashed) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
}
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, TwoExtensionsCrashFirst) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
LoadSecondExtension();
- CrashExtension(0);
- ASSERT_EQ(1U, GetExtensionsService()->extensions()->size());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size());
AcceptCrashedExtensionInfobar(0);
SCOPED_TRACE("after clicking the infobar");
- CheckExtensionConsistency(0);
- CheckExtensionConsistency(1);
+ CheckExtensionConsistency(size_before);
+ CheckExtensionConsistency(size_before + 1);
}
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, TwoExtensionsCrashSecond) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
LoadSecondExtension();
- CrashExtension(1);
- ASSERT_EQ(1U, GetExtensionsService()->extensions()->size());
+ CrashExtension(size_before + 1);
+ ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size());
AcceptCrashedExtensionInfobar(0);
SCOPED_TRACE("after clicking the infobar");
- CheckExtensionConsistency(0);
- CheckExtensionConsistency(1);
+ CheckExtensionConsistency(size_before);
+ CheckExtensionConsistency(size_before + 1);
}
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
TwoExtensionsCrashBothAtOnce) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
LoadSecondExtension();
- CrashExtension(0);
- ASSERT_EQ(1U, GetExtensionsService()->extensions()->size());
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
{
SCOPED_TRACE("first infobar");
AcceptCrashedExtensionInfobar(0);
- CheckExtensionConsistency(0);
+ CheckExtensionConsistency(size_before);
}
{
SCOPED_TRACE("second infobar");
AcceptCrashedExtensionInfobar(0);
- CheckExtensionConsistency(0);
- CheckExtensionConsistency(1);
+ CheckExtensionConsistency(size_before);
+ CheckExtensionConsistency(size_before + 1);
}
}
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, TwoExtensionsOneByOne) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
LoadSecondExtension();
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
{
SCOPED_TRACE("first infobar");
AcceptCrashedExtensionInfobar(0);
- CheckExtensionConsistency(0);
+ CheckExtensionConsistency(size_before);
}
{
SCOPED_TRACE("second infobar");
AcceptCrashedExtensionInfobar(0);
- CheckExtensionConsistency(0);
- CheckExtensionConsistency(1);
+ CheckExtensionConsistency(size_before);
+ CheckExtensionConsistency(size_before + 1);
}
}
@@ -226,39 +235,42 @@ IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, TwoExtensionsOneByOne) {
// at the end of each browser test.
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
TwoExtensionsShutdownWhileCrashed) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
LoadSecondExtension();
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
}
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
TwoExtensionsIgnoreFirst) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
LoadSecondExtension();
- CrashExtension(0);
- ASSERT_EQ(1U, GetExtensionsService()->extensions()->size());
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
CancelCrashedExtensionInfobar(0);
AcceptCrashedExtensionInfobar(1);
SCOPED_TRACE("infobars done");
- ASSERT_EQ(1U, GetExtensionsService()->extensions()->size());
- CheckExtensionConsistency(0);
+ ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size());
+ CheckExtensionConsistency(size_before);
}
IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
TwoExtensionsReloadIndependently) {
+ const size_t size_before = GetExtensionsService()->extensions()->size();
LoadTestExtension();
LoadSecondExtension();
- CrashExtension(0);
- ASSERT_EQ(1U, GetExtensionsService()->extensions()->size());
- CrashExtension(0);
- ASSERT_TRUE(GetExtensionsService()->extensions()->empty());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size());
+ CrashExtension(size_before);
+ ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size());
{
SCOPED_TRACE("first: reload");
@@ -269,13 +281,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
ReloadExtension(first_extension_id_);
// One of the infobars should hide after the extension is reloaded.
ASSERT_EQ(1, current_tab->infobar_delegate_count());
- CheckExtensionConsistency(0);
+ CheckExtensionConsistency(size_before);
}
{
SCOPED_TRACE("second: infobar");
AcceptCrashedExtensionInfobar(0);
- CheckExtensionConsistency(0);
- CheckExtensionConsistency(1);
+ CheckExtensionConsistency(size_before);
+ CheckExtensionConsistency(size_before + 1);
}
}