diff options
author | Steve Block <steveblock@google.com> | 2010-08-27 11:02:25 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-09-02 17:17:20 +0100 |
commit | e8b154fd68f9b33be40a3590e58347f353835f5c (patch) | |
tree | 0733ce26384183245aaa5656af26c653636fe6c1 /WebCore/page/SecurityOrigin.cpp | |
parent | da56157816334089526a7a115a85fd85a6e9a1dc (diff) | |
download | external_webkit-e8b154fd68f9b33be40a3590e58347f353835f5c.zip external_webkit-e8b154fd68f9b33be40a3590e58347f353835f5c.tar.gz external_webkit-e8b154fd68f9b33be40a3590e58347f353835f5c.tar.bz2 |
Merge WebKit at r66079 : Initial merge by git
Change-Id: Ie2e1440fb9d487d24e52c247342c076fecaecac7
Diffstat (limited to 'WebCore/page/SecurityOrigin.cpp')
-rw-r--r-- | WebCore/page/SecurityOrigin.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/WebCore/page/SecurityOrigin.cpp b/WebCore/page/SecurityOrigin.cpp index f759402..5b51501 100644 --- a/WebCore/page/SecurityOrigin.cpp +++ b/WebCore/page/SecurityOrigin.cpp @@ -29,6 +29,7 @@ #include "config.h" #include "SecurityOrigin.h" +#include "BlobURL.h" #include "Document.h" #include "FileSystem.h" #include "KURL.h" @@ -123,6 +124,10 @@ PassRefPtr<SecurityOrigin> SecurityOrigin::create(const KURL& url, SandboxFlags { if (!url.isValid()) return adoptRef(new SecurityOrigin(KURL(), sandboxFlags)); +#if ENABLE(BLOB) + if (url.protocolIs("blob")) + return adoptRef(new SecurityOrigin(BlobURL::getOrigin(url), sandboxFlags)); +#endif return adoptRef(new SecurityOrigin(url, sandboxFlags)); } @@ -275,6 +280,14 @@ bool SecurityOrigin::isAccessWhiteListed(const SecurityOrigin* targetOrigin) con bool SecurityOrigin::canLoad(const KURL& url, const String& referrer, Document* document) { +#if ENABLE(BLOB) + if (url.protocolIs("blob") && document) { + SecurityOrigin* documentOrigin = document->securityOrigin(); + RefPtr<SecurityOrigin> targetOrigin = SecurityOrigin::create(url); + return documentOrigin->isSameSchemeHostPort(targetOrigin.get()); + } +#endif + if (!SchemeRegistry::shouldTreatURLAsLocal(url.string())) return true; |