summaryrefslogtreecommitdiffstats
path: root/WebKit/chromium/src/DatabaseObserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/chromium/src/DatabaseObserver.cpp')
-rw-r--r--WebKit/chromium/src/DatabaseObserver.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/WebKit/chromium/src/DatabaseObserver.cpp b/WebKit/chromium/src/DatabaseObserver.cpp
index 6a2e2a7..1c5117c 100644
--- a/WebKit/chromium/src/DatabaseObserver.cpp
+++ b/WebKit/chromium/src/DatabaseObserver.cpp
@@ -50,12 +50,16 @@ namespace WebCore {
bool DatabaseObserver::canEstablishDatabase(ScriptExecutionContext* scriptExecutionContext, const String& name, const String& displayName, unsigned long estimatedSize)
{
ASSERT(scriptExecutionContext->isContextThread());
- // FIXME: add support for the case scriptExecutionContext()->isWorker() once workers implement web databases.
- ASSERT(scriptExecutionContext->isDocument());
+ ASSERT(scriptExecutionContext->isDocument() || scriptExecutionContext->isWorkerContext());
if (scriptExecutionContext->isDocument()) {
Document* document = static_cast<Document*>(scriptExecutionContext);
WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document->frame());
return webFrame->client()->allowDatabase(webFrame, name, displayName, estimatedSize);
+ } else {
+ WorkerContext* workerContext = static_cast<WorkerContext*>(scriptExecutionContext);
+ WorkerLoaderProxy* workerLoaderProxy = &workerContext->thread()->workerLoaderProxy();
+ WebWorkerBase* webWorker = static_cast<WebWorkerBase*>(workerLoaderProxy);
+ return webWorker->allowDatabase(0, name, displayName, estimatedSize);
}
return true;