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