| 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));
|
|
|