summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit/WebCore/page/DOMWindow.cpp')
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMWindow.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp b/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp
index 8e64fe3ff..e8f9004c4 100644
--- a/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp
+++ b/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp
@@ -546,12 +546,17 @@ Storage* DOMWindow::sessionStorage() const
{
if (m_sessionStorage)
return m_sessionStorage.get();
-
- Page* page = m_frame->page();
+
+ Document* document = this->document();
+ if (!document)
+ return 0;
+
+ Page* page = document->page();
if (!page)
return 0;
- Document* document = m_frame->document();
+ if (!page->settings()->sessionStorageEnabled())
+ return 0;
RefPtr<StorageArea> storageArea = page->sessionStorage()->storageArea(document->securityOrigin());
page->inspectorController()->didUseDOMStorage(storageArea.get(), false, m_frame);
@@ -573,8 +578,7 @@ Storage* DOMWindow::localStorage() const
if (!page)
return 0;
- Settings* settings = document->settings();
- if (!settings || !settings->localStorageEnabled())
+ if (!page->settings()->localStorageEnabled())
return 0;
StorageNamespace* localStorage = page->group().localStorage();