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 3961 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3972 // FIXME: If this document came from the file system, the HTML5 | 3972 // FIXME: If this document came from the file system, the HTML5 |
3973 // specificiation tells us to read the last modification date from the file | 3973 // specificiation tells us to read the last modification date from the file |
3974 // system. | 3974 // system. |
3975 if (!foundDate) | 3975 if (!foundDate) |
3976 date.setMillisecondsSinceEpochForDateTime(convertToLocalTime(currentTime
MS())); | 3976 date.setMillisecondsSinceEpochForDateTime(convertToLocalTime(currentTime
MS())); |
3977 return String::format("%02d/%02d/%04d %02d:%02d:%02d", date.month() + 1, dat
e.monthDay(), date.fullYear(), date.hour(), date.minute(), date.second()); | 3977 return String::format("%02d/%02d/%04d %02d:%02d:%02d", date.month() + 1, dat
e.monthDay(), date.fullYear(), date.hour(), date.minute(), date.second()); |
3978 } | 3978 } |
3979 | 3979 |
3980 const KURL& Document::firstPartyForCookies() const | 3980 const KURL& Document::firstPartyForCookies() const |
3981 { | 3981 { |
| 3982 if (!RuntimeEnabledFeatures::firstPartyIncludesAncestorsEnabled()) |
| 3983 return topDocument().url(); |
| 3984 |
| 3985 // We're intentionally using the URL of each document rather than the docume
nt's SecurityOrigin. |
| 3986 // Sandboxing a document into a unique origin shouldn't effect first-/third-
party status for |
| 3987 // cookies and site data. |
| 3988 RefPtr<SecurityOrigin> topOrigin = SecurityOrigin::create(topDocument().url(
)); |
| 3989 const Document* currentDocument = this; |
| 3990 while (currentDocument) { |
| 3991 // Skip over srcdoc documents, as they are always same-origin with their
closest non-srcdoc parent. |
| 3992 while (currentDocument->isSrcdocDocument()) |
| 3993 currentDocument = currentDocument->parentDocument(); |
| 3994 ASSERT(currentDocument); |
| 3995 |
| 3996 if (!topOrigin->canRequest(currentDocument->url())) |
| 3997 return SecurityOrigin::urlWithUniqueSecurityOrigin(); |
| 3998 |
| 3999 currentDocument = currentDocument->parentDocument(); |
| 4000 } |
| 4001 |
3982 return topDocument().url(); | 4002 return topDocument().url(); |
3983 } | 4003 } |
3984 | 4004 |
3985 static bool isValidNameNonASCII(const LChar* characters, unsigned length) | 4005 static bool isValidNameNonASCII(const LChar* characters, unsigned length) |
3986 { | 4006 { |
3987 if (!isValidNameStart(characters[0])) | 4007 if (!isValidNameStart(characters[0])) |
3988 return false; | 4008 return false; |
3989 | 4009 |
3990 for (unsigned i = 1; i < length; ++i) { | 4010 for (unsigned i = 1; i < length; ++i) { |
3991 if (!isValidNamePart(characters[i])) | 4011 if (!isValidNamePart(characters[i])) |
(...skipping 1708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5700 #ifndef NDEBUG | 5720 #ifndef NDEBUG |
5701 using namespace blink; | 5721 using namespace blink; |
5702 void showLiveDocumentInstances() | 5722 void showLiveDocumentInstances() |
5703 { | 5723 { |
5704 WeakDocumentSet& set = liveDocumentSet(); | 5724 WeakDocumentSet& set = liveDocumentSet(); |
5705 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); | 5725 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); |
5706 for (Document* document : set) | 5726 for (Document* document : set) |
5707 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().str
ing().utf8().data()); | 5727 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().str
ing().utf8().data()); |
5708 } | 5728 } |
5709 #endif | 5729 #endif |
OLD | NEW |