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

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

Issue 1441553002: Generating CIDs in Blink during MHTML serialization. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mhtml-per-frame-page-serializer-only
Patch Set: Replace list Replaced initializer lists with array initialization. Created 5 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
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));

Powered by Google App Engine
This is Rietveld 408576698