QuotaExceededError when saving to localStorage in private mode.
https://bugs.webkit.org/show_bug.cgi?id=157010
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (Covered by changes to existing test).
LocalStorage in private browsing is now effectively SessionStorage.
It's ephemeral, per-tab, and copied over to tabs window.open()'ed from the current.
(WebCore::EmptyStorageNamespaceProvider::createEphemeralLocalStorageNamespace):
(WebCore::Chrome::createWindow):
(WebCore::Page::ephemeralLocalStorage):
(WebCore::Page::setEphemeralLocalStorage):
- page/SecurityOriginData.h:
(WebCore::Storage::length):
(WebCore::Storage::key):
(WebCore::Storage::getItem):
(WebCore::Storage::setItem):
(WebCore::Storage::removeItem):
(WebCore::Storage::clear):
(WebCore::Storage::contains):
(WebCore::Storage::isDisabledByPrivateBrowsing): Deleted.
- storage/StorageNamespaceProvider.cpp:
(WebCore::StorageNamespaceProvider::localStorageArea):
- storage/StorageNamespaceProvider.h:
(WebCore::isLocalStorage):
(WebCore::isPersistentLocalStorage):
Source/WebKit:
- Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::close):
- Storage/StorageNamespaceImpl.h:
- Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace):
- Storage/WebStorageNamespaceProvider.h:
Source/WebKit2:
- WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):
- WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::storageArea):
(WebKit::StorageNamespaceImpl::ephemeralLocalStorageArea):
(WebKit::StorageNamespaceImpl::copy):
- WebProcess/Storage/StorageNamespaceImpl.h:
- WebProcess/Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace):
- WebProcess/Storage/WebStorageNamespaceProvider.h:
LayoutTests:
- platform/mac-wk2/TestExpectations:
- storage/domstorage/localstorage/private-browsing-affects-storage-expected.txt:
- storage/domstorage/localstorage/private-browsing-affects-storage.html:
- storage/domstorage/localstorage/resources/private-browsing-1.html: Added.
- storage/domstorage/localstorage/resources/private-browsing-2.html: Added.
- storage/domstorage/localstorage/resources/private-browsing-3.html: Added.
- storage/domstorage/localstorage/resources/private-browsing-storage-2.html: Added.
- storage/domstorage/sessionstorage/private-browsing-affects-storage-expected.txt: Removed.
- storage/domstorage/sessionstorage/private-browsing-affects-storage.html: Removed.