void IDBFactoryBackendProxy::openFromWorker(const String& name, IDBCallbacks* callbacks, PassRefPtr<SecurityOrigin> prpOrigin, WorkerContext* context, const String& dataDir) { #if ENABLE(WORKERS) WebSecurityOrigin origin(prpOrigin); if (!allowIDBFromWorkerThread(context, name, origin)) { callbacks->onError(WebIDBDatabaseError(0, "The user denied permission to access the database.")); return; } m_webIDBFactory->open(name, new WebIDBCallbacksImpl(callbacks), origin, /*webFrame*/0, dataDir); #endif }
void IDBFactoryBackendProxy::openFromWorker(const String& name, IDBCallbacks* callbacks, PassRefPtr<SecurityOrigin> prpOrigin, WorkerContext* context, const String& dataDir) { #if ENABLE(WORKERS) WebSecurityOrigin origin(prpOrigin); if (!allowIDBFromWorkerThread(context, name, origin)) { callbacks->onError(WebIDBDatabaseError(0, "The user denied permission to access the database.")); return; } WorkerLoaderProxy* workerLoaderProxy = &context->thread()->workerLoaderProxy(); WebWorkerBase* webWorker = static_cast<WebWorkerBase*>(workerLoaderProxy); WebView* webView = webWorker->view(); if (!webView) { // Frame is closed, worker is terminaring. return; } WebFrame* webFrame = webView->mainFrame(); m_webIDBFactory->open(name, new WebIDBCallbacksImpl(callbacks), origin, webFrame, dataDir); #endif }