diff options
-rw-r--r-- | webkit/data/dom_serializer/dummy.exe | 0 | ||||
-rw-r--r-- | webkit/data/dom_serializer/iframe-src-is-exe.htm | 8 | ||||
-rw-r--r-- | webkit/glue/dom_serializer_unittest.cc | 14 |
3 files changed, 22 insertions, 0 deletions
diff --git a/webkit/data/dom_serializer/dummy.exe b/webkit/data/dom_serializer/dummy.exe new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/webkit/data/dom_serializer/dummy.exe diff --git a/webkit/data/dom_serializer/iframe-src-is-exe.htm b/webkit/data/dom_serializer/iframe-src-is-exe.htm new file mode 100644 index 0000000..ed32b12 --- /dev/null +++ b/webkit/data/dom_serializer/iframe-src-is-exe.htm @@ -0,0 +1,8 @@ +<html>
+<body>
+This tests that we can serialize a page that has a downloaded url in an iframe without crashing.
+
+<iframe src="dummy.exe"></iframe>
+
+</body>
+</html>
\ No newline at end of file diff --git a/webkit/glue/dom_serializer_unittest.cc b/webkit/glue/dom_serializer_unittest.cc index ce5be4d..a38d82f 100644 --- a/webkit/glue/dom_serializer_unittest.cc +++ b/webkit/glue/dom_serializer_unittest.cc @@ -836,4 +836,18 @@ TEST_F(DomSerializerTests, SerializeHTMLDOMWithEmptyHead) { ASSERT_TRUE(std::string(text_node_contents.utf8()) == "hello world"); } +// Test that we don't crash when the page contains an iframe that +// was handled as a download (http://crbug.com/42212). +TEST_F(DomSerializerTests, SerializeDocumentWithDownloadedIFrame) { + FilePath page_file_path = data_dir_; + page_file_path = page_file_path.AppendASCII("dom_serializer"); + page_file_path = page_file_path.AppendASCII("iframe-src-is-exe.htm"); + GURL file_url = net::FilePathToFileURL(page_file_path); + ASSERT_TRUE(file_url.SchemeIsFile()); + // Load the test file. + LoadPageFromURL(file_url); + // Do a recursive serialization. We pass if we don't crash. + SerializeDomForURL(file_url, true); +} + } // namespace |