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