Index: chrome/browser/extensions/extension_messages_apitest.cc |
diff --git a/chrome/browser/extensions/extension_messages_apitest.cc b/chrome/browser/extensions/extension_messages_apitest.cc |
index 54c44fe85c5f782a2709aa75f63a552d291d0982..d91627414d8a34df0f9191c98bbefde4732a9522 100644 |
--- a/chrome/browser/extensions/extension_messages_apitest.cc |
+++ b/chrome/browser/extensions/extension_messages_apitest.cc |
@@ -33,6 +33,8 @@ |
#include "extensions/common/api/runtime.h" |
#include "extensions/common/extension_builder.h" |
#include "extensions/common/value_builder.h" |
+#include "extensions/test/extension_test_message_listener.h" |
+#include "extensions/test/result_catcher.h" |
#include "net/cert/asn1_util.h" |
#include "net/cert/jwk_serializer.h" |
#include "net/dns/mock_host_resolver.h" |
@@ -112,6 +114,22 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, Messaging) { |
ASSERT_TRUE(RunExtensionTest("messaging/connect")) << message_; |
} |
+IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MessagingCrash) { |
+ ASSERT_TRUE(StartEmbeddedTestServer()); |
+ ExtensionTestMessageListener ready_to_crash("ready_to_crash", true); |
+ ASSERT_TRUE(LoadExtension( |
+ test_data_dir_.AppendASCII("messaging/connect_crash"))); |
+ ui_test_utils::NavigateToURL( |
+ browser(), embedded_test_server()->GetURL("/extensions/test_file.html")); |
+ content::WebContents* tab = |
+ browser()->tab_strip_model()->GetActiveWebContents(); |
+ EXPECT_TRUE(ready_to_crash.WaitUntilSatisfied()); |
+ |
+ ResultCatcher catcher; |
+ CrashTab(tab); |
+ EXPECT_TRUE(catcher.GetNextResult()); |
+} |
+ |
// Tests that message passing from one extension to another works. |
IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MessagingExternal) { |
ASSERT_TRUE(LoadExtension( |