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 3211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3222 } | 3222 } |
3223 | 3223 |
3224 String Document::outgoingReferrer() | 3224 String Document::outgoingReferrer() |
3225 { | 3225 { |
3226 // See http://www.whatwg.org/specs/web-apps/current-work/#fetching-resources | 3226 // See http://www.whatwg.org/specs/web-apps/current-work/#fetching-resources |
3227 // for why we walk the parent chain for srcdoc documents. | 3227 // for why we walk the parent chain for srcdoc documents. |
3228 Document* referrerDocument = this; | 3228 Document* referrerDocument = this; |
3229 if (LocalFrame* frame = m_frame) { | 3229 if (LocalFrame* frame = m_frame) { |
3230 while (frame->document()->isSrcdocDocument()) { | 3230 while (frame->document()->isSrcdocDocument()) { |
3231 // Srcdoc documents must be local within the containing frame. | 3231 // Srcdoc documents must be local within the containing frame. |
3232 frame = frame->tree().parent(); | 3232 frame = toLocalFrame(frame->tree().parent()); |
3233 // Srcdoc documents cannot be top-level documents, by definition, | 3233 // Srcdoc documents cannot be top-level documents, by definition, |
3234 // because they need to be contained in iframes with the srcdoc. | 3234 // because they need to be contained in iframes with the srcdoc. |
3235 ASSERT(frame); | 3235 ASSERT(frame); |
3236 } | 3236 } |
3237 referrerDocument = frame->document(); | 3237 referrerDocument = frame->document(); |
3238 } | 3238 } |
3239 return referrerDocument->m_url.strippedForUseAsReferrer(); | 3239 return referrerDocument->m_url.strippedForUseAsReferrer(); |
3240 } | 3240 } |
3241 | 3241 |
3242 String Document::outgoingOrigin() const | 3242 String Document::outgoingOrigin() const |
(...skipping 1199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4442 } | 4442 } |
4443 | 4443 |
4444 void Document::setTransformSource(PassOwnPtr<TransformSource> source) | 4444 void Document::setTransformSource(PassOwnPtr<TransformSource> source) |
4445 { | 4445 { |
4446 m_transformSource = source; | 4446 m_transformSource = source; |
4447 } | 4447 } |
4448 | 4448 |
4449 void Document::setDesignMode(InheritedBool value) | 4449 void Document::setDesignMode(InheritedBool value) |
4450 { | 4450 { |
4451 m_designMode = value; | 4451 m_designMode = value; |
4452 for (LocalFrame* frame = m_frame; frame && frame->document(); frame = frame-
>tree().traverseNext(m_frame)) | 4452 for (Frame* frame = m_frame; frame; frame = frame->tree().traverseNext(m_fra
me)) { |
4453 frame->document()->setNeedsStyleRecalc(SubtreeStyleChange); | 4453 if (!frame->isLocalFrame()) |
| 4454 continue; |
| 4455 if (!toLocalFrame(frame)->document()) |
| 4456 break; |
| 4457 toLocalFrame(frame)->document()->setNeedsStyleRecalc(SubtreeStyleChange)
; |
| 4458 } |
4454 } | 4459 } |
4455 | 4460 |
4456 Document::InheritedBool Document::getDesignMode() const | 4461 Document::InheritedBool Document::getDesignMode() const |
4457 { | 4462 { |
4458 return m_designMode; | 4463 return m_designMode; |
4459 } | 4464 } |
4460 | 4465 |
4461 bool Document::inDesignMode() const | 4466 bool Document::inDesignMode() const |
4462 { | 4467 { |
4463 for (const Document* d = this; d; d = d->parentDocument()) { | 4468 for (const Document* d = this; d; d = d->parentDocument()) { |
(...skipping 17 matching lines...) Expand all Loading... |
4481 mode = off; | 4486 mode = off; |
4482 else | 4487 else |
4483 mode = inherit; | 4488 mode = inherit; |
4484 setDesignMode(mode); | 4489 setDesignMode(mode); |
4485 } | 4490 } |
4486 | 4491 |
4487 Document* Document::parentDocument() const | 4492 Document* Document::parentDocument() const |
4488 { | 4493 { |
4489 if (!m_frame) | 4494 if (!m_frame) |
4490 return 0; | 4495 return 0; |
4491 LocalFrame* parent = m_frame->tree().parent(); | 4496 Frame* parent = m_frame->tree().parent(); |
4492 if (!parent) | 4497 if (!parent || !parent->isLocalFrame()) |
4493 return 0; | 4498 return 0; |
4494 return parent->document(); | 4499 return toLocalFrame(parent)->document(); |
4495 } | 4500 } |
4496 | 4501 |
4497 Document& Document::topDocument() const | 4502 Document& Document::topDocument() const |
4498 { | 4503 { |
4499 // FIXME: Not clear what topDocument() should do in the OOPI case--should it
return the topmost | 4504 // FIXME: Not clear what topDocument() should do in the OOPI case--should it
return the topmost |
4500 // available Document, or something else? | 4505 // available Document, or something else? |
4501 Document* doc = const_cast<Document*>(this); | 4506 Document* doc = const_cast<Document*>(this); |
4502 Element* element; | 4507 Element* element; |
4503 while ((element = doc->ownerElement())) | 4508 while ((element = doc->ownerElement())) |
4504 doc = &element->document(); | 4509 doc = &element->document(); |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4846 | 4851 |
4847 m_cookieURL = initializer.owner()->cookieURL(); | 4852 m_cookieURL = initializer.owner()->cookieURL(); |
4848 // We alias the SecurityOrigins to match Firefox, see Bug 15313 | 4853 // We alias the SecurityOrigins to match Firefox, see Bug 15313 |
4849 // https://bugs.webkit.org/show_bug.cgi?id=15313 | 4854 // https://bugs.webkit.org/show_bug.cgi?id=15313 |
4850 setSecurityOrigin(initializer.owner()->securityOrigin()); | 4855 setSecurityOrigin(initializer.owner()->securityOrigin()); |
4851 } | 4856 } |
4852 | 4857 |
4853 void Document::initContentSecurityPolicy(const ContentSecurityPolicyResponseHead
ers& headers) | 4858 void Document::initContentSecurityPolicy(const ContentSecurityPolicyResponseHead
ers& headers) |
4854 { | 4859 { |
4855 if (m_frame && m_frame->tree().parent() && m_frame->tree().parent()->isLocal
Frame() && (shouldInheritSecurityOriginFromOwner(m_url) || isPluginDocument())) | 4860 if (m_frame && m_frame->tree().parent() && m_frame->tree().parent()->isLocal
Frame() && (shouldInheritSecurityOriginFromOwner(m_url) || isPluginDocument())) |
4856 contentSecurityPolicy()->copyStateFrom(m_frame->tree().parent()->documen
t()->contentSecurityPolicy()); | 4861 contentSecurityPolicy()->copyStateFrom(toLocalFrame(m_frame->tree().pare
nt())->document()->contentSecurityPolicy()); |
4857 contentSecurityPolicy()->didReceiveHeaders(headers); | 4862 contentSecurityPolicy()->didReceiveHeaders(headers); |
4858 } | 4863 } |
4859 | 4864 |
4860 bool Document::allowInlineEventHandlers(Node* node, EventListener* listener, con
st String& contextURL, const WTF::OrdinalNumber& contextLine) | 4865 bool Document::allowInlineEventHandlers(Node* node, EventListener* listener, con
st String& contextURL, const WTF::OrdinalNumber& contextLine) |
4861 { | 4866 { |
4862 if (!contentSecurityPolicy()->allowInlineEventHandlers(contextURL, contextLi
ne)) | 4867 if (!contentSecurityPolicy()->allowInlineEventHandlers(contextURL, contextLi
ne)) |
4863 return false; | 4868 return false; |
4864 | 4869 |
4865 // HTML says that inline script needs browsing context to create its executi
on environment. | 4870 // HTML says that inline script needs browsing context to create its executi
on environment. |
4866 // http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.ht
ml#event-handler-attributes | 4871 // http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.ht
ml#event-handler-attributes |
(...skipping 966 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5833 visitor->trace(m_compositorPendingAnimations); | 5838 visitor->trace(m_compositorPendingAnimations); |
5834 visitor->trace(m_contextDocument); | 5839 visitor->trace(m_contextDocument); |
5835 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); | 5840 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); |
5836 DocumentSupplementable::trace(visitor); | 5841 DocumentSupplementable::trace(visitor); |
5837 TreeScope::trace(visitor); | 5842 TreeScope::trace(visitor); |
5838 ContainerNode::trace(visitor); | 5843 ContainerNode::trace(visitor); |
5839 ExecutionContext::trace(visitor); | 5844 ExecutionContext::trace(visitor); |
5840 } | 5845 } |
5841 | 5846 |
5842 } // namespace WebCore | 5847 } // namespace WebCore |
OLD | NEW |