| 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/loader/LinkLoader.h" | 6 #include "core/loader/LinkLoader.h" |
| 7 | 7 |
| 8 #include "core/fetch/ResourceFetcher.h" | 8 #include "core/fetch/ResourceFetcher.h" |
| 9 #include "core/frame/Settings.h" | 9 #include "core/frame/Settings.h" |
| 10 #include "core/html/LinkRelAttribute.h" | 10 #include "core/html/LinkRelAttribute.h" |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 }; | 99 }; |
| 100 | 100 |
| 101 // Test the cases with a single header | 101 // Test the cases with a single header |
| 102 for (const auto& testCase : cases) { | 102 for (const auto& testCase : cases) { |
| 103 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); | 103 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); |
| 104 dummyPageHolder->frame().settings()->setScriptEnabled(true); | 104 dummyPageHolder->frame().settings()->setScriptEnabled(true); |
| 105 MockLinkLoaderClient loaderClient(testCase.shouldLoad); | 105 MockLinkLoaderClient loaderClient(testCase.shouldLoad); |
| 106 LinkLoader loader(&loaderClient); | 106 LinkLoader loader(&loaderClient); |
| 107 KURL hrefURL = KURL(KURL(), testCase.href); | 107 KURL hrefURL = KURL(KURL(), testCase.href); |
| 108 loader.loadLink(LinkRelAttribute("preload"), | 108 loader.loadLink(LinkRelAttribute("preload"), |
| 109 AtomicString(), | 109 CrossOriginAttributeNotSet, |
| 110 String(), | 110 String(), |
| 111 testCase.as, | 111 testCase.as, |
| 112 hrefURL, | 112 hrefURL, |
| 113 dummyPageHolder->document(), | 113 dummyPageHolder->document(), |
| 114 NetworkHintsMock()); | 114 NetworkHintsMock()); |
| 115 ASSERT(dummyPageHolder->document().fetcher()); | 115 ASSERT(dummyPageHolder->document().fetcher()); |
| 116 WillBeHeapListHashSet<RawPtrWillBeMember<Resource>>* preloads = dummyPag
eHolder->document().fetcher()->preloads(); | 116 WillBeHeapListHashSet<RawPtrWillBeMember<Resource>>* preloads = dummyPag
eHolder->document().fetcher()->preloads(); |
| 117 if (testCase.shouldLoad) | 117 if (testCase.shouldLoad) |
| 118 ASSERT_NE(nullptr, preloads); | 118 ASSERT_NE(nullptr, preloads); |
| 119 if (preloads) { | 119 if (preloads) { |
| (...skipping 27 matching lines...) Expand all Loading... |
| 147 | 147 |
| 148 // Test the cases with a single header | 148 // Test the cases with a single header |
| 149 for (const auto& testCase : cases) { | 149 for (const auto& testCase : cases) { |
| 150 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); | 150 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); |
| 151 dummyPageHolder->document().settings()->setDNSPrefetchingEnabled(true); | 151 dummyPageHolder->document().settings()->setDNSPrefetchingEnabled(true); |
| 152 MockLinkLoaderClient loaderClient(testCase.shouldLoad); | 152 MockLinkLoaderClient loaderClient(testCase.shouldLoad); |
| 153 LinkLoader loader(&loaderClient); | 153 LinkLoader loader(&loaderClient); |
| 154 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); | 154 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); |
| 155 NetworkHintsMock networkHints; | 155 NetworkHintsMock networkHints; |
| 156 loader.loadLink(LinkRelAttribute("dns-prefetch"), | 156 loader.loadLink(LinkRelAttribute("dns-prefetch"), |
| 157 AtomicString(), | 157 CrossOriginAttributeNotSet, |
| 158 String(), | 158 String(), |
| 159 String(), | 159 String(), |
| 160 hrefURL, | 160 hrefURL, |
| 161 dummyPageHolder->document(), | 161 dummyPageHolder->document(), |
| 162 networkHints); | 162 networkHints); |
| 163 ASSERT_FALSE(networkHints.didPreconnect()); | 163 ASSERT_FALSE(networkHints.didPreconnect()); |
| 164 ASSERT_EQ(testCase.shouldLoad, networkHints.didDnsPrefetch()); | 164 ASSERT_EQ(testCase.shouldLoad, networkHints.didDnsPrefetch()); |
| 165 } | 165 } |
| 166 } | 166 } |
| 167 | 167 |
| 168 TEST(LinkLoaderTest, Preconnect) | 168 TEST(LinkLoaderTest, Preconnect) |
| 169 { | 169 { |
| 170 struct { | 170 struct { |
| 171 const char* href; | 171 const char* href; |
| 172 const char* crossOrigin; | 172 CrossOriginAttributeValue crossOrigin; |
| 173 const bool shouldLoad; | 173 const bool shouldLoad; |
| 174 const bool isHTTPS; | 174 const bool isHTTPS; |
| 175 const bool isCrossOrigin; | 175 const bool isCrossOrigin; |
| 176 } cases[] = { | 176 } cases[] = { |
| 177 {"http://example.com/", nullptr, true, false, false}, | 177 {"http://example.com/", CrossOriginAttributeNotSet, true, false, false}, |
| 178 {"https://example.com/", nullptr, true, true, false}, | 178 {"https://example.com/", CrossOriginAttributeNotSet, true, true, false}, |
| 179 {"http://example.com/", "anonymous", true, false, true}, | 179 {"http://example.com/", CrossOriginAttributeAnonymous, true, false, true
}, |
| 180 {"//example.com/", nullptr, true, false, false}, | 180 {"//example.com/", CrossOriginAttributeNotSet, true, false, false}, |
| 181 }; | 181 }; |
| 182 | 182 |
| 183 // Test the cases with a single header | 183 // Test the cases with a single header |
| 184 for (const auto& testCase : cases) { | 184 for (const auto& testCase : cases) { |
| 185 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); | 185 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); |
| 186 MockLinkLoaderClient loaderClient(testCase.shouldLoad); | 186 MockLinkLoaderClient loaderClient(testCase.shouldLoad); |
| 187 LinkLoader loader(&loaderClient); | 187 LinkLoader loader(&loaderClient); |
| 188 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); | 188 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); |
| 189 NetworkHintsMock networkHints; | 189 NetworkHintsMock networkHints; |
| 190 loader.loadLink(LinkRelAttribute("preconnect"), | 190 loader.loadLink(LinkRelAttribute("preconnect"), |
| 191 testCase.crossOrigin, | 191 testCase.crossOrigin, |
| 192 String(), | 192 String(), |
| 193 String(), | 193 String(), |
| 194 hrefURL, | 194 hrefURL, |
| 195 dummyPageHolder->document(), | 195 dummyPageHolder->document(), |
| 196 networkHints); | 196 networkHints); |
| 197 ASSERT_EQ(testCase.shouldLoad, networkHints.didPreconnect()); | 197 ASSERT_EQ(testCase.shouldLoad, networkHints.didPreconnect()); |
| 198 ASSERT_EQ(testCase.isHTTPS, networkHints.isHTTPS()); | 198 ASSERT_EQ(testCase.isHTTPS, networkHints.isHTTPS()); |
| 199 ASSERT_EQ(testCase.isCrossOrigin, networkHints.isCrossOrigin()); | 199 ASSERT_EQ(testCase.isCrossOrigin, networkHints.isCrossOrigin()); |
| 200 } | 200 } |
| 201 } | 201 } |
| 202 | 202 |
| 203 } // namespace blink | 203 } // namespace blink |
| OLD | NEW |