Add WebStorageNamespaceProvider::closeLocalStorage
https://bugs.webkit.org/show_bug.cgi?id=139502

Reviewed by Tim Horton.

Source/WebCore:

* page/Page.cpp:
(WebCore::Page::~Page):
Call StorageNamespaceProvider::removePage.

* storage/StorageNamespaceProvider.h:
(WebCore::StorageNamespaceProvider::optionalLocalStorageNamespace):
Helper function that returns the local storage namespace if one exists.

Source/WebKit:

* Storage/WebStorageNamespaceProvider.cpp:
(storageNamespaceProviders):
(WebStorageNamespaceProvider::WebStorageNamespaceProvider):
(WebStorageNamespaceProvider::~WebStorageNamespaceProvider):
Keep track of all live storage namespace providers.

(WebStorageNamespaceProvider::closeLocalStorage):
Loop through all storage namespace providers and call close() on their local storage namespaces.

* Storage/WebStorageNamespaceProvider.h:

Source/WebKit/mac:

* WebView/WebView.mm:
(+[WebView _applicationWillTerminate]):
Call WebStorageNamespaceProvider::closeLocalStorage.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@177087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Blur filter performance test doesn't provide results
https://bugs.webkit.org/show_bug.cgi?id=139462

Reviewed by Sam Weinig.

This can't currently work under our performance test
infrastructure. Move it to a manual test to avoid
putting FAILures into the results.

* ManualTests/blur-filter-timing.html: Renamed from PerformanceTests/Interactive/blur-filter-timing.html.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@177088 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Crash when creating CSSCalcBinaryOperation
https://bugs.webkit.org/show_bug.cgi?id=134886
rdar://problem/17663561

Reviewed by Chris Dumez.

Source/WebCore:

Test: fast/css/calc-binary-operation-crash.html

* css/CSSCalculationValue.cpp:
(WebCore::determineCategory):

Ensure that both axis are within the addSubtractResult table.
Remove unneeded CalcOther test. The call site guarantees it doesn't happen and the normal cases would handle it anyway.
Also strengthen some asserts.

LayoutTests:

* fast/css/calc-binary-operation-crash-expected.txt: Added.
* fast/css/calc-binary-operation-crash.html: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@177089 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Begin fixing transient local storage handling
https://bugs.webkit.org/show_bug.cgi?id=139503

Reviewed by Sam Weinig.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createTransientLocalStorageMap):
* UIProcess/Storage/StorageManager.h:
Add empty stub implementation of createTransientLocalStorageMap.

* UIProcess/Storage/StorageManager.messages.in:
Add CreateTransientLocalStorageMap message.

* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
If we have a local storage namespace with a non-null top-level origin, create a
transient local storage map.

* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
Pass a null top-level origin to the StorageNamespaceImpl constructor.

(WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace):
Create a new StorageNamespaceImpl, passing the top-level origin to the constructor.

(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
Pass a null top-level origin to the StorageNamespaceImpl constructor.

(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
Add a top-level origin parameter.

* WebProcess/Storage/StorageNamespaceImpl.h:
(WebKit::StorageNamespaceImpl::topLevelOrigin):
Add top-level origin member and getter.

* WebProcess/Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
Call StorageNamespaceImpl::createTransientLocalStorageNamespace.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@177090 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Please disable the webkitFirstVersionWithInitConstructorSupport check on Apple TV
https://bugs.webkit.org/show_bug.cgi?id=139501

Reviewed by Gavin Barraclough.

Source/JavaScriptCore:

NSVersionOfLinkTimeLibrary only works if you link directly against
JavaScriptCore, which is a bit awkward for our Apple TV client to do.

It's easy enough just to disable this check on Apple TV, since it has no
backwards compatibility requirement.

* API/JSWrapperMap.mm:
(supportsInitMethodConstructors):

Source/WTF:

Added a platform definition for APPLETV.

(It's not an OS because it's not mutually exclusive with other OS definitions.)

* wtf/Platform.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@177091 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a missing null check.

* page/Page.cpp:
(WebCore::Page::~Page):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@177092 268f45cc-cd09-0410-ab3c-d52691b4dbfc