| 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 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 , m_isTransitionDocument(false) | 458 , m_isTransitionDocument(false) |
| 459 , m_layoutView(0) | 459 , m_layoutView(0) |
| 460 #if !ENABLE(OILPAN) | 460 #if !ENABLE(OILPAN) |
| 461 , m_weakFactory(this) | 461 , m_weakFactory(this) |
| 462 #endif | 462 #endif |
| 463 , m_contextDocument(initializer.contextDocument()) | 463 , m_contextDocument(initializer.contextDocument()) |
| 464 , m_hasFullscreenSupplement(false) | 464 , m_hasFullscreenSupplement(false) |
| 465 , m_loadEventDelayCount(0) | 465 , m_loadEventDelayCount(0) |
| 466 , m_loadEventDelayTimer(this, &Document::loadEventDelayTimerFired) | 466 , m_loadEventDelayTimer(this, &Document::loadEventDelayTimerFired) |
| 467 , m_pluginLoadingTimer(this, &Document::pluginLoadingTimerFired) | 467 , m_pluginLoadingTimer(this, &Document::pluginLoadingTimerFired) |
| 468 , m_referrerPolicy(ReferrerPolicyDefault) | |
| 469 , m_writeRecursionIsTooDeep(false) | 468 , m_writeRecursionIsTooDeep(false) |
| 470 , m_writeRecursionDepth(0) | 469 , m_writeRecursionDepth(0) |
| 471 , m_taskRunner(MainThreadTaskRunner::create(this)) | 470 , m_taskRunner(MainThreadTaskRunner::create(this)) |
| 472 , m_registrationContext(initializer.registrationContext(this)) | 471 , m_registrationContext(initializer.registrationContext(this)) |
| 473 , m_elementDataCacheClearTimer(this, &Document::elementDataCacheClearTimerFi
red) | 472 , m_elementDataCacheClearTimer(this, &Document::elementDataCacheClearTimerFi
red) |
| 474 , m_timeline(AnimationTimeline::create(this)) | 473 , m_timeline(AnimationTimeline::create(this)) |
| 475 , m_templateDocumentHost(nullptr) | 474 , m_templateDocumentHost(nullptr) |
| 476 , m_didAssociateFormControlsTimer(this, &Document::didAssociateFormControlsT
imerFired) | 475 , m_didAssociateFormControlsTimer(this, &Document::didAssociateFormControlsT
imerFired) |
| 477 , m_hasViewportUnits(false) | 476 , m_hasViewportUnits(false) |
| 478 , m_styleRecalcElementCounter(0) | 477 , m_styleRecalcElementCounter(0) |
| (...skipping 2579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3058 else if (equalIgnoringCase(policy, "origin")) | 3057 else if (equalIgnoringCase(policy, "origin")) |
| 3059 setReferrerPolicy(ReferrerPolicyOrigin); | 3058 setReferrerPolicy(ReferrerPolicyOrigin); |
| 3060 else if (equalIgnoringCase(policy, "origin-when-crossorigin")) | 3059 else if (equalIgnoringCase(policy, "origin-when-crossorigin")) |
| 3061 setReferrerPolicy(ReferrerPolicyOriginWhenCrossOrigin); | 3060 setReferrerPolicy(ReferrerPolicyOriginWhenCrossOrigin); |
| 3062 else if (equalIgnoringCase(policy, "no-referrer-when-downgrade") || equalIgn
oringCase(policy, "default")) | 3061 else if (equalIgnoringCase(policy, "no-referrer-when-downgrade") || equalIgn
oringCase(policy, "default")) |
| 3063 setReferrerPolicy(ReferrerPolicyNoReferrerWhenDowngrade); | 3062 setReferrerPolicy(ReferrerPolicyNoReferrerWhenDowngrade); |
| 3064 else | 3063 else |
| 3065 addConsoleMessage(ConsoleMessage::create(RenderingMessageSource, ErrorMe
ssageLevel, "Failed to set referrer policy: The value '" + policy + "' is not on
e of 'always', 'default', 'never', 'no-referrer', 'no-referrer-when-downgrade',
'origin', 'origin-when-crossorigin', or 'unsafe-url'. This document's referrer p
olicy has been left unchanged.")); | 3064 addConsoleMessage(ConsoleMessage::create(RenderingMessageSource, ErrorMe
ssageLevel, "Failed to set referrer policy: The value '" + policy + "' is not on
e of 'always', 'default', 'never', 'no-referrer', 'no-referrer-when-downgrade',
'origin', 'origin-when-crossorigin', or 'unsafe-url'. This document's referrer p
olicy has been left unchanged.")); |
| 3066 } | 3065 } |
| 3067 | 3066 |
| 3068 void Document::setReferrerPolicy(ReferrerPolicy referrerPolicy) | |
| 3069 { | |
| 3070 // FIXME: Can we adopt the CSP referrer policy merge algorithm? Or does the
web rely on being able to modify the referrer policy in-flight? | |
| 3071 UseCounter::count(this, UseCounter::SetReferrerPolicy); | |
| 3072 if (m_referrerPolicy != ReferrerPolicyDefault) | |
| 3073 UseCounter::count(this, UseCounter::ResetReferrerPolicy); | |
| 3074 | |
| 3075 m_referrerPolicy = referrerPolicy; | |
| 3076 } | |
| 3077 | |
| 3078 String Document::outgoingReferrer() | 3067 String Document::outgoingReferrer() |
| 3079 { | 3068 { |
| 3080 // See http://www.whatwg.org/specs/web-apps/current-work/#fetching-resources | 3069 // See http://www.whatwg.org/specs/web-apps/current-work/#fetching-resources |
| 3081 // for why we walk the parent chain for srcdoc documents. | 3070 // for why we walk the parent chain for srcdoc documents. |
| 3082 Document* referrerDocument = this; | 3071 Document* referrerDocument = this; |
| 3083 if (LocalFrame* frame = m_frame) { | 3072 if (LocalFrame* frame = m_frame) { |
| 3084 while (frame->document()->isSrcdocDocument()) { | 3073 while (frame->document()->isSrcdocDocument()) { |
| 3085 // Srcdoc documents must be local within the containing frame. | 3074 // Srcdoc documents must be local within the containing frame. |
| 3086 frame = toLocalFrame(frame->tree().parent()); | 3075 frame = toLocalFrame(frame->tree().parent()); |
| 3087 // Srcdoc documents cannot be top-level documents, by definition, | 3076 // Srcdoc documents cannot be top-level documents, by definition, |
| (...skipping 2667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5755 #ifndef NDEBUG | 5744 #ifndef NDEBUG |
| 5756 using namespace blink; | 5745 using namespace blink; |
| 5757 void showLiveDocumentInstances() | 5746 void showLiveDocumentInstances() |
| 5758 { | 5747 { |
| 5759 WeakDocumentSet& set = liveDocumentSet(); | 5748 WeakDocumentSet& set = liveDocumentSet(); |
| 5760 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); | 5749 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); |
| 5761 for (Document* document : set) | 5750 for (Document* document : set) |
| 5762 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().str
ing().utf8().data()); | 5751 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().str
ing().utf8().data()); |
| 5763 } | 5752 } |
| 5764 #endif | 5753 #endif |
| OLD | NEW |