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 "core/loader/LinkLoader.h" | 5 #include "core/loader/LinkLoader.h" |
6 | 6 |
7 #include "core/fetch/ResourceFetcher.h" | 7 #include "core/fetch/ResourceFetcher.h" |
8 #include "core/frame/Settings.h" | 8 #include "core/frame/Settings.h" |
9 #include "core/html/LinkRelAttribute.h" | 9 #include "core/html/LinkRelAttribute.h" |
10 #include "core/loader/DocumentLoader.h" | 10 #include "core/loader/DocumentLoader.h" |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 {"data://example.test/cat.empty", "", ResourceLoadPriorityLow, WebURLReq
uest::RequestContextSubresource, true, ""}, | 95 {"data://example.test/cat.empty", "", ResourceLoadPriorityLow, WebURLReq
uest::RequestContextSubresource, true, ""}, |
96 {"data://example.test/cat.blob", "blabla", ResourceLoadPriorityLow, WebU
RLRequest::RequestContextSubresource, true, ""}, | 96 {"data://example.test/cat.blob", "blabla", ResourceLoadPriorityLow, WebU
RLRequest::RequestContextSubresource, true, ""}, |
97 {"bla://example.test/cat.gif", "image", ResourceLoadPriorityUnresolved,
WebURLRequest::RequestContextImage, false, ""}, | 97 {"bla://example.test/cat.gif", "image", ResourceLoadPriorityUnresolved,
WebURLRequest::RequestContextImage, false, ""}, |
98 }; | 98 }; |
99 | 99 |
100 // Test the cases with a single header | 100 // Test the cases with a single header |
101 for (const auto& testCase : cases) { | 101 for (const auto& testCase : cases) { |
102 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); | 102 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); |
103 dummyPageHolder->frame().settings()->setScriptEnabled(true); | 103 dummyPageHolder->frame().settings()->setScriptEnabled(true); |
104 MockLinkLoaderClient loaderClient(testCase.shouldLoad); | 104 MockLinkLoaderClient loaderClient(testCase.shouldLoad); |
105 LinkLoader loader(&loaderClient); | 105 OwnPtrWillBeRawPtr<LinkLoader> loader = LinkLoader::create(&loaderClient
); |
106 KURL hrefURL = KURL(KURL(), testCase.href); | 106 KURL hrefURL = KURL(KURL(), testCase.href); |
107 loader.loadLink(LinkRelAttribute("preload"), | 107 loader->loadLink(LinkRelAttribute("preload"), |
108 CrossOriginAttributeNotSet, | 108 CrossOriginAttributeNotSet, |
109 String(), | 109 String(), |
110 testCase.as, | 110 testCase.as, |
111 hrefURL, | 111 hrefURL, |
112 dummyPageHolder->document(), | 112 dummyPageHolder->document(), |
113 NetworkHintsMock()); | 113 NetworkHintsMock()); |
114 ASSERT(dummyPageHolder->document().fetcher()); | 114 ASSERT(dummyPageHolder->document().fetcher()); |
115 WillBeHeapListHashSet<RawPtrWillBeMember<Resource>>* preloads = dummyPag
eHolder->document().fetcher()->preloads(); | 115 WillBeHeapListHashSet<RawPtrWillBeMember<Resource>>* preloads = dummyPag
eHolder->document().fetcher()->preloads(); |
116 if (testCase.shouldLoad) | 116 if (testCase.shouldLoad) |
117 ASSERT_NE(nullptr, preloads); | 117 ASSERT_NE(nullptr, preloads); |
(...skipping 24 matching lines...) Expand all Loading... |
142 {"//example.com/", true}, | 142 {"//example.com/", true}, |
143 }; | 143 }; |
144 | 144 |
145 // TODO(yoav): Test (and fix) shouldLoad = false | 145 // TODO(yoav): Test (and fix) shouldLoad = false |
146 | 146 |
147 // Test the cases with a single header | 147 // Test the cases with a single header |
148 for (const auto& testCase : cases) { | 148 for (const auto& testCase : cases) { |
149 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); | 149 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); |
150 dummyPageHolder->document().settings()->setDNSPrefetchingEnabled(true); | 150 dummyPageHolder->document().settings()->setDNSPrefetchingEnabled(true); |
151 MockLinkLoaderClient loaderClient(testCase.shouldLoad); | 151 MockLinkLoaderClient loaderClient(testCase.shouldLoad); |
152 LinkLoader loader(&loaderClient); | 152 OwnPtrWillBeRawPtr<LinkLoader> loader = LinkLoader::create(&loaderClient
); |
153 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); | 153 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); |
154 NetworkHintsMock networkHints; | 154 NetworkHintsMock networkHints; |
155 loader.loadLink(LinkRelAttribute("dns-prefetch"), | 155 loader->loadLink(LinkRelAttribute("dns-prefetch"), |
156 CrossOriginAttributeNotSet, | 156 CrossOriginAttributeNotSet, |
157 String(), | 157 String(), |
158 String(), | 158 String(), |
159 hrefURL, | 159 hrefURL, |
160 dummyPageHolder->document(), | 160 dummyPageHolder->document(), |
161 networkHints); | 161 networkHints); |
162 ASSERT_FALSE(networkHints.didPreconnect()); | 162 ASSERT_FALSE(networkHints.didPreconnect()); |
163 ASSERT_EQ(testCase.shouldLoad, networkHints.didDnsPrefetch()); | 163 ASSERT_EQ(testCase.shouldLoad, networkHints.didDnsPrefetch()); |
164 } | 164 } |
165 } | 165 } |
(...skipping 10 matching lines...) Expand all Loading... |
176 {"http://example.com/", CrossOriginAttributeNotSet, true, false, false}, | 176 {"http://example.com/", CrossOriginAttributeNotSet, true, false, false}, |
177 {"https://example.com/", CrossOriginAttributeNotSet, true, true, false}, | 177 {"https://example.com/", CrossOriginAttributeNotSet, true, true, false}, |
178 {"http://example.com/", CrossOriginAttributeAnonymous, true, false, true
}, | 178 {"http://example.com/", CrossOriginAttributeAnonymous, true, false, true
}, |
179 {"//example.com/", CrossOriginAttributeNotSet, true, false, false}, | 179 {"//example.com/", CrossOriginAttributeNotSet, true, false, false}, |
180 }; | 180 }; |
181 | 181 |
182 // Test the cases with a single header | 182 // Test the cases with a single header |
183 for (const auto& testCase : cases) { | 183 for (const auto& testCase : cases) { |
184 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); | 184 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); |
185 MockLinkLoaderClient loaderClient(testCase.shouldLoad); | 185 MockLinkLoaderClient loaderClient(testCase.shouldLoad); |
186 LinkLoader loader(&loaderClient); | 186 OwnPtrWillBeRawPtr<LinkLoader> loader = LinkLoader::create(&loaderClient
); |
187 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); | 187 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); |
188 NetworkHintsMock networkHints; | 188 NetworkHintsMock networkHints; |
189 loader.loadLink(LinkRelAttribute("preconnect"), | 189 loader->loadLink(LinkRelAttribute("preconnect"), |
190 testCase.crossOrigin, | 190 testCase.crossOrigin, |
191 String(), | 191 String(), |
192 String(), | 192 String(), |
193 hrefURL, | 193 hrefURL, |
194 dummyPageHolder->document(), | 194 dummyPageHolder->document(), |
195 networkHints); | 195 networkHints); |
196 ASSERT_EQ(testCase.shouldLoad, networkHints.didPreconnect()); | 196 ASSERT_EQ(testCase.shouldLoad, networkHints.didPreconnect()); |
197 ASSERT_EQ(testCase.isHTTPS, networkHints.isHTTPS()); | 197 ASSERT_EQ(testCase.isHTTPS, networkHints.isHTTPS()); |
198 ASSERT_EQ(testCase.isCrossOrigin, networkHints.isCrossOrigin()); | 198 ASSERT_EQ(testCase.isCrossOrigin, networkHints.isCrossOrigin()); |
199 } | 199 } |
200 } | 200 } |
201 | 201 |
202 } // namespace blink | 202 } // namespace blink |
OLD | NEW |