diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-23 10:25:11 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-23 10:25:11 +0200 |
commit | 5ea819f80c6840c492386bfafbffb059c7e2091f (patch) | |
tree | 42ad0b1d82eff090d14278a088ea0f4840a0f938 /Source/WebCore/page/DOMWindow.cpp | |
parent | 43a42f108af6bcbd91f2672731c3047c26213af1 (diff) | |
download | qtwebkit-5ea819f80c6840c492386bfafbffb059c7e2091f.tar.gz |
Imported WebKit commit 20434eb8eb95065803473139d8794e98a7672f75 (http://svn.webkit.org/repository/webkit/trunk@132191)
New snapshot that should fix build with latest qtbase and the QPlastiqueStyle removal
Diffstat (limited to 'Source/WebCore/page/DOMWindow.cpp')
-rw-r--r-- | Source/WebCore/page/DOMWindow.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/Source/WebCore/page/DOMWindow.cpp b/Source/WebCore/page/DOMWindow.cpp index faa4ba048..a84fec59c 100644 --- a/Source/WebCore/page/DOMWindow.cpp +++ b/Source/WebCore/page/DOMWindow.cpp @@ -745,14 +745,23 @@ Storage* DOMWindow::sessionStorage(ExceptionCode& ec) const return 0; } - if (m_sessionStorage) + if (m_sessionStorage) { + if (!m_sessionStorage->area()->canAccessStorage(m_frame)) { + ec = SECURITY_ERR; + return 0; + } return m_sessionStorage.get(); + } Page* page = document->page(); if (!page) return 0; RefPtr<StorageArea> storageArea = page->sessionStorage()->storageArea(document->securityOrigin()); + if (!storageArea->canAccessStorage(m_frame)) { + ec = SECURITY_ERR; + return 0; + } InspectorInstrumentation::didUseDOMStorage(page, storageArea.get(), false, m_frame); m_sessionStorage = Storage::create(m_frame, storageArea.release()); @@ -773,8 +782,13 @@ Storage* DOMWindow::localStorage(ExceptionCode& ec) const return 0; } - if (m_localStorage) + if (m_localStorage) { + if (!m_localStorage->area()->canAccessStorage(m_frame)) { + ec = SECURITY_ERR; + return 0; + } return m_localStorage.get(); + } Page* page = document->page(); if (!page) @@ -784,6 +798,10 @@ Storage* DOMWindow::localStorage(ExceptionCode& ec) const return 0; RefPtr<StorageArea> storageArea = page->group().localStorage()->storageArea(document->securityOrigin()); + if (!storageArea->canAccessStorage(m_frame)) { + ec = SECURITY_ERR; + return 0; + } InspectorInstrumentation::didUseDOMStorage(page, storageArea.get(), true, m_frame); m_localStorage = Storage::create(m_frame, storageArea.release()); |