Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1318)

Unified Diff: chrome/browser/download/save_page_browsertest.cc

Issue 2538953002: Remove hidden elements from MHTML (Closed)
Patch Set: Fix trybots Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/test/data/save_page/style.htm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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(
« no previous file with comments | « no previous file | chrome/test/data/save_page/style.htm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698