| 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 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 }; | 89 }; |
| 90 | 90 |
| 91 // Test the cases with a single header | 91 // Test the cases with a single header |
| 92 for (const auto& testCase : cases) { | 92 for (const auto& testCase : cases) { |
| 93 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); | 93 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); |
| 94 dummyPageHolder->frame().settings()->setScriptEnabled(true); | 94 dummyPageHolder->frame().settings()->setScriptEnabled(true); |
| 95 MockLinkLoaderClient loaderClient(testCase.shouldLoad); | 95 MockLinkLoaderClient loaderClient(testCase.shouldLoad); |
| 96 LinkLoader loader(&loaderClient); | 96 LinkLoader loader(&loaderClient); |
| 97 KURL hrefURL = KURL(KURL(), testCase.href); | 97 KURL hrefURL = KURL(KURL(), testCase.href); |
| 98 loader.loadLink(LinkRelAttribute("preload"), | 98 loader.loadLink(LinkRelAttribute("preload"), |
| 99 AtomicString(), | 99 CrossOriginAttributeNotSet, |
| 100 String(), | 100 String(), |
| 101 testCase.as, | 101 testCase.as, |
| 102 hrefURL, | 102 hrefURL, |
| 103 dummyPageHolder->document(), | 103 dummyPageHolder->document(), |
| 104 NetworkHintsMock()); | 104 NetworkHintsMock()); |
| 105 ASSERT(dummyPageHolder->document().fetcher()); | 105 ASSERT(dummyPageHolder->document().fetcher()); |
| 106 WillBeHeapListHashSet<RawPtrWillBeMember<Resource>>* preloads = dummyPag
eHolder->document().fetcher()->preloads(); | 106 WillBeHeapListHashSet<RawPtrWillBeMember<Resource>>* preloads = dummyPag
eHolder->document().fetcher()->preloads(); |
| 107 if (testCase.shouldLoad) | 107 if (testCase.shouldLoad) |
| 108 ASSERT_NE(nullptr, preloads); | 108 ASSERT_NE(nullptr, preloads); |
| 109 if (preloads) { | 109 if (preloads) { |
| (...skipping 23 matching lines...) Expand all Loading... |
| 133 | 133 |
| 134 // Test the cases with a single header | 134 // Test the cases with a single header |
| 135 for (const auto& testCase : cases) { | 135 for (const auto& testCase : cases) { |
| 136 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); | 136 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); |
| 137 dummyPageHolder->document().settings()->setDNSPrefetchingEnabled(true); | 137 dummyPageHolder->document().settings()->setDNSPrefetchingEnabled(true); |
| 138 MockLinkLoaderClient loaderClient(testCase.shouldLoad); | 138 MockLinkLoaderClient loaderClient(testCase.shouldLoad); |
| 139 LinkLoader loader(&loaderClient); | 139 LinkLoader loader(&loaderClient); |
| 140 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); | 140 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); |
| 141 NetworkHintsMock networkHints; | 141 NetworkHintsMock networkHints; |
| 142 loader.loadLink(LinkRelAttribute("dns-prefetch"), | 142 loader.loadLink(LinkRelAttribute("dns-prefetch"), |
| 143 AtomicString(), | 143 CrossOriginAttributeNotSet, |
| 144 String(), | 144 String(), |
| 145 String(), | 145 String(), |
| 146 hrefURL, | 146 hrefURL, |
| 147 dummyPageHolder->document(), | 147 dummyPageHolder->document(), |
| 148 networkHints); | 148 networkHints); |
| 149 ASSERT_FALSE(networkHints.didPreconnect()); | 149 ASSERT_FALSE(networkHints.didPreconnect()); |
| 150 ASSERT_EQ(testCase.shouldLoad, networkHints.didDnsPrefetch()); | 150 ASSERT_EQ(testCase.shouldLoad, networkHints.didDnsPrefetch()); |
| 151 } | 151 } |
| 152 } | 152 } |
| 153 | 153 |
| 154 TEST(LinkLoaderTest, Preconnect) | 154 TEST(LinkLoaderTest, Preconnect) |
| 155 { | 155 { |
| 156 struct { | 156 struct { |
| 157 const char* href; | 157 const char* href; |
| 158 const char* crossOrigin; | 158 CrossOriginAttributeValue crossOrigin; |
| 159 const bool shouldLoad; | 159 const bool shouldLoad; |
| 160 const bool isHTTPS; | 160 const bool isHTTPS; |
| 161 const bool isCrossOrigin; | 161 const bool isCrossOrigin; |
| 162 } cases[] = { | 162 } cases[] = { |
| 163 {"http://example.com/", nullptr, true, false, false}, | 163 {"http://example.com/", CrossOriginAttributeNotSet, true, false, false}, |
| 164 {"https://example.com/", nullptr, true, true, false}, | 164 {"https://example.com/", CrossOriginAttributeNotSet, true, true, false}, |
| 165 {"http://example.com/", "anonymous", true, false, true}, | 165 {"http://example.com/", CrossOriginAttributeAnonymous, true, false, true
}, |
| 166 {"//example.com/", nullptr, true, false, false}, | 166 {"//example.com/", CrossOriginAttributeNotSet, true, false, false}, |
| 167 }; | 167 }; |
| 168 | 168 |
| 169 // Test the cases with a single header | 169 // Test the cases with a single header |
| 170 for (const auto& testCase : cases) { | 170 for (const auto& testCase : cases) { |
| 171 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); | 171 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz
e(500, 500)); |
| 172 MockLinkLoaderClient loaderClient(testCase.shouldLoad); | 172 MockLinkLoaderClient loaderClient(testCase.shouldLoad); |
| 173 LinkLoader loader(&loaderClient); | 173 LinkLoader loader(&loaderClient); |
| 174 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); | 174 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co
m")), testCase.href); |
| 175 NetworkHintsMock networkHints; | 175 NetworkHintsMock networkHints; |
| 176 loader.loadLink(LinkRelAttribute("preconnect"), | 176 loader.loadLink(LinkRelAttribute("preconnect"), |
| 177 testCase.crossOrigin, | 177 testCase.crossOrigin, |
| 178 String(), | 178 String(), |
| 179 String(), | 179 String(), |
| 180 hrefURL, | 180 hrefURL, |
| 181 dummyPageHolder->document(), | 181 dummyPageHolder->document(), |
| 182 networkHints); | 182 networkHints); |
| 183 ASSERT_EQ(testCase.shouldLoad, networkHints.didPreconnect()); | 183 ASSERT_EQ(testCase.shouldLoad, networkHints.didPreconnect()); |
| 184 ASSERT_EQ(testCase.isHTTPS, networkHints.isHTTPS()); | 184 ASSERT_EQ(testCase.isHTTPS, networkHints.isHTTPS()); |
| 185 ASSERT_EQ(testCase.isCrossOrigin, networkHints.isCrossOrigin()); | 185 ASSERT_EQ(testCase.isCrossOrigin, networkHints.isCrossOrigin()); |
| 186 } | 186 } |
| 187 } | 187 } |
| 188 | 188 |
| 189 } // namespace blink | 189 } // namespace blink |
| OLD | NEW |