| 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 fc82251dbabfe61307237d8e693f2b436f2a2cc8..5cc57ca5b3ec8fc3ce6a83653599dc841112c0e3 100644
|
| --- a/chrome/browser/download/save_page_browsertest.cc
|
| +++ b/chrome/browser/download/save_page_browsertest.cc
|
| @@ -1025,7 +1025,8 @@ class SavePageOriginalVsSavedComparisonTest
|
| void TestOriginalVsSavedPage(
|
| content::SavePageType save_page_type,
|
| const GURL& url,
|
| - int expected_number_of_frames,
|
| + int expected_number_of_frames_in_original_page,
|
| + int expected_number_of_frames_in_mhtml_page,
|
| const std::vector<std::string>& expected_substrings) {
|
| // Navigate to the test page and verify if test expectations
|
| // are met (this is mostly a sanity check - a failure to meet
|
| @@ -1034,8 +1035,8 @@ class SavePageOriginalVsSavedComparisonTest
|
| ui_test_utils::NavigateToURL(browser(), url);
|
| DLOG(INFO) << "Verifying test expectations for original page... : "
|
| << GetCurrentTab(browser())->GetLastCommittedURL();
|
| - AssertExpectationsAboutCurrentTab(expected_number_of_frames,
|
| - expected_substrings);
|
| + AssertExpectationsAboutCurrentTab(
|
| + expected_number_of_frames_in_original_page, expected_substrings);
|
|
|
| // Save the page.
|
| base::FilePath full_file_name, dir;
|
| @@ -1055,7 +1056,14 @@ class SavePageOriginalVsSavedComparisonTest
|
| GURL(net::FilePathToFileURL(full_file_name)));
|
| DLOG(INFO) << "Verifying test expectations for saved page... : "
|
| << GetCurrentTab(browser())->GetLastCommittedURL();
|
| - AssertExpectationsAboutCurrentTab(expected_number_of_frames,
|
| + // Hidden elements, i.e., hidden frames, will be removed only from MHTML
|
| + // page. They're still kept in other types of serialization, like saving
|
| + // as a complete html page.
|
| + int expected_number_of_frames_in_saved_page =
|
| + (save_page_type == content::SAVE_PAGE_TYPE_AS_MHTML) ?
|
| + expected_number_of_frames_in_mhtml_page :
|
| + expected_number_of_frames_in_original_page;
|
| + AssertExpectationsAboutCurrentTab(expected_number_of_frames_in_saved_page,
|
| expected_substrings);
|
| }
|
|
|
| @@ -1088,7 +1096,7 @@ class SavePageOriginalVsSavedComparisonTest
|
| return;
|
|
|
| TestOriginalVsSavedPage(save_page_type, url, expected_number_of_frames,
|
| - expected_substrings);
|
| + expected_number_of_frames, expected_substrings);
|
| }
|
|
|
| private:
|
| @@ -1155,7 +1163,7 @@ IN_PROC_BROWSER_TEST_P(SavePageOriginalVsSavedComparisonTest, CrossSite) {
|
| GURL url(
|
| embedded_test_server()->GetURL("a.com", "/save_page/frames-xsite.htm"));
|
|
|
| - TestOriginalVsSavedPage(save_page_type, url, 3, expected_substrings);
|
| + TestOriginalVsSavedPage(save_page_type, url, 3, 3, expected_substrings);
|
| }
|
|
|
| // Test compares original-vs-saved for a page with <object> elements.
|
| @@ -1197,7 +1205,7 @@ IN_PROC_BROWSER_TEST_P(SavePageOriginalVsSavedComparisonTest, AboutBlank) {
|
| GURL url(embedded_test_server()->GetURL("a.com",
|
| "/save_page/frames-about-blank.htm"));
|
|
|
| - TestOriginalVsSavedPage(save_page_type, url, 4, expected_substrings);
|
| + TestOriginalVsSavedPage(save_page_type, url, 4, 4, expected_substrings);
|
| }
|
|
|
| // Test compares original-vs-saved for a page with nested frames.
|
| @@ -1216,7 +1224,7 @@ IN_PROC_BROWSER_TEST_P(SavePageOriginalVsSavedComparisonTest, NestedFrames) {
|
| GURL url(
|
| embedded_test_server()->GetURL("a.com", "/save_page/frames-nested.htm"));
|
|
|
| - TestOriginalVsSavedPage(save_page_type, url, 3, expected_substrings);
|
| + TestOriginalVsSavedPage(save_page_type, url, 3, 3, expected_substrings);
|
| }
|
|
|
| // Test for crbug.com/106364 and crbug.com/538188.
|
| @@ -1239,7 +1247,7 @@ IN_PROC_BROWSER_TEST_P(SavePageOriginalVsSavedComparisonTest, RuntimeChanges) {
|
| GURL url(embedded_test_server()->GetURL(
|
| "a.com", "/save_page/frames-runtime-changes.htm?do_runtime_changes=1"));
|
|
|
| - TestOriginalVsSavedPage(save_page_type, url, 5, expected_substrings);
|
| + TestOriginalVsSavedPage(save_page_type, url, 5, 5, expected_substrings);
|
| }
|
|
|
| // Test for saving frames with various encodings:
|
| @@ -1279,7 +1287,7 @@ IN_PROC_BROWSER_TEST_P(SavePageOriginalVsSavedComparisonTest, Encoding) {
|
| if (save_page_type == content::SAVE_PAGE_TYPE_AS_MHTML)
|
| return;
|
|
|
| - TestOriginalVsSavedPage(save_page_type, url, 7, expected_substrings);
|
| + TestOriginalVsSavedPage(save_page_type, url, 7, 7, expected_substrings);
|
| }
|
|
|
| // Test for saving style element and attribute (see also crbug.com/568293).
|
| @@ -1288,13 +1296,15 @@ IN_PROC_BROWSER_TEST_P(SavePageOriginalVsSavedComparisonTest, Style) {
|
|
|
| std::string arr[] = {
|
| "style.htm: af84c3ca-0fc6-4b0d-bf7a-5ac18a4dab62",
|
| - "frameE: c9539ccd-47b0-47cf-a03b-734614865872",
|
| + "frameF: c9539ccd-47b0-47cf-a03b-734614865872",
|
| };
|
| std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr));
|
|
|
| GURL url(embedded_test_server()->GetURL("a.com", "/save_page/style.htm"));
|
|
|
| - TestOriginalVsSavedPage(save_page_type, url, 6, expected_substrings);
|
| + // The original page has 7 iframes. 2 of them are both hidden and affecting
|
| + // no layout. So these two are excluded from the saved page.
|
| + TestOriginalVsSavedPage(save_page_type, url, 7, 5, expected_substrings);
|
| }
|
|
|
| // Test for saving a page with broken subresources:
|
| @@ -1315,7 +1325,7 @@ IN_PROC_BROWSER_TEST_P(SavePageOriginalVsSavedComparisonTest, BrokenImage) {
|
| GURL url(embedded_test_server()->GetURL("127.0.0.1",
|
| "/save_page/broken-image.htm"));
|
|
|
| - TestOriginalVsSavedPage(save_page_type, url, 1, expected_substrings);
|
| + TestOriginalVsSavedPage(save_page_type, url, 1, 1, expected_substrings);
|
| }
|
|
|
| INSTANTIATE_TEST_CASE_P(
|
|
|