OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "public/web/WebDocument.h" | 5 #include "public/web/WebDocument.h" |
6 | 6 |
7 #include "core/CSSPropertyNames.h" | 7 #include "core/CSSPropertyNames.h" |
8 #include "core/HTMLNames.h" | 8 #include "core/HTMLNames.h" |
9 #include "core/dom/NodeComputedStyle.h" | 9 #include "core/dom/NodeComputedStyle.h" |
10 #include "core/dom/StyleEngine.h" | 10 #include "core/dom/StyleEngine.h" |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 | 132 |
133 // Crossorigin set to 'use-credentials' should trigger using credentials. | 133 // Crossorigin set to 'use-credentials' should trigger using credentials. |
134 linkManifest->setAttribute(HTMLNames::crossoriginAttr, "use-credentials"); | 134 linkManifest->setAttribute(HTMLNames::crossoriginAttr, "use-credentials"); |
135 ASSERT_TRUE(webDoc.manifestUseCredentials()); | 135 ASSERT_TRUE(webDoc.manifestUseCredentials()); |
136 } | 136 } |
137 | 137 |
138 namespace { | 138 namespace { |
139 | 139 |
140 const char* baseURLOriginA = "http://example.test:0/"; | 140 const char* baseURLOriginA = "http://example.test:0/"; |
141 const char* baseURLOriginSubA = "http://subdomain.example.test:0/"; | 141 const char* baseURLOriginSubA = "http://subdomain.example.test:0/"; |
| 142 const char* baseURLOriginSecureA = "https://example.test:0/"; |
142 const char* baseURLOriginB = "http://not-example.test:0/"; | 143 const char* baseURLOriginB = "http://not-example.test:0/"; |
143 const char* emptyFile = "first_party/empty.html"; | 144 const char* emptyFile = "first_party/empty.html"; |
144 const char* nestedData = "first_party/nested-data.html"; | 145 const char* nestedData = "first_party/nested-data.html"; |
145 const char* nestedOriginA = "first_party/nested-originA.html"; | 146 const char* nestedOriginA = "first_party/nested-originA.html"; |
146 const char* nestedOriginSubA = "first_party/nested-originSubA.html"; | 147 const char* nestedOriginSubA = "first_party/nested-originSubA.html"; |
| 148 const char* nestedOriginSecureA = "first_party/nested-originSecureA.html"; |
147 const char* nestedOriginAInOriginA = "first_party/nested-originA-in-originA.html
"; | 149 const char* nestedOriginAInOriginA = "first_party/nested-originA-in-originA.html
"; |
148 const char* nestedOriginAInOriginB = "first_party/nested-originA-in-originB.html
"; | 150 const char* nestedOriginAInOriginB = "first_party/nested-originA-in-originB.html
"; |
149 const char* nestedOriginB = "first_party/nested-originB.html"; | 151 const char* nestedOriginB = "first_party/nested-originB.html"; |
150 const char* nestedOriginBInOriginA = "first_party/nested-originB-in-originA.html
"; | 152 const char* nestedOriginBInOriginA = "first_party/nested-originB-in-originA.html
"; |
151 const char* nestedOriginBInOriginB = "first_party/nested-originB-in-originB.html
"; | 153 const char* nestedOriginBInOriginB = "first_party/nested-originB-in-originB.html
"; |
152 const char* nestedSrcDoc = "first_party/nested-srcdoc.html"; | 154 const char* nestedSrcDoc = "first_party/nested-srcdoc.html"; |
153 | 155 |
154 KURL toOriginA(const char* file) | 156 KURL toOriginA(const char* file) |
155 { | 157 { |
156 return toKURL(std::string(baseURLOriginA) + file); | 158 return toKURL(std::string(baseURLOriginA) + file); |
157 } | 159 } |
158 | 160 |
159 KURL toOriginSubA(const char* file) | 161 KURL toOriginSubA(const char* file) |
160 { | 162 { |
161 return toKURL(std::string(baseURLOriginSubA) + file); | 163 return toKURL(std::string(baseURLOriginSubA) + file); |
162 } | 164 } |
163 | 165 |
| 166 KURL toOriginSecureA(const char* file) |
| 167 { |
| 168 return toKURL(std::string(baseURLOriginSecureA) + file); |
| 169 } |
| 170 |
164 KURL toOriginB(const char* file) | 171 KURL toOriginB(const char* file) |
165 { | 172 { |
166 return toKURL(std::string(baseURLOriginB) + file); | 173 return toKURL(std::string(baseURLOriginB) + file); |
167 } | 174 } |
168 | 175 |
169 } // anonymous namespace | 176 } // anonymous namespace |
170 | 177 |
171 class WebDocumentFirstPartyTest : public WebDocumentTest { | 178 class WebDocumentFirstPartyTest : public WebDocumentTest { |
172 public: | 179 public: |
173 static void SetUpTestCase(); | 180 static void SetUpTestCase(); |
174 | 181 |
175 protected: | 182 protected: |
176 void load(const char*); | 183 void load(const char*); |
177 Document* nestedDocument() const; | 184 Document* nestedDocument() const; |
178 Document* nestedNestedDocument() const; | 185 Document* nestedNestedDocument() const; |
179 }; | 186 }; |
180 | 187 |
181 void WebDocumentFirstPartyTest::SetUpTestCase() | 188 void WebDocumentFirstPartyTest::SetUpTestCase() |
182 { | 189 { |
183 URLTestHelpers::registerMockedURLLoad(toOriginA(emptyFile), WebString::fromU
TF8(emptyFile)); | 190 URLTestHelpers::registerMockedURLLoad(toOriginA(emptyFile), WebString::fromU
TF8(emptyFile)); |
184 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedData), WebString::from
UTF8(nestedData)); | 191 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedData), WebString::from
UTF8(nestedData)); |
185 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginA), WebString::f
romUTF8(nestedOriginA)); | 192 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginA), WebString::f
romUTF8(nestedOriginA)); |
186 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginSubA), WebString
::fromUTF8(nestedOriginSubA)); | 193 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginSubA), WebString
::fromUTF8(nestedOriginSubA)); |
| 194 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginSecureA), WebStr
ing::fromUTF8(nestedOriginSecureA)); |
187 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginAInOriginA), Web
String::fromUTF8(nestedOriginAInOriginA)); | 195 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginAInOriginA), Web
String::fromUTF8(nestedOriginAInOriginA)); |
188 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginAInOriginB), Web
String::fromUTF8(nestedOriginAInOriginB)); | 196 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginAInOriginB), Web
String::fromUTF8(nestedOriginAInOriginB)); |
189 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginB), WebString::f
romUTF8(nestedOriginB)); | 197 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginB), WebString::f
romUTF8(nestedOriginB)); |
190 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginBInOriginA), Web
String::fromUTF8(nestedOriginBInOriginA)); | 198 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginBInOriginA), Web
String::fromUTF8(nestedOriginBInOriginA)); |
191 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginBInOriginB), Web
String::fromUTF8(nestedOriginBInOriginB)); | 199 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginBInOriginB), Web
String::fromUTF8(nestedOriginBInOriginB)); |
192 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedSrcDoc), WebString::fr
omUTF8(nestedSrcDoc)); | 200 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedSrcDoc), WebString::fr
omUTF8(nestedSrcDoc)); |
193 | 201 |
194 URLTestHelpers::registerMockedURLLoad(toOriginSubA(emptyFile), WebString::fr
omUTF8(emptyFile)); | 202 URLTestHelpers::registerMockedURLLoad(toOriginSubA(emptyFile), WebString::fr
omUTF8(emptyFile)); |
| 203 URLTestHelpers::registerMockedURLLoad(toOriginSecureA(emptyFile), WebString:
:fromUTF8(emptyFile)); |
195 | 204 |
196 URLTestHelpers::registerMockedURLLoad(toOriginB(emptyFile), WebString::fromU
TF8(emptyFile)); | 205 URLTestHelpers::registerMockedURLLoad(toOriginB(emptyFile), WebString::fromU
TF8(emptyFile)); |
197 URLTestHelpers::registerMockedURLLoad(toOriginB(nestedOriginA), WebString::f
romUTF8(nestedOriginA)); | 206 URLTestHelpers::registerMockedURLLoad(toOriginB(nestedOriginA), WebString::f
romUTF8(nestedOriginA)); |
198 URLTestHelpers::registerMockedURLLoad(toOriginB(nestedOriginB), WebString::f
romUTF8(nestedOriginB)); | 207 URLTestHelpers::registerMockedURLLoad(toOriginB(nestedOriginB), WebString::f
romUTF8(nestedOriginB)); |
199 } | 208 } |
200 | 209 |
201 void WebDocumentFirstPartyTest::load(const char* file) | 210 void WebDocumentFirstPartyTest::load(const char* file) |
202 { | 211 { |
203 m_webViewHelper.initializeAndLoad(std::string(baseURLOriginA) + file); | 212 m_webViewHelper.initializeAndLoad(std::string(baseURLOriginA) + file); |
204 } | 213 } |
(...skipping 24 matching lines...) Expand all Loading... |
229 } | 238 } |
230 | 239 |
231 TEST_F(WebDocumentFirstPartyTest, NestedOriginSubA) | 240 TEST_F(WebDocumentFirstPartyTest, NestedOriginSubA) |
232 { | 241 { |
233 load(nestedOriginSubA); | 242 load(nestedOriginSubA); |
234 | 243 |
235 ASSERT_EQ(toOriginA(nestedOriginSubA), topDocument()->firstPartyForCookies()
); | 244 ASSERT_EQ(toOriginA(nestedOriginSubA), topDocument()->firstPartyForCookies()
); |
236 ASSERT_EQ(toOriginA(nestedOriginSubA), nestedDocument()->firstPartyForCookie
s()); | 245 ASSERT_EQ(toOriginA(nestedOriginSubA), nestedDocument()->firstPartyForCookie
s()); |
237 } | 246 } |
238 | 247 |
| 248 TEST_F(WebDocumentFirstPartyTest, NestedOriginSecureA) |
| 249 { |
| 250 load(nestedOriginSecureA); |
| 251 |
| 252 ASSERT_EQ(toOriginA(nestedOriginSecureA), topDocument()->firstPartyForCookie
s()); |
| 253 ASSERT_EQ(toOriginA(nestedOriginSecureA), nestedDocument()->firstPartyForCoo
kies()); |
| 254 } |
| 255 |
239 TEST_F(WebDocumentFirstPartyTest, NestedOriginAInOriginA) | 256 TEST_F(WebDocumentFirstPartyTest, NestedOriginAInOriginA) |
240 { | 257 { |
241 load(nestedOriginAInOriginA); | 258 load(nestedOriginAInOriginA); |
242 | 259 |
243 ASSERT_EQ(toOriginA(nestedOriginAInOriginA), topDocument()->firstPartyForCoo
kies()); | 260 ASSERT_EQ(toOriginA(nestedOriginAInOriginA), topDocument()->firstPartyForCoo
kies()); |
244 ASSERT_EQ(toOriginA(nestedOriginAInOriginA), nestedDocument()->firstPartyFor
Cookies()); | 261 ASSERT_EQ(toOriginA(nestedOriginAInOriginA), nestedDocument()->firstPartyFor
Cookies()); |
245 ASSERT_EQ(toOriginA(nestedOriginAInOriginA), nestedNestedDocument()->firstPa
rtyForCookies()); | 262 ASSERT_EQ(toOriginA(nestedOriginAInOriginA), nestedNestedDocument()->firstPa
rtyForCookies()); |
246 } | 263 } |
247 | 264 |
248 TEST_F(WebDocumentFirstPartyTest, NestedOriginAInOriginB) | 265 TEST_F(WebDocumentFirstPartyTest, NestedOriginAInOriginB) |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 load(nestedOriginAInOriginB); | 318 load(nestedOriginAInOriginB); |
302 | 319 |
303 SchemeRegistry::registerURLSchemeAsFirstPartyWhenTopLevel("http"); | 320 SchemeRegistry::registerURLSchemeAsFirstPartyWhenTopLevel("http"); |
304 | 321 |
305 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), topDocument()->firstPartyForCoo
kies()); | 322 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), topDocument()->firstPartyForCoo
kies()); |
306 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), nestedDocument()->firstPartyFor
Cookies()); | 323 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), nestedDocument()->firstPartyFor
Cookies()); |
307 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), nestedNestedDocument()->firstPa
rtyForCookies()); | 324 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), nestedNestedDocument()->firstPa
rtyForCookies()); |
308 } | 325 } |
309 | 326 |
310 } // namespace blink | 327 } // namespace blink |
OLD | NEW |