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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <string>
6 #include <vector>
7
5 #include "base/bind.h" 8 #include "base/bind.h"
6 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
7 #include "base/command_line.h" 10 #include "base/command_line.h"
8 #include "base/files/file_path.h" 11 #include "base/files/file_path.h"
9 #include "base/files/file_util.h" 12 #include "base/files/file_util.h"
10 #include "base/files/scoped_temp_dir.h" 13 #include "base/files/scoped_temp_dir.h"
11 #include "base/path_service.h" 14 #include "base/path_service.h"
12 #include "base/prefs/pref_member.h" 15 #include "base/prefs/pref_member.h"
13 #include "base/prefs/pref_service.h" 16 #include "base/prefs/pref_service.h"
14 #include "base/run_loop.h" 17 #include "base/run_loop.h"
(...skipping 974 matching lines...) Expand 10 before | Expand all | Expand 10 after
989 (*i)++; 992 (*i)++;
990 } 993 }
991 }; 994 };
992 995
993 // Test coverage for OOPIFs for CompleteHtml (crbug.com/526786) and 996 // Test coverage for OOPIFs for CompleteHtml (crbug.com/526786) and
994 // MHTML (crbug.com/538766) as well as for redirected iframes saved 997 // MHTML (crbug.com/538766) as well as for redirected iframes saved
995 // as MHTML (crbug.com/539936). 998 // as MHTML (crbug.com/539936).
996 IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, CrossSite) { 999 IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, CrossSite) {
997 content::SavePageType save_page_type = GetParam(); 1000 content::SavePageType save_page_type = GetParam();
998 1001
999 std::vector<std::string> expected_substrings{ 1002 std::string arr[] = {
1000 "frames-xsite.htm: 896fd88d-a77a-4f46-afd8-24db7d5af9c2", 1003 "frames-xsite.htm: 896fd88d-a77a-4f46-afd8-24db7d5af9c2",
1001 "a.htm: 1b8aae2b-e164-462f-bd5b-98aa366205f2", 1004 "a.htm: 1b8aae2b-e164-462f-bd5b-98aa366205f2",
1002 "b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", 1005 "b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa",
1003 }; 1006 };
1007 std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr));
1004 1008
1005 GURL url( 1009 GURL url(
1006 embedded_test_server()->GetURL("a.com", "/save_page/frames-xsite.htm")); 1010 embedded_test_server()->GetURL("a.com", "/save_page/frames-xsite.htm"));
1007 1011
1008 // TODO(lukasza): crbug.com/538766: Enable CrossSite testing of MHTML. 1012 // TODO(lukasza): crbug.com/538766: Enable CrossSite testing of MHTML.
1009 if (save_page_type == content::SAVE_PAGE_TYPE_AS_MHTML) 1013 if (save_page_type == content::SAVE_PAGE_TYPE_AS_MHTML)
1010 return; 1014 return;
1011 1015
1012 // TODO(lukasza/paulmeyer): crbug.com/457440: Can enable verification 1016 // TODO(lukasza/paulmeyer): crbug.com/457440: Can enable verification
1013 // of the original page once find-in-page works for OOP frames. 1017 // of the original page once find-in-page works for OOP frames.
1014 bool skip_verification_of_original_page = true; 1018 bool skip_verification_of_original_page = true;
1015 1019
1016 TestMultiFramePage(save_page_type, url, 3, expected_substrings, 1020 TestMultiFramePage(save_page_type, url, 3, expected_substrings,
1017 skip_verification_of_original_page); 1021 skip_verification_of_original_page);
1018 } 1022 }
1019 1023
1020 // Test for crbug.com/553478. 1024 // Test for crbug.com/553478.
1021 IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, ObjectElements) { 1025 IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, ObjectElements) {
1022 content::SavePageType save_page_type = GetParam(); 1026 content::SavePageType save_page_type = GetParam();
1023 1027
1024 // 4 = main frame + iframe + object w/ html doc + object w/ pdf doc 1028 // 4 = main frame + iframe + object w/ html doc + object w/ pdf doc
1025 // (svg and png objects do not get a separate frame) 1029 // (svg and png objects do not get a separate frame)
1026 int expected_number_of_frames = 6; 1030 int expected_number_of_frames = 6;
1027 1031
1028 std::vector<std::string> expected_substrings{ 1032 std::string arr[] = {
1029 "frames-objects.htm: 8da13db4-a512-4d9b-b1c5-dc1c134234b9", 1033 "frames-objects.htm: 8da13db4-a512-4d9b-b1c5-dc1c134234b9",
1030 "a.htm: 1b8aae2b-e164-462f-bd5b-98aa366205f2", 1034 "a.htm: 1b8aae2b-e164-462f-bd5b-98aa366205f2",
1031 "b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", 1035 "b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa",
1032 "frames-nested.htm: 4388232f-8d45-4d2e-9807-721b381be153", 1036 "frames-nested.htm: 4388232f-8d45-4d2e-9807-721b381be153",
1033 "frames-nested2.htm: 6d23dc47-f283-4977-96ec-66bcf72301a4", 1037 "frames-nested2.htm: 6d23dc47-f283-4977-96ec-66bcf72301a4",
1034 }; 1038 };
1039 std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr));
1035 1040
1036 GURL url( 1041 GURL url(
1037 embedded_test_server()->GetURL("a.com", "/save_page/frames-objects.htm")); 1042 embedded_test_server()->GetURL("a.com", "/save_page/frames-objects.htm"));
1038 1043
1039 // TODO(lukasza): crbug.com/553478: Enable <object> testing of MHTML. 1044 // TODO(lukasza): crbug.com/553478: Enable <object> testing of MHTML.
1040 if (save_page_type == content::SAVE_PAGE_TYPE_AS_MHTML) 1045 if (save_page_type == content::SAVE_PAGE_TYPE_AS_MHTML)
1041 return; 1046 return;
1042 1047
1043 TestMultiFramePage(save_page_type, url, expected_number_of_frames, 1048 TestMultiFramePage(save_page_type, url, expected_number_of_frames,
1044 expected_substrings); 1049 expected_substrings);
1045 } 1050 }
1046 1051
1047 IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, AboutBlank) { 1052 IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, AboutBlank) {
1048 content::SavePageType save_page_type = GetParam(); 1053 content::SavePageType save_page_type = GetParam();
1049 1054
1050 std::vector<std::string> expected_substrings{ 1055 std::string arr[] = {
1051 "main: acb0609d-eb10-4c26-83e2-ad8afb7b0ff3", 1056 "main: acb0609d-eb10-4c26-83e2-ad8afb7b0ff3",
1052 "sub1: b124df3a-d39f-47a1-ae04-5bb5d0bf549e", 1057 "sub1: b124df3a-d39f-47a1-ae04-5bb5d0bf549e",
1053 "sub2: 07014068-604d-45ae-884f-a068cfe7bc0a", 1058 "sub2: 07014068-604d-45ae-884f-a068cfe7bc0a",
1054 "sub3: 06cc8fcc-c692-4a1a-a10f-1645b746e8f4", 1059 "sub3: 06cc8fcc-c692-4a1a-a10f-1645b746e8f4",
1055 }; 1060 };
1061 std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr));
1056 1062
1057 GURL url(embedded_test_server()->GetURL("a.com", 1063 GURL url(embedded_test_server()->GetURL("a.com",
1058 "/save_page/frames-about-blank.htm")); 1064 "/save_page/frames-about-blank.htm"));
1059 1065
1060 TestMultiFramePage(save_page_type, url, 4, expected_substrings); 1066 TestMultiFramePage(save_page_type, url, 4, expected_substrings);
1061 } 1067 }
1062 1068
1063 // Test for crbug.com/554666. 1069 // Test for crbug.com/554666.
1064 IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, NestedFrames) { 1070 IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, NestedFrames) {
1065 content::SavePageType save_page_type = GetParam(); 1071 content::SavePageType save_page_type = GetParam();
1066 1072
1067 std::vector<std::string> expected_substrings{ 1073 std::string arr[] = {
1068 "frames-nested.htm: 4388232f-8d45-4d2e-9807-721b381be153", 1074 "frames-nested.htm: 4388232f-8d45-4d2e-9807-721b381be153",
1069 "frames-nested2.htm: 6d23dc47-f283-4977-96ec-66bcf72301a4", 1075 "frames-nested2.htm: 6d23dc47-f283-4977-96ec-66bcf72301a4",
1070 "b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", 1076 "b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa",
1071 }; 1077 };
1078 std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr));
1072 1079
1073 GURL url( 1080 GURL url(
1074 embedded_test_server()->GetURL("a.com", "/save_page/frames-nested.htm")); 1081 embedded_test_server()->GetURL("a.com", "/save_page/frames-nested.htm"));
1075 1082
1076 TestMultiFramePage(save_page_type, url, 3, expected_substrings); 1083 TestMultiFramePage(save_page_type, url, 3, expected_substrings);
1077 } 1084 }
1078 1085
1086 // Test for crbug.com/106364 and crbug.com/538188.
1087 // Test frames have the same uri ...
1088 // subframe1 and subframe2 - both have src=b.htm
1089 // subframe3 and subframe4 - about:blank (no src, only srcdoc attribute).
1090 // ... but different content (generated by main frame's javascript).
1091 IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, RuntimeChanges) {
1092 content::SavePageType save_page_type = GetParam();
1093
1094 std::string arr[] = {
1095 "frames-runtime-changes.htm: 4388232f-8d45-4d2e-9807-721b381be153",
1096 "subframe1: 21595339-61fc-4854-b6df-0668328ea263",
1097 "subframe2: adf55719-15e7-45be-9eda-d12fe782a1bd",
1098 "subframe3: 50e294bf-3a5b-499d-8772-651ead26952f",
1099 "subframe4: e0ea9289-7467-4d32-ba5c-c604e8d84cb7",
1100 };
1101 std::vector<std::string> expected_substrings(std::begin(arr), std::end(arr));
1102
1103 // TODO(lukasza): crbug.com/106364: Fix complete-html mode as well.
1104 if (save_page_type == content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML)
1105 return;
1106
1107 GURL url(embedded_test_server()->GetURL(
1108 "a.com", "/save_page/frames-runtime-changes.htm?do_runtime_changes=1"));
1109
1110 TestMultiFramePage(save_page_type, url, 5, expected_substrings);
1111 }
1112
1079 INSTANTIATE_TEST_CASE_P( 1113 INSTANTIATE_TEST_CASE_P(
1080 , 1114 SaveType,
1081 SavePageMultiFrameBrowserTest, 1115 SavePageMultiFrameBrowserTest,
1082 ::testing::Values(content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, 1116 ::testing::Values(content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML,
1083 content::SAVE_PAGE_TYPE_AS_MHTML)); 1117 content::SAVE_PAGE_TYPE_AS_MHTML));
1084 1118
1085 } // namespace 1119 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698