OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r
ights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r
ights reserved. |
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. |
(...skipping 4195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4206 initSecurityContext(DocumentInit(m_url, m_frame, m_import)); | 4206 initSecurityContext(DocumentInit(m_url, m_frame, m_import)); |
4207 } | 4207 } |
4208 | 4208 |
4209 void Document::initSecurityContext(const DocumentInit& initializer) | 4209 void Document::initSecurityContext(const DocumentInit& initializer) |
4210 { | 4210 { |
4211 if (haveInitializedSecurityOrigin()) { | 4211 if (haveInitializedSecurityOrigin()) { |
4212 ASSERT(securityOrigin()); | 4212 ASSERT(securityOrigin()); |
4213 return; | 4213 return; |
4214 } | 4214 } |
4215 | 4215 |
4216 if (!initializer.frame()) { | 4216 if (!initializer.hasSecurityContext()) { |
4217 // No source for a security context. | 4217 // No source for a security context. |
4218 // This can occur via document.implementation.createDocument(). | 4218 // This can occur via document.implementation.createDocument(). |
4219 m_cookieURL = KURL(ParsedURLString, emptyString()); | 4219 m_cookieURL = KURL(ParsedURLString, emptyString()); |
4220 setSecurityOrigin(SecurityOrigin::createUnique()); | 4220 setSecurityOrigin(SecurityOrigin::createUnique()); |
4221 setContentSecurityPolicy(ContentSecurityPolicy::create(this)); | 4221 setContentSecurityPolicy(ContentSecurityPolicy::create(this)); |
4222 return; | 4222 return; |
4223 } | 4223 } |
4224 | 4224 |
4225 // In the common case, create the security context from the currently | 4225 // In the common case, create the security context from the currently |
4226 // loading URL with a fresh content security policy. | 4226 // loading URL with a fresh content security policy. |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4278 securityOrigin()->grantLoadLocalResources(); | 4278 securityOrigin()->grantLoadLocalResources(); |
4279 return; | 4279 return; |
4280 } | 4280 } |
4281 | 4281 |
4282 m_cookieURL = ownerFrame->document()->cookieURL(); | 4282 m_cookieURL = ownerFrame->document()->cookieURL(); |
4283 // We alias the SecurityOrigins to match Firefox, see Bug 15313 | 4283 // We alias the SecurityOrigins to match Firefox, see Bug 15313 |
4284 // https://bugs.webkit.org/show_bug.cgi?id=15313 | 4284 // https://bugs.webkit.org/show_bug.cgi?id=15313 |
4285 setSecurityOrigin(ownerFrame->document()->securityOrigin()); | 4285 setSecurityOrigin(ownerFrame->document()->securityOrigin()); |
4286 } | 4286 } |
4287 | 4287 |
4288 void Document::initContentSecurityPolicy() | 4288 void Document::initContentSecurityPolicy(const ContentSecurityPolicyResponseHead
ers& headers) |
4289 { | 4289 { |
4290 if (!m_frame->tree()->parent() || (!shouldInheritSecurityOriginFromOwner(m_u
rl) && !isPluginDocument())) | 4290 if (m_frame && m_frame->tree()->parent() && (shouldInheritSecurityOriginFrom
Owner(m_url) || isPluginDocument())) |
4291 return; | 4291 contentSecurityPolicy()->copyStateFrom(m_frame->tree()->parent()->docume
nt()->contentSecurityPolicy()); |
4292 | 4292 contentSecurityPolicy()->didReceiveHeaders(headers); |
4293 contentSecurityPolicy()->copyStateFrom(m_frame->tree()->parent()->document()
->contentSecurityPolicy()); | |
4294 } | 4293 } |
4295 | 4294 |
4296 void Document::didUpdateSecurityOrigin() | 4295 void Document::didUpdateSecurityOrigin() |
4297 { | 4296 { |
4298 if (!m_frame) | 4297 if (!m_frame) |
4299 return; | 4298 return; |
4300 m_frame->script()->updateSecurityOrigin(); | 4299 m_frame->script()->updateSecurityOrigin(); |
4301 } | 4300 } |
4302 | 4301 |
4303 bool Document::isContextThread() const | 4302 bool Document::isContextThread() const |
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5089 { | 5088 { |
5090 return DocumentLifecycleNotifier::create(this); | 5089 return DocumentLifecycleNotifier::create(this); |
5091 } | 5090 } |
5092 | 5091 |
5093 DocumentLifecycleNotifier* Document::lifecycleNotifier() | 5092 DocumentLifecycleNotifier* Document::lifecycleNotifier() |
5094 { | 5093 { |
5095 return static_cast<DocumentLifecycleNotifier*>(ScriptExecutionContext::lifec
ycleNotifier()); | 5094 return static_cast<DocumentLifecycleNotifier*>(ScriptExecutionContext::lifec
ycleNotifier()); |
5096 } | 5095 } |
5097 | 5096 |
5098 } // namespace WebCore | 5097 } // namespace WebCore |
OLD | NEW |