Changeset 100041 in webkit
- Timestamp:
- Nov 11, 2011, 3:54:14 PM (15 years ago)
- Location:
- trunk/Source
- Files:
-
- 10 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/bindings/v8/V8Proxy.cpp (modified) (3 diffs)
-
WebCore/page/Navigator.cpp (modified) (1 diff)
-
WebCore/page/Navigator.idl (modified) (1 diff)
-
WebCore/storage/StorageNamespace.h (modified) (1 diff)
-
WebCore/storage/StorageNamespaceImpl.cpp (modified) (1 diff)
-
WebCore/storage/StorageNamespaceImpl.h (modified) (1 diff)
-
WebKit/chromium/ChangeLog (modified) (1 diff)
-
WebKit/chromium/src/StorageNamespaceProxy.cpp (modified) (1 diff)
-
WebKit/chromium/src/StorageNamespaceProxy.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r100038 r100041 1 2011-11-11 Adam Klein <adamk@chromium.org> 2 3 Remove no-op StorageNamespace::unlock method 4 https://bugs.webkit.org/show_bug.cgi?id=72181 5 6 Reviewed by Darin Adler. 7 8 The method was meant to support the localStorage mutex, 9 but the approach of using a mutex for localStorage has never been 10 implemented (and almost certainly won't be). Even if it were implemented, 11 it's not being called at the right time, due to bugs in the V8 bindings' 12 use of V8Proxy (see http://webkit.org/b/72063 for details). 13 14 If, in the future, some replacement for a mutex is used to synchronize 15 localStorage access, it can easily be re-added to the (hopefully 16 fixed-by-then) replacement for V8Proxy::didLeaveScriptContext. 17 18 * bindings/v8/V8Proxy.cpp: 19 (WebCore::V8Proxy::didLeaveScriptContext): Stop calling unlock(). 20 * page/Navigator.cpp: 21 (WebCore::Navigator::getStorageUpdates): Remove implementation (a call to unlock), but leave code as it's exposed to the platform. 22 * page/Navigator.idl: Added a FIXME to remove getStorageUpdates from the platform. 23 * storage/StorageNamespace.h: 24 * storage/StorageNamespaceImpl.cpp: 25 * storage/StorageNamespaceImpl.h: 26 1 27 2011-11-11 Alexis Menard <alexis.menard@openbossa.org> 2 28 -
trunk/Source/WebCore/bindings/v8/V8Proxy.cpp
r100003 r100041 46 46 #include "InspectorInstrumentation.h" 47 47 #include "Page.h" 48 #include "PageGroup.h"49 48 #include "PlatformSupport.h" 50 49 #include "ScriptSourceCode.h" 51 50 #include "SecurityOrigin.h" 52 51 #include "Settings.h" 53 #include "StorageNamespace.h"54 52 #include "V8Binding.h" 55 53 #include "V8BindingState.h" … … 590 588 void V8Proxy::didLeaveScriptContext() 591 589 { 592 Page* page = m_frame->page();593 if (!page)594 return;595 // If we've just left a top level script context and local storage has been596 // instantiated, we must ensure that any storage locks have been freed.597 // Per http://dev.w3.org/html5/spec/Overview.html#storage-mutex598 590 if (m_recursion) 599 591 return; 592 600 593 #if ENABLE(INDEXED_DATABASE) 601 594 // If we've just left a script context and indexed database has been … … 604 597 IDBPendingTransactionMonitor::abortPendingTransactions(); 605 598 #endif // ENABLE(INDEXED_DATABASE) 606 if (page->group().hasLocalStorage())607 page->group().localStorage()->unlock();608 599 609 600 #if ENABLE(MUTATION_OBSERVERS) -
trunk/Source/WebCore/page/Navigator.cpp
r100004 r100041 173 173 void Navigator::getStorageUpdates() 174 174 { 175 if (!m_frame) 176 return; 177 178 Page* page = m_frame->page(); 179 if (!page) 180 return; 181 182 StorageNamespace* localStorage = page->group().localStorage(); 183 if (localStorage) 184 localStorage->unlock(); 175 // FIXME: Remove this method or rename to yieldForStorageUpdates. 185 176 } 186 177 -
trunk/Source/WebCore/page/Navigator.idl
r100004 r100041 45 45 #endif 46 46 47 void getStorageUpdates(); 47 void getStorageUpdates(); // FIXME: Remove this method or rename to yieldForStorageUpdates. 48 48 49 49 #if defined(ENABLE_REGISTER_PROTOCOL_HANDLER) && ENABLE_REGISTER_PROTOCOL_HANDLER -
trunk/Source/WebCore/storage/StorageNamespace.h
r97574 r100041 48 48 virtual PassRefPtr<StorageNamespace> copy() = 0; 49 49 virtual void close() = 0; 50 virtual void unlock() = 0;51 50 virtual void clearOriginForDeletion(SecurityOrigin*) = 0; 52 51 virtual void clearAllOriginsForDeletion() = 0; -
trunk/Source/WebCore/storage/StorageNamespaceImpl.cpp
r98316 r100041 140 140 } 141 141 142 void StorageNamespaceImpl::unlock()143 {144 // Because there's a single event loop per-process, this is a no-op.145 }146 147 142 void StorageNamespaceImpl::clearOriginForDeletion(SecurityOrigin* origin) 148 143 { -
trunk/Source/WebCore/storage/StorageNamespaceImpl.h
r97574 r100041 48 48 virtual PassRefPtr<StorageNamespace> copy(); 49 49 virtual void close(); 50 virtual void unlock();51 50 52 51 // Not removing the origin's StorageArea from m_storageAreaMap because -
trunk/Source/WebKit/chromium/ChangeLog
r100040 r100041 1 2011-11-11 Adam Klein <adamk@chromium.org> 2 3 Remove no-op StorageNamespace::unlock method 4 https://bugs.webkit.org/show_bug.cgi?id=72181 5 6 Reviewed by Darin Adler. 7 8 * src/StorageNamespaceProxy.cpp: 9 * src/StorageNamespaceProxy.h: 10 1 11 2011-11-11 Stephen Chenney <schenney@chromium.org> 2 12 -
trunk/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp
r97574 r100041 86 86 } 87 87 88 void StorageNamespaceProxy::unlock()89 {90 // FIXME: Implement.91 }92 93 88 void StorageNamespaceProxy::clearOriginForDeletion(SecurityOrigin* origin) 94 89 { -
trunk/Source/WebKit/chromium/src/StorageNamespaceProxy.h
r97574 r100041 41 41 virtual PassRefPtr<StorageNamespace> copy(); 42 42 virtual void close(); 43 virtual void unlock();44 43 45 44 virtual void clearOriginForDeletion(SecurityOrigin*);
Note:
See TracChangeset
for help on using the changeset viewer.