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 3991 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4002 } | 4002 } |
4003 | 4003 |
4004 const KURL& Document::firstPartyForCookies() const | 4004 const KURL& Document::firstPartyForCookies() const |
4005 { | 4005 { |
4006 if (!RuntimeEnabledFeatures::firstPartyIncludesAncestorsEnabled()) | 4006 if (!RuntimeEnabledFeatures::firstPartyIncludesAncestorsEnabled()) |
4007 return topDocument().url(); | 4007 return topDocument().url(); |
4008 | 4008 |
4009 // We're intentionally using the URL of each document rather than the docume
nt's SecurityOrigin. | 4009 // We're intentionally using the URL of each document rather than the docume
nt's SecurityOrigin. |
4010 // Sandboxing a document into a unique origin shouldn't effect first-/third-
party status for | 4010 // Sandboxing a document into a unique origin shouldn't effect first-/third-
party status for |
4011 // cookies and site data. | 4011 // cookies and site data. |
4012 RefPtr<SecurityOrigin> topOrigin = SecurityOrigin::create(topDocument().url(
)); | 4012 OriginAccessEntry accessEntry(topDocument().url().protocol(), topDocument().
url().host(), OriginAccessEntry::AllowSubdomains, OriginAccessEntry::TreatIPAddr
essAsIPAddress); |
4013 const Document* currentDocument = this; | 4013 const Document* currentDocument = this; |
4014 while (currentDocument) { | 4014 while (currentDocument) { |
4015 // Skip over srcdoc documents, as they are always same-origin with their
closest non-srcdoc parent. | 4015 // Skip over srcdoc documents, as they are always same-origin with their
closest non-srcdoc parent. |
4016 while (currentDocument->isSrcdocDocument()) | 4016 while (currentDocument->isSrcdocDocument()) |
4017 currentDocument = currentDocument->parentDocument(); | 4017 currentDocument = currentDocument->parentDocument(); |
4018 ASSERT(currentDocument); | 4018 ASSERT(currentDocument); |
4019 | 4019 |
4020 if (!topOrigin->canRequest(currentDocument->url())) | 4020 if (accessEntry.matchesOrigin(*currentDocument->securityOrigin()) == Ori
ginAccessEntry::DoesNotMatchOrigin) |
4021 return SecurityOrigin::urlWithUniqueSecurityOrigin(); | 4021 return SecurityOrigin::urlWithUniqueSecurityOrigin(); |
4022 | 4022 |
4023 currentDocument = currentDocument->parentDocument(); | 4023 currentDocument = currentDocument->parentDocument(); |
4024 } | 4024 } |
4025 | 4025 |
4026 return topDocument().url(); | 4026 return topDocument().url(); |
4027 } | 4027 } |
4028 | 4028 |
4029 static bool isValidNameNonASCII(const LChar* characters, unsigned length) | 4029 static bool isValidNameNonASCII(const LChar* characters, unsigned length) |
4030 { | 4030 { |
(...skipping 1746 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5777 #ifndef NDEBUG | 5777 #ifndef NDEBUG |
5778 using namespace blink; | 5778 using namespace blink; |
5779 void showLiveDocumentInstances() | 5779 void showLiveDocumentInstances() |
5780 { | 5780 { |
5781 WeakDocumentSet& set = liveDocumentSet(); | 5781 WeakDocumentSet& set = liveDocumentSet(); |
5782 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); | 5782 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); |
5783 for (Document* document : set) | 5783 for (Document* document : set) |
5784 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().str
ing().utf8().data()); | 5784 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().str
ing().utf8().data()); |
5785 } | 5785 } |
5786 #endif | 5786 #endif |
OLD | NEW |