Index: chrome/browser/download/save_page_browsertest.cc |
diff --git a/chrome/browser/download/save_page_browsertest.cc b/chrome/browser/download/save_page_browsertest.cc |
index 6bd94ca14d58794d9d23d67e680f4f2d682f1565..127d2c32e962a5220ade4c30aa5b2aa113664936 100644 |
--- a/chrome/browser/download/save_page_browsertest.cc |
+++ b/chrome/browser/download/save_page_browsertest.cc |
@@ -2,6 +2,9 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include <string> |
+#include <vector> |
+ |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
#include "base/command_line.h" |
@@ -996,11 +999,12 @@ class SavePageMultiFrameBrowserTest |
IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, CrossSite) { |
content::SavePageType save_page_type = GetParam(); |
- std::vector<std::string> expected_substrings{ |
+ std::string arr[] = { |
"frames-xsite.htm: 896fd88d-a77a-4f46-afd8-24db7d5af9c2", |
"a.htm: 1b8aae2b-e164-462f-bd5b-98aa366205f2", |
"b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", |
}; |
+ std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr)); |
GURL url( |
embedded_test_server()->GetURL("a.com", "/save_page/frames-xsite.htm")); |
@@ -1025,13 +1029,14 @@ IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, ObjectElements) { |
// (svg and png objects do not get a separate frame) |
int expected_number_of_frames = 6; |
- std::vector<std::string> expected_substrings{ |
+ std::string arr[] = { |
"frames-objects.htm: 8da13db4-a512-4d9b-b1c5-dc1c134234b9", |
"a.htm: 1b8aae2b-e164-462f-bd5b-98aa366205f2", |
"b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", |
"frames-nested.htm: 4388232f-8d45-4d2e-9807-721b381be153", |
"frames-nested2.htm: 6d23dc47-f283-4977-96ec-66bcf72301a4", |
}; |
+ std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr)); |
GURL url( |
embedded_test_server()->GetURL("a.com", "/save_page/frames-objects.htm")); |
@@ -1047,12 +1052,13 @@ IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, ObjectElements) { |
IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, AboutBlank) { |
content::SavePageType save_page_type = GetParam(); |
- std::vector<std::string> expected_substrings{ |
+ std::string arr[] = { |
"main: acb0609d-eb10-4c26-83e2-ad8afb7b0ff3", |
"sub1: b124df3a-d39f-47a1-ae04-5bb5d0bf549e", |
"sub2: 07014068-604d-45ae-884f-a068cfe7bc0a", |
"sub3: 06cc8fcc-c692-4a1a-a10f-1645b746e8f4", |
}; |
+ std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr)); |
GURL url(embedded_test_server()->GetURL("a.com", |
"/save_page/frames-about-blank.htm")); |
@@ -1064,11 +1070,12 @@ IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, AboutBlank) { |
IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, NestedFrames) { |
content::SavePageType save_page_type = GetParam(); |
- std::vector<std::string> expected_substrings{ |
+ std::string arr[] = { |
"frames-nested.htm: 4388232f-8d45-4d2e-9807-721b381be153", |
"frames-nested2.htm: 6d23dc47-f283-4977-96ec-66bcf72301a4", |
"b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", |
}; |
+ std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr)); |
GURL url( |
embedded_test_server()->GetURL("a.com", "/save_page/frames-nested.htm")); |
@@ -1076,8 +1083,35 @@ IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, NestedFrames) { |
TestMultiFramePage(save_page_type, url, 3, expected_substrings); |
} |
+// Test for crbug.com/106364 and crbug.com/538188. |
+// Test frames have the same uri ... |
+// subframe1 and subframe2 - both have src=b.htm |
+// subframe3 and subframe4 - about:blank (no src, only srcdoc attribute). |
+// ... but different content (generated by main frame's javascript). |
+IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, RuntimeChanges) { |
+ content::SavePageType save_page_type = GetParam(); |
+ |
+ std::string arr[] = { |
+ "frames-runtime-changes.htm: 4388232f-8d45-4d2e-9807-721b381be153", |
+ "subframe1: 21595339-61fc-4854-b6df-0668328ea263", |
+ "subframe2: adf55719-15e7-45be-9eda-d12fe782a1bd", |
+ "subframe3: 50e294bf-3a5b-499d-8772-651ead26952f", |
+ "subframe4: e0ea9289-7467-4d32-ba5c-c604e8d84cb7", |
+ }; |
+ std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr)); |
+ |
+ // TODO(lukasza): crbug.com/106364: Fix complete-html mode as well. |
+ if (save_page_type == content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML) |
+ return; |
+ |
+ GURL url(embedded_test_server()->GetURL( |
+ "a.com", "/save_page/frames-runtime-changes.htm?do_runtime_changes=1")); |
+ |
+ TestMultiFramePage(save_page_type, url, 5, expected_substrings); |
+} |
+ |
INSTANTIATE_TEST_CASE_P( |
- , |
+ SaveType, |
SavePageMultiFrameBrowserTest, |
::testing::Values(content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, |
content::SAVE_PAGE_TYPE_AS_MHTML)); |