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 e20342546fa672289ef8e4a7ed850b4a8fc45fe5..67e2af0760ee0b4c8b6596c673829a5c0d0a404a 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( |