OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "config.h" | 5 #include "config.h" |
6 #include "core/html/parser/HTMLPreloadScanner.h" | 6 #include "core/html/parser/HTMLPreloadScanner.h" |
7 | 7 |
8 #include "core/MediaTypeNames.h" | 8 #include "core/MediaTypeNames.h" |
9 #include "core/css/MediaValuesCached.h" | 9 #include "core/css/MediaValuesCached.h" |
10 #include "core/fetch/ClientHintsPreferences.h" | 10 #include "core/fetch/ClientHintsPreferences.h" |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 private: | 130 private: |
131 OwnPtr<DummyPageHolder> m_dummyPageHolder; | 131 OwnPtr<DummyPageHolder> m_dummyPageHolder; |
132 OwnPtr<HTMLPreloadScanner> m_scanner; | 132 OwnPtr<HTMLPreloadScanner> m_scanner; |
133 }; | 133 }; |
134 | 134 |
135 TEST_F(HTMLPreloadScannerTest, testImages) | 135 TEST_F(HTMLPreloadScannerTest, testImages) |
136 { | 136 { |
137 TestCase testCases[] = { | 137 TestCase testCases[] = { |
138 {"http://example.test", "<img src='bla.gif'>", "bla.gif", "http://exampl
e.test/", Resource::Image, 0}, | 138 {"http://example.test", "<img src='bla.gif'>", "bla.gif", "http://exampl
e.test/", Resource::Image, 0}, |
139 {"http://example.test", "<img srcset='bla.gif 320w, blabla.gif 640w'>",
"blabla.gif", "http://example.test/", Resource::Image, 0}, | 139 {"http://example.test", "<img srcset='bla.gif 320w, blabla.gif 640w'>",
"blabla.gif", "http://example.test/", Resource::Image, 0}, |
140 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", "
http://example.test/", Resource::Image, 0}, | 140 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", "
http://example.test/", Resource::Image, 250}, |
141 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 0}, | 141 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 250}, |
142 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 0}, | 142 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 250}, |
143 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w'>", "bla2.gif", "http://example.test/", Resource::Image, 250}, | 143 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w'>", "bla2.gif", "http://example.test/", Resource::Image, 250}, |
144 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w'>", "bla3.gif", "http://example.test/", Resource::Image, 2
50}, | 144 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w'>", "bla3.gif", "http://example.test/", Resource::Image, 2
50}, |
145 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 145 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
146 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' sizes='50vw'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 146 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' sizes='50vw'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
147 {"http://example.test", "<img src='bla.gif' sizes='50vw' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 147 {"http://example.test", "<img src='bla.gif' sizes='50vw' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
148 {"http://example.test", "<img sizes='50vw' srcset='bla2.gif 100w, bla3.g
if 250w, bla4.gif 500w' src='bla.gif'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 148 {"http://example.test", "<img sizes='50vw' srcset='bla2.gif 100w, bla3.g
if 250w, bla4.gif 500w' src='bla.gif'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
149 {"http://example.test", "<img srcset='bla2.gif 100w, bla3.gif 250w, bla4
.gif 500w' src='bla.gif' sizes='50vw'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 149 {"http://example.test", "<img srcset='bla2.gif 100w, bla3.gif 250w, bla4
.gif 500w' src='bla.gif' sizes='50vw'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
150 {"http://example.test", "<img srcset='bla2.gif 100w, bla3.gif 250w, bla4
.gif 500w' sizes='50vw' src='bla.gif'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 150 {"http://example.test", "<img srcset='bla2.gif 100w, bla3.gif 250w, bla4
.gif 500w' sizes='50vw' src='bla.gif'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
151 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Resource::Image,
0}, | 151 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Resource::Image,
0}, |
152 {"http://example.test", "<img width='100' src='bla.gif' srcset='bla2.gif
100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Reso
urce::Image, 100}, | 152 {"http://example.test", "<img width='100' src='bla.gif' srcset='bla2.gif
100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Reso
urce::Image, 100}, |
153 {"http://example.test", "<img width='100px' src='bla.gif' srcset='bla2.g
if 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Re
source::Image, 100}, | 153 {"http://example.test", "<img width='100px' src='bla.gif' srcset='bla2.g
if 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Re
source::Image, 100}, |
154 {"http://example.test", "<img width='100bla' src='bla.gif' srcset='bla2.
gif 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", R
esource::Image, 100}, | 154 {"http://example.test", "<img width='100bla' src='bla.gif' srcset='bla2.
gif 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", R
esource::Image, 100}, |
155 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' width='100bla' >", "bla4.gif", "http://example.test/",
Resource::Image, 100}, | 155 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' width='100bla' >", "bla4.gif", "http://example.test/",
Resource::Image, 100}, |
156 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' width='100bla' width='50'>", "bla4.gif", "http://exampl
e.test/", Resource::Image, 100}, | 156 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' width='100bla' width='50'>", "bla4.gif", "http://exampl
e.test/", Resource::Image, 100}, |
157 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' width='100%' width='50'>", "bla4.gif", "http://example.
test/", Resource::Image, 0}, | 157 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' width='100%' width='50'>", "bla4.gif", "http://example.
test/", Resource::Image, 0}, |
158 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' width='100' sizes='50vw'>", "bla4.gif", "http://example
.test/", Resource::Image, 250}, | 158 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' width='100' sizes='50vw'>", "bla4.gif", "http://example
.test/", Resource::Image, 250}, |
159 {"http://example.test", "<img width='100%' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 0}, | 159 {"http://example.test", "<img width='100%' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 0}, |
160 {"http://example.test", "<img width='100*' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 0}, | 160 {"http://example.test", "<img width='100*' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 0}, |
161 }; | 161 }; |
162 | 162 |
163 for (const auto& testCase : testCases) | 163 for (const auto& testCase : testCases) |
164 test(testCase); | 164 test(testCase); |
165 } | 165 } |
166 | 166 |
167 TEST_F(HTMLPreloadScannerTest, testImagesWithViewport) | 167 TEST_F(HTMLPreloadScannerTest, testImagesWithViewport) |
168 { | 168 { |
169 TestCase testCases[] = { | 169 TestCase testCases[] = { |
170 {"http://example.test", "<meta name=viewport content='width=160'><img sr
cset='bla.gif 320w, blabla.gif 640w'>", "bla.gif", "http://example.test/", Resou
rce::Image, 0}, | 170 {"http://example.test", "<meta name=viewport content='width=160'><img sr
cset='bla.gif 320w, blabla.gif 640w'>", "bla.gif", "http://example.test/", Resou
rce::Image, 0}, |
171 {"http://example.test", "<img src='bla.gif'>", "bla.gif", "http://exampl
e.test/", Resource::Image, 0}, | 171 {"http://example.test", "<img src='bla.gif'>", "bla.gif", "http://exampl
e.test/", Resource::Image, 0}, |
172 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", "
http://example.test/", Resource::Image, 0}, | 172 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", "
http://example.test/", Resource::Image, 80}, |
173 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 0}, | 173 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 80}, |
174 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 0}, | 174 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 80}, |
175 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 160w'>", "bla2.gif", "http://example.test/", Resource::Image, 80}, | 175 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 160w'>", "bla2.gif", "http://example.test/", Resource::Image, 80}, |
176 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 160w, bla3.gif 250w'>", "bla2.gif", "http://example.test/", Resource::Image, 8
0}, | 176 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 160w, bla3.gif 250w'>", "bla2.gif", "http://example.test/", Resource::Image, 8
0}, |
177 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 160w, bla3.gif 250w, bla4.gif 500w'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, | 177 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 160w, bla3.gif 250w, bla4.gif 500w'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, |
178 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 160w, bla3.
gif 250w, bla4.gif 500w' sizes='50vw'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, | 178 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 160w, bla3.
gif 250w, bla4.gif 500w' sizes='50vw'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, |
179 {"http://example.test", "<img src='bla.gif' sizes='50vw' srcset='bla2.gi
f 160w, bla3.gif 250w, bla4.gif 500w'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, | 179 {"http://example.test", "<img src='bla.gif' sizes='50vw' srcset='bla2.gi
f 160w, bla3.gif 250w, bla4.gif 500w'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, |
180 {"http://example.test", "<img sizes='50vw' srcset='bla2.gif 160w, bla3.g
if 250w, bla4.gif 500w' src='bla.gif'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, | 180 {"http://example.test", "<img sizes='50vw' srcset='bla2.gif 160w, bla3.g
if 250w, bla4.gif 500w' src='bla.gif'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, |
181 {"http://example.test", "<img srcset='bla2.gif 160w, bla3.gif 250w, bla4
.gif 500w' src='bla.gif' sizes='50vw'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, | 181 {"http://example.test", "<img srcset='bla2.gif 160w, bla3.gif 250w, bla4
.gif 500w' src='bla.gif' sizes='50vw'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, |
182 {"http://example.test", "<img srcset='bla2.gif 160w, bla3.gif 250w, bla4
.gif 500w' sizes='50vw' src='bla.gif'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, | 182 {"http://example.test", "<img srcset='bla2.gif 160w, bla3.gif 250w, bla4
.gif 500w' sizes='50vw' src='bla.gif'>", "bla2.gif", "http://example.test/", Res
ource::Image, 80}, |
183 }; | 183 }; |
184 | 184 |
185 for (const auto& testCase : testCases) | 185 for (const auto& testCase : testCases) |
186 test(testCase); | 186 test(testCase); |
187 } | 187 } |
188 | 188 |
189 TEST_F(HTMLPreloadScannerTest, testImagesWithViewportDisabled) | 189 TEST_F(HTMLPreloadScannerTest, testImagesWithViewportDisabled) |
190 { | 190 { |
191 runSetUp(false); | 191 runSetUp(false); |
192 TestCase testCases[] = { | 192 TestCase testCases[] = { |
193 {"http://example.test", "<meta name=viewport content='width=160'><img sr
c='bla.gif'>", "bla.gif", "http://example.test/", Resource::Image, 0}, | 193 {"http://example.test", "<meta name=viewport content='width=160'><img sr
c='bla.gif'>", "bla.gif", "http://example.test/", Resource::Image, 0}, |
194 {"http://example.test", "<img srcset='bla.gif 320w, blabla.gif 640w'>",
"blabla.gif", "http://example.test/", Resource::Image, 0}, | 194 {"http://example.test", "<img srcset='bla.gif 320w, blabla.gif 640w'>",
"blabla.gif", "http://example.test/", Resource::Image, 0}, |
195 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", "
http://example.test/", Resource::Image, 0}, | 195 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", "
http://example.test/", Resource::Image, 250}, |
196 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 0}, | 196 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 250}, |
197 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 0}, | 197 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 250}, |
198 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w'>", "bla2.gif", "http://example.test/", Resource::Image, 250}, | 198 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w'>", "bla2.gif", "http://example.test/", Resource::Image, 250}, |
199 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w'>", "bla3.gif", "http://example.test/", Resource::Image, 2
50}, | 199 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w'>", "bla3.gif", "http://example.test/", Resource::Image, 2
50}, |
200 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 200 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
201 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' sizes='50vw'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 201 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3.
gif 250w, bla4.gif 500w' sizes='50vw'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
202 {"http://example.test", "<img src='bla.gif' sizes='50vw' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 202 {"http://example.test", "<img src='bla.gif' sizes='50vw' srcset='bla2.gi
f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
203 {"http://example.test", "<img sizes='50vw' srcset='bla2.gif 100w, bla3.g
if 250w, bla4.gif 500w' src='bla.gif'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 203 {"http://example.test", "<img sizes='50vw' srcset='bla2.gif 100w, bla3.g
if 250w, bla4.gif 500w' src='bla.gif'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
204 {"http://example.test", "<img srcset='bla2.gif 100w, bla3.gif 250w, bla4
.gif 500w' src='bla.gif' sizes='50vw'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 204 {"http://example.test", "<img srcset='bla2.gif 100w, bla3.gif 250w, bla4
.gif 500w' src='bla.gif' sizes='50vw'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
205 {"http://example.test", "<img srcset='bla2.gif 100w, bla3.gif 250w, bla4
.gif 500w' sizes='50vw' src='bla.gif'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, | 205 {"http://example.test", "<img srcset='bla2.gif 100w, bla3.gif 250w, bla4
.gif 500w' sizes='50vw' src='bla.gif'>", "bla4.gif", "http://example.test/", Res
ource::Image, 250}, |
206 }; | 206 }; |
207 | 207 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 {"http://example.test", "<link rel=preconnect href=http://example2.test
crossorigin='use-credentials'>", "http://example2.test", CrossOriginAttributeUse
Credentials}, | 259 {"http://example.test", "<link rel=preconnect href=http://example2.test
crossorigin='use-credentials'>", "http://example2.test", CrossOriginAttributeUse
Credentials}, |
260 {"http://example.test", "<link rel=preconnected href=http://example2.tes
t crossorigin='use-credentials'>", nullptr, CrossOriginAttributeNotSet}, | 260 {"http://example.test", "<link rel=preconnected href=http://example2.tes
t crossorigin='use-credentials'>", nullptr, CrossOriginAttributeNotSet}, |
261 {"http://example.test", "<link rel=preconnect href=ws://example2.test cr
ossorigin='use-credentials'>", nullptr, CrossOriginAttributeNotSet}, | 261 {"http://example.test", "<link rel=preconnect href=ws://example2.test cr
ossorigin='use-credentials'>", nullptr, CrossOriginAttributeNotSet}, |
262 }; | 262 }; |
263 | 263 |
264 for (const auto& testCase : testCases) | 264 for (const auto& testCase : testCases) |
265 test(testCase); | 265 test(testCase); |
266 } | 266 } |
267 | 267 |
268 } // namespace blink | 268 } // namespace blink |
OLD | NEW |