WebKit2: Implement WebChromeClient::exceededDatabaseQuota
authorjberlin@webkit.org <jberlin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 8 Dec 2010 19:06:42 +0000 (19:06 +0000)
committerjberlin@webkit.org <jberlin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 8 Dec 2010 19:06:42 +0000 (19:06 +0000)
commitf362a16003107e6022b25b2dcd4f6ef944326ed8
tree0c912b317376454b0d8303929233508b39092183
parente5fd24063107ef8087757300aa68d4b71e65fca9
WebKit2: Implement WebChromeClient::exceededDatabaseQuota
https://bugs.webkit.org/show_bug.cgi?id=50656

Reviewed by Adam Roben.

WebCore:

* WebCore.exp.in:
Export the symbol for SecurityOrigin::databaseIdentifier.

WebKit2:

The exceededDatabaseQuota call from the WebProcess to the UIProcess needs to be synchronous
because the new quota is checked directly after exceededDatabaseQuota returns in order to
determine if the new Database can be created.

Pass all of the details from the WebProcess to the UIProcess in order to inform the
decision in the UIProcess about the new quota. In WebKit1, these details were
fetched through an additional call to the API detailsForDatabase (which is infeasible in
WebKit2 since exceededDatabaseQuota is a synchronous call).

* Platform/CoreIPC/HandleMessage.h:
(CoreIPC::callMemberFunction):
Add a version that takes 7 parameters.

* UIProcess/API/C/WKPage.h:

* UIProcess/API/qt/qwkpage.cpp:
(QWKPage::QWKPage):
Indicate that exceededDatabaseQuota is not implemented.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::exceededDatabaseQuota):
Call the UIClient's exceededDatabaseQuota
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:

* UIProcess/WebUIClient.cpp:
(WebKit::WebUIClient::exceededDatabaseQuota):
If the client does not implement exceededDatabaseQuota, return a the current quota.
* UIProcess/WebUIClient.h:

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exceededDatabaseQuota):
Send a synchronous message to the UIProcess to ask for the new quota for the origin for the
given frame.

WebKitTools:

* MiniBrowser/mac/BrowserWindowController.m:
(-[BrowserWindowController awakeFromNib]):
Indicate that exceededDatabaseQuota is not implemented.
* MiniBrowser/win/BrowserView.cpp:
(BrowserView::create):
Ditto.
* WebKitTestRunner/TestController.cpp:
(WTR::createOtherPage):
Ditto.
(WTR::TestController::initialize):
Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@73533 268f45cc-cd09-0410-ab3c-d52691b4dbfc
16 files changed:
WebCore/ChangeLog
WebCore/WebCore.exp.in
WebKit2/ChangeLog
WebKit2/Platform/CoreIPC/HandleMessage.h
WebKit2/UIProcess/API/C/WKPage.h
WebKit2/UIProcess/API/qt/qwkpage.cpp
WebKit2/UIProcess/WebPageProxy.cpp
WebKit2/UIProcess/WebPageProxy.h
WebKit2/UIProcess/WebPageProxy.messages.in
WebKit2/UIProcess/WebUIClient.cpp
WebKit2/UIProcess/WebUIClient.h
WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
WebKitTools/ChangeLog
WebKitTools/MiniBrowser/mac/BrowserWindowController.m
WebKitTools/MiniBrowser/win/BrowserView.cpp
WebKitTools/WebKitTestRunner/TestController.cpp