From: michaeln@google.com Date: Fri, 13 Apr 2012 19:33:55 +0000 (+0000) Subject: [chromium] Now that the chromium port is using a different dom_storage backend X-Git-Tag: 070512121124~7019 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=31780bc5346730ffa8576c505e31352d5717c3e4;p=profile%2Fivi%2Fwebkit-efl.git [chromium] Now that the chromium port is using a different dom_storage backend library in its main browser process, there are a handful of files that should no longer be included in the build, and a few files than should be deleted outright, and the webkit api should be modified to reflect the new (and smaller) contract between the embedder and webkit/webcore. https://bugs.webkit.org/show_bug.cgi?id=83807 Reviewed by Adam Barth. Source/WebCore: No new tests, existing tests apply. * WebCore.gyp/WebCore.gyp: Exclude several files from the WebCore/storage directory. * storage/StorageEventDispatcher.h: Delete a stale comment. Source/WebKit/chromium: * WebKit.gyp: Delete a few files. * public/WebStorageNamespace.h: Remove some unused data members and methods, and annotate close() as deprecated. * public/platform/WebKitPlatformSupport.h: Annotate a method as deprecated. * src/StorageAreaProxy.cpp: Remove the include of a deleted file. * src/StorageEventDispatcherChromium.cpp: Removed. * src/StorageEventDispatcherImpl.cpp: Added a FIXME comment for upcoming work. * src/StorageNamespaceProxy.cpp: Modified to no longer call out to the embedder thru the deprecated close() method. * src/StorageNamespaceProxy.h: Moved some blank lines around. * src/WebStorageAreaImpl.cpp: Removed. * src/WebStorageAreaImpl.h: Removed. * src/WebStorageEventDispatcherImpl.cpp: Cleaned up some cruft. * src/WebStorageNamespaceImpl.cpp: Removed. * src/WebStorageNamespaceImpl.h: Removed. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@114160 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index 100d98f..633ad37 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,19 @@ +2012-04-12 Michael Nordman + + [chromium] Now that the chromium port is using a different dom_storage backend + library in its main browser process, there are a handful of files that should no + longer be included in the build, and a few files than should be deleted + outright, and the webkit api should be modified to reflect the new (and smaller) + contract between the embedder and webkit/webcore. + https://bugs.webkit.org/show_bug.cgi?id=83807 + + Reviewed by Adam Barth. + + No new tests, existing tests apply. + + * WebCore.gyp/WebCore.gyp: Exclude several files from the WebCore/storage directory. + * storage/StorageEventDispatcher.h: Delete a stale comment. + 2012-04-13 Sheriff Bot Unreviewed, rolling out r114140. diff --git a/Source/WebCore/WebCore.gyp/WebCore.gyp b/Source/WebCore/WebCore.gyp/WebCore.gyp index 968a85a..33dc8b7 100644 --- a/Source/WebCore/WebCore.gyp/WebCore.gyp +++ b/Source/WebCore/WebCore.gyp/WebCore.gyp @@ -1847,8 +1847,17 @@ ['exclude', 'plugins/PluginStream\\.cpp$'], ['exclude', 'plugins/PluginView\\.cpp$'], ['exclude', 'plugins/npapi\\.cpp$'], - ['exclude', 'storage/StorageEventDispatcher\\.cpp$'], + ['exclude', 'storage/StorageAreaImpl\\.(cpp|h)$'], + ['exclude', 'storage/StorageAreaSync\\.(cpp|h)$'], + ['exclude', 'storage/StorageEventDispatcher\\.(cpp|h)$'], + ['exclude', 'storage/StorageMap\\.(cpp|h)$'], ['exclude', 'storage/StorageNamespace\\.cpp$'], + ['exclude', 'storage/StorageNamespaceImpl\\.(cpp|h)$'], + ['exclude', 'storage/StorageSyncManager\\.(cpp|h)$'], + ['exclude', 'storage/StorageTask\\.(cpp|h)$'], + ['exclude', 'storage/StorageThread\\.(cpp|h)$'], + ['exclude', 'storage/StorageTracker\\.(cpp|h)$'], + ['exclude', 'storage/StorageTrackerClient\\.h$'], ['exclude', 'workers/DefaultSharedWorkerRepository\\.(cpp|h)$'], ['include', 'loader/appcache/ApplicationCacheHost\.h$'], diff --git a/Source/WebCore/storage/StorageEventDispatcher.h b/Source/WebCore/storage/StorageEventDispatcher.h index 6739be9..d3549d4 100644 --- a/Source/WebCore/storage/StorageEventDispatcher.h +++ b/Source/WebCore/storage/StorageEventDispatcher.h @@ -35,7 +35,6 @@ namespace WebCore { - // This is in its own class since Chromium must override it. class StorageEventDispatcher { public: static void dispatch(const String& key, const String& oldValue, const String& newValue, StorageType, SecurityOrigin*, Frame* sourceFrame); diff --git a/Source/WebKit/chromium/ChangeLog b/Source/WebKit/chromium/ChangeLog index ad8f6d2..6183aa6 100644 --- a/Source/WebKit/chromium/ChangeLog +++ b/Source/WebKit/chromium/ChangeLog @@ -1,3 +1,28 @@ +2012-04-12 Michael Nordman + + [chromium] Now that the chromium port is using a different dom_storage backend + library in its main browser process, there are a handful of files that should no + longer be included in the build, and a few files than should be deleted + outright, and the webkit api should be modified to reflect the new (and smaller) + contract between the embedder and webkit/webcore. + https://bugs.webkit.org/show_bug.cgi?id=83807 + + Reviewed by Adam Barth. + + * WebKit.gyp: Delete a few files. + * public/WebStorageNamespace.h: Remove some unused data members and methods, and annotate close() as deprecated. + * public/platform/WebKitPlatformSupport.h: Annotate a method as deprecated. + * src/StorageAreaProxy.cpp: Remove the include of a deleted file. + * src/StorageEventDispatcherChromium.cpp: Removed. + * src/StorageEventDispatcherImpl.cpp: Added a FIXME comment for upcoming work. + * src/StorageNamespaceProxy.cpp: Modified to no longer call out to the embedder thru the deprecated close() method. + * src/StorageNamespaceProxy.h: Moved some blank lines around. + * src/WebStorageAreaImpl.cpp: Removed. + * src/WebStorageAreaImpl.h: Removed. + * src/WebStorageEventDispatcherImpl.cpp: Cleaned up some cruft. + * src/WebStorageNamespaceImpl.cpp: Removed. + * src/WebStorageNamespaceImpl.h: Removed. + 2012-04-13 Sheriff Bot Unreviewed, rolling out r114140. diff --git a/Source/WebKit/chromium/WebKit.gyp b/Source/WebKit/chromium/WebKit.gyp index 7d5fea3..e1b37f7 100644 --- a/Source/WebKit/chromium/WebKit.gyp +++ b/Source/WebKit/chromium/WebKit.gyp @@ -474,7 +474,6 @@ 'src/SpeechRecognitionClientProxy.h', 'src/StorageAreaProxy.cpp', 'src/StorageAreaProxy.h', - 'src/StorageEventDispatcherChromium.cpp', 'src/StorageEventDispatcherImpl.cpp', 'src/StorageEventDispatcherImpl.h', 'src/StorageInfoChromium.cpp', @@ -657,12 +656,8 @@ 'src/WebSpeechInputResult.cpp', 'src/WebSpeechRecognitionHandle.cpp', 'src/WebSpeechRecognitionResult.cpp', - 'src/WebStorageAreaImpl.cpp', - 'src/WebStorageAreaImpl.h', 'src/WebStorageEventDispatcherImpl.cpp', 'src/WebStorageEventDispatcherImpl.h', - 'src/WebStorageNamespaceImpl.cpp', - 'src/WebStorageNamespaceImpl.h', 'src/WebStorageQuotaCallbacksImpl.cpp', 'src/WebStorageQuotaCallbacksImpl.h', 'src/WebTextRun.cpp', diff --git a/Source/WebKit/chromium/public/WebStorageNamespace.h b/Source/WebKit/chromium/public/WebStorageNamespace.h index bb748d95..25f73ef 100644 --- a/Source/WebKit/chromium/public/WebStorageNamespace.h +++ b/Source/WebKit/chromium/public/WebStorageNamespace.h @@ -43,23 +43,6 @@ class WebString; // StorageNamespace to represent LocalStorage for the entire browser. class WebStorageNamespace { public: - // Create a new WebStorageNamespace. LocalStorageNamespaces require a path to specify - // where the SQLite databases that make LocalStorage data persistent are located. - // If path is empty, data will not persist. You should call delete on the returned - // object when you're finished. - WEBKIT_EXPORT static WebStorageNamespace* createLocalStorageNamespace(const WebString& backingDirectoryPath, unsigned quota); - WEBKIT_EXPORT static WebStorageNamespace* createSessionStorageNamespace(unsigned quota); - - // The quota for each storage area. Suggested by the spec. - static const unsigned m_localStorageQuota = 5 * 1024 * 1024; - - // Since SessionStorage memory is allocated in the browser process, we place a - // per-origin quota on it. Like LocalStorage there are known attacks against - // this, so it's more of a sanity check than a real security measure. - static const unsigned m_sessionStorageQuota = 5 * 1024 * 1024; - - static const unsigned noQuota = UINT_MAX; - virtual ~WebStorageNamespace() { } // Create a new WebStorageArea object. Two subsequent calls with the same origin @@ -70,9 +53,8 @@ public: // Copy a StorageNamespace. This only makes sense in the case of SessionStorage. virtual WebStorageNamespace* copy() = 0; - // Shutdown the StorageNamespace. Write all StorageArea's to disk and disallow new - // write activity. - virtual void close() = 0; + // DEPRECATED + virtual void close() { } }; } // namespace WebKit diff --git a/Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h b/Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h index 2fd6846..ba9b53a 100644 --- a/Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h +++ b/Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h @@ -92,7 +92,7 @@ public: // Return a LocalStorage namespace that corresponds to the following path. virtual WebStorageNamespace* createLocalStorageNamespace(const WebString& path, unsigned quota) { return 0; } - // Called when storage events fire. + // DEPRECATED virtual void dispatchStorageEvent(const WebString& key, const WebString& oldValue, const WebString& newValue, const WebString& origin, const WebURL& url, bool isLocalStorage) { } diff --git a/Source/WebKit/chromium/src/StorageAreaProxy.cpp b/Source/WebKit/chromium/src/StorageAreaProxy.cpp index c707eb0..6b927f1 100644 --- a/Source/WebKit/chromium/src/StorageAreaProxy.cpp +++ b/Source/WebKit/chromium/src/StorageAreaProxy.cpp @@ -35,7 +35,6 @@ #include "Page.h" #include "PageGroup.h" #include "SecurityOrigin.h" -#include "StorageAreaImpl.h" #include "StorageEvent.h" #include "WebFrameImpl.h" @@ -140,6 +139,8 @@ void StorageAreaProxy::storageEvent(const String& key, const String& oldValue, c } for (unsigned i = 0; i < frames.size(); ++i) { + // FIXME: maybe only raise if the window has an onstorage listener + // attached to avoid creating the Storage instance. ExceptionCode ec = 0; Storage* storage = frames[i]->domWindow()->sessionStorage(ec); if (!ec) @@ -157,6 +158,8 @@ void StorageAreaProxy::storageEvent(const String& key, const String& oldValue, c } for (unsigned i = 0; i < frames.size(); ++i) { + // FIXME: maybe only raise if the window has an onstorage listener + // attached to avoid creating the Storage instance. ExceptionCode ec = 0; Storage* storage = frames[i]->domWindow()->localStorage(ec); if (!ec) diff --git a/Source/WebKit/chromium/src/StorageEventDispatcherChromium.cpp b/Source/WebKit/chromium/src/StorageEventDispatcherChromium.cpp deleted file mode 100644 index 0fa899c..0000000 --- a/Source/WebKit/chromium/src/StorageEventDispatcherChromium.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2009 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" -#include "StorageEventDispatcher.h" - -#include "SecurityOrigin.h" -#include "StorageArea.h" - -#include "WebKit.h" -#include "platform/WebKitPlatformSupport.h" -#include "platform/WebString.h" -#include "platform/WebURL.h" - -namespace WebCore { - -void StorageEventDispatcher::dispatch(const String& key, const String& oldValue, - const String& newValue, StorageType storageType, - SecurityOrigin* origin, Frame* sourceFrame) -{ - ASSERT(!sourceFrame); // Sad, but true. - WebKit::webKitPlatformSupport()->dispatchStorageEvent(key, oldValue, newValue, origin->toString(), WebKit::WebURL(), storageType == LocalStorage); -} - -} // namespace WebCore diff --git a/Source/WebKit/chromium/src/StorageEventDispatcherImpl.cpp b/Source/WebKit/chromium/src/StorageEventDispatcherImpl.cpp index 7ee3eb2..94317c4 100644 --- a/Source/WebKit/chromium/src/StorageEventDispatcherImpl.cpp +++ b/Source/WebKit/chromium/src/StorageEventDispatcherImpl.cpp @@ -49,6 +49,7 @@ StorageEventDispatcherImpl::StorageEventDispatcherImpl(const String& groupName) ASSERT(m_pageGroup); } +// FIXME: add a sourceStorageArea parameter to this void StorageEventDispatcherImpl::dispatchStorageEvent(const String& key, const String& oldValue, const String& newValue, SecurityOrigin* securityOrigin, const KURL& url, StorageType storageType) @@ -65,6 +66,7 @@ void StorageEventDispatcherImpl::dispatchStorageEvent(const String& key, const S HashSet::const_iterator end = pages.end(); for (HashSet::const_iterator it = pages.begin(); it != end; ++it) { for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext()) { + // FIXME: identify the srcFrame while in this loop too and exclude it from 'frames'. if (frame->document()->securityOrigin()->equal(securityOrigin)) frames.append(frame); } diff --git a/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp b/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp index 6a5cbd9..d061136 100644 --- a/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp +++ b/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp @@ -82,7 +82,7 @@ PassRefPtr StorageNamespaceProxy::storageArea(PassRefPtrclose(); + // N/A to the chromium port. } void StorageNamespaceProxy::clearOriginForDeletion(SecurityOrigin* origin) diff --git a/Source/WebKit/chromium/src/StorageNamespaceProxy.h b/Source/WebKit/chromium/src/StorageNamespaceProxy.h index 6cced89..d3d7596 100644 --- a/Source/WebKit/chromium/src/StorageNamespaceProxy.h +++ b/Source/WebKit/chromium/src/StorageNamespaceProxy.h @@ -39,11 +39,10 @@ public: virtual ~StorageNamespaceProxy(); virtual PassRefPtr storageArea(PassRefPtr); virtual PassRefPtr copy(); + virtual void close(); - virtual void clearOriginForDeletion(SecurityOrigin*); virtual void clearAllOriginsForDeletion(); - virtual void sync(); private: diff --git a/Source/WebKit/chromium/src/WebStorageAreaImpl.cpp b/Source/WebKit/chromium/src/WebStorageAreaImpl.cpp deleted file mode 100644 index 7f0a83a..0000000 --- a/Source/WebKit/chromium/src/WebStorageAreaImpl.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (C) 2009 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" -#include "WebStorageAreaImpl.h" - -#include "ExceptionCode.h" - -#include "platform/WebString.h" -#include "platform/WebURL.h" - -namespace WebKit { - -const WebURL* WebStorageAreaImpl::storageEventURL = 0; - -WebStorageAreaImpl::WebStorageAreaImpl(PassRefPtr storageArea) - : m_storageArea(storageArea) -{ -} - -WebStorageAreaImpl::~WebStorageAreaImpl() -{ -} - -unsigned WebStorageAreaImpl::length() -{ - return m_storageArea->length(0); -} - -WebString WebStorageAreaImpl::key(unsigned index) -{ - return m_storageArea->key(index, 0); -} - -WebString WebStorageAreaImpl::getItem(const WebString& key) -{ - return m_storageArea->getItem(key, 0); -} - -void WebStorageAreaImpl::setItem(const WebString& key, const WebString& value, const WebURL& url, Result& result, WebString& oldValue) -{ - int exceptionCode = 0; - - ScopedStorageEventURL scope(url); - oldValue = m_storageArea->setItem(key, value, exceptionCode, 0); - - if (exceptionCode) { - ASSERT(exceptionCode == WebCore::QUOTA_EXCEEDED_ERR); - result = ResultBlockedByQuota; - } else - result = ResultOK; -} - -void WebStorageAreaImpl::removeItem(const WebString& key, const WebURL& url, WebString& oldValue) -{ - ScopedStorageEventURL scope(url); - oldValue = m_storageArea->removeItem(key, 0); -} - -void WebStorageAreaImpl::clear(const WebURL& url, bool& somethingCleared) -{ - ScopedStorageEventURL scope(url); - somethingCleared = m_storageArea->clear(0); -} - -} // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebStorageAreaImpl.h b/Source/WebKit/chromium/src/WebStorageAreaImpl.h deleted file mode 100644 index b973188..0000000 --- a/Source/WebKit/chromium/src/WebStorageAreaImpl.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2009 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef WebStorageAreaImpl_h -#define WebStorageAreaImpl_h - -#include "StorageAreaImpl.h" -#include "WebStorageArea.h" - -namespace WebKit { - -class WebStorageAreaImpl : public WebStorageArea { -public: - WebStorageAreaImpl(PassRefPtr storageArea); - virtual ~WebStorageAreaImpl(); - virtual unsigned length(); - virtual WebString key(unsigned index); - virtual WebString getItem(const WebString& key); - virtual void setItem(const WebString& key, const WebString& value, const WebURL&, Result&, WebString& oldValue); - virtual void removeItem(const WebString& key, const WebURL& url, WebString& oldValue); - virtual void clear(const WebURL& url, bool& somethingCleared); - - // For storage events in single-process mode and test shell. - static const WebURL* currentStorageEventURL() { return storageEventURL; } - -private: - class ScopedStorageEventURL { - public: - ScopedStorageEventURL(const WebURL& url) - { - // FIXME: Once storage events are fired async in WebKit (as they should - // be) this can be ASSERTed to be 0 rather than saved. - m_existingStorageEventURL = storageEventURL; - storageEventURL = &url; - } - ~ScopedStorageEventURL() - { - storageEventURL = m_existingStorageEventURL; - } - - private: - const WebURL* m_existingStorageEventURL; - }; - - static const WebURL* storageEventURL; - - RefPtr m_storageArea; -}; - -} // namespace WebKit - -#endif // WebStorageAreaImpl_h diff --git a/Source/WebKit/chromium/src/WebStorageEventDispatcherImpl.cpp b/Source/WebKit/chromium/src/WebStorageEventDispatcherImpl.cpp index f1548cd..c95e855 100644 --- a/Source/WebKit/chromium/src/WebStorageEventDispatcherImpl.cpp +++ b/Source/WebKit/chromium/src/WebStorageEventDispatcherImpl.cpp @@ -34,7 +34,6 @@ #include "KURL.h" #include "SecurityOrigin.h" -#include "WebStorageAreaImpl.h" #include "platform/WebURL.h" #include @@ -55,15 +54,11 @@ WebStorageEventDispatcherImpl::WebStorageEventDispatcherImpl() void WebStorageEventDispatcherImpl::dispatchStorageEvent(const WebString& key, const WebString& oldValue, const WebString& newValue, const WebString& origin, - const WebURL& passedInURL, bool isLocalStorage) + const WebURL& pageURL, bool isLocalStorage) { - // Hack for single-process mode and test shell. - const WebURL* storageAreaImplURL = WebStorageAreaImpl::currentStorageEventURL(); - const WebURL& url = storageAreaImplURL ? *storageAreaImplURL : passedInURL; - WebCore::StorageType storageType = isLocalStorage ? WebCore::LocalStorage : WebCore::SessionStorage; RefPtr securityOrigin = WebCore::SecurityOrigin::createFromString(origin); - m_eventDispatcher->dispatchStorageEvent(key, oldValue, newValue, securityOrigin.get(), url, storageType); + m_eventDispatcher->dispatchStorageEvent(key, oldValue, newValue, securityOrigin.get(), pageURL, storageType); } } // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebStorageNamespaceImpl.cpp b/Source/WebKit/chromium/src/WebStorageNamespaceImpl.cpp deleted file mode 100644 index bb43619..0000000 --- a/Source/WebKit/chromium/src/WebStorageNamespaceImpl.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) 2009 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" -#include "WebStorageNamespaceImpl.h" - -#include "SecurityOrigin.h" -#include "WebStorageAreaImpl.h" -#include "platform/WebString.h" - -namespace WebKit { - -WebStorageNamespace* WebStorageNamespace::createLocalStorageNamespace(const WebString& path, unsigned quota) -{ - return new WebStorageNamespaceImpl(WebCore::StorageNamespaceImpl::localStorageNamespace(path, quota)); -} - -WebStorageNamespace* WebStorageNamespace::createSessionStorageNamespace(unsigned quota) -{ - return new WebStorageNamespaceImpl(WebCore::StorageNamespaceImpl::sessionStorageNamespace(quota)); -} - -WebStorageNamespaceImpl::WebStorageNamespaceImpl(PassRefPtr storageNamespace) - : m_storageNamespace(storageNamespace) -{ -} - -WebStorageNamespaceImpl::~WebStorageNamespaceImpl() -{ -} - -WebStorageArea* WebStorageNamespaceImpl::createStorageArea(const WebString& originString) -{ - RefPtr origin = WebCore::SecurityOrigin::createFromString(originString); - return new WebStorageAreaImpl(m_storageNamespace->storageArea(origin.release())); -} - -WebStorageNamespace* WebStorageNamespaceImpl::copy() -{ - return new WebStorageNamespaceImpl(m_storageNamespace->copy()); -} - -void WebStorageNamespaceImpl::close() -{ - m_storageNamespace->close(); -} - -} // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebStorageNamespaceImpl.h b/Source/WebKit/chromium/src/WebStorageNamespaceImpl.h deleted file mode 100644 index 10406c1..0000000 --- a/Source/WebKit/chromium/src/WebStorageNamespaceImpl.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2009 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef WebStorageNamespaceImpl_h -#define WebStorageNamespaceImpl_h - -#include "StorageNamespaceImpl.h" -#include "WebStorageNamespace.h" - -namespace WebKit { - -class WebStorageNamespaceImpl : public WebStorageNamespace { -public: - WebStorageNamespaceImpl(PassRefPtr storageNamespace); - virtual ~WebStorageNamespaceImpl(); - virtual WebStorageArea* createStorageArea(const WebString& origin); - virtual WebStorageNamespace* copy(); - virtual void close(); - -private: - RefPtr m_storageNamespace; -}; - -} // namespace WebKit - -#endif // WebStorageNamespaceImpl_h