void WebWorkerClientImpl::openFileSystem(WebFileSystem::Type type, long long size, bool create, WebFileSystemCallbacks* callbacks) { if (askedToTerminate()) { callbacks->didFail(WebFileErrorAbort); return; } m_webFrame->client()->openFileSystem(m_webFrame, type, size, create, callbacks); }
bool WebWorkerClientImpl::allowIndexedDB(const WebString& name) { if (askedToTerminate()) return false; WebKit::WebViewImpl* webView = m_webFrame->viewImpl(); if (!webView) return false; return !webView->permissionClient() || webView->permissionClient()->allowIndexedDB(m_webFrame, name, WebSecurityOrigin()); }
bool WebWorkerClientImpl::allowFileSystem() { if (askedToTerminate()) return false; WebKit::WebViewImpl* webView = m_webFrame->viewImpl(); if (!webView) return false; return !webView->permissionClient() || webView->permissionClient()->allowFileSystem(m_webFrame); }
bool WebWorkerClientImpl::allowDatabase(WebFrame*, const WebString& name, const WebString& displayName, unsigned long estimatedSize) { if (askedToTerminate()) return false; WebKit::WebViewImpl* webView = m_webFrame->viewImpl(); if (!webView) return false; return !webView->permissionClient() || webView->permissionClient()->allowDatabase(m_webFrame, name, displayName, estimatedSize); }
void WorkerMessagingProxy::postConsoleMessageToWorkerObject(MessageSource source, MessageLevel level, const String& message, int lineNumber, int columnNumber, const String& sourceURL) { String messageCopy = message.isolatedCopy(); String sourceURLCopy = sourceURL.isolatedCopy(); m_scriptExecutionContext->postTask([=] (ScriptExecutionContext* context) { if (askedToTerminate()) return; context->addConsoleMessage(source, level, messageCopy, sourceURLCopy, lineNumber, columnNumber); }); }
void WorkerMessagingProxy::postMessageToWorkerObject(RefPtr<SerializedScriptValue>&& message, std::unique_ptr<MessagePortChannelArray> channels) { m_scriptExecutionContext->postTask([this, channels = WTFMove(channels), message = WTFMove(message)] (ScriptExecutionContext& context) mutable { Worker* workerObject = this->workerObject(); if (!workerObject || askedToTerminate()) return; auto ports = MessagePort::entanglePorts(context, WTFMove(channels)); workerObject->dispatchEvent(MessageEvent::create(WTFMove(ports), WTFMove(message))); }); }
void WorkerMessagingProxy::postMessageToWorkerObject(PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray> channels) { MessagePortChannelArray* channelsPtr = channels.release(); m_scriptExecutionContext->postTask([=] (ScriptExecutionContext* context) { Worker* workerObject = this->workerObject(); if (!workerObject || askedToTerminate()) return; std::unique_ptr<MessagePortArray> ports = MessagePort::entanglePorts(*context, std::unique_ptr<MessagePortChannelArray>(channelsPtr)); workerObject->dispatchEvent(MessageEvent::create(std::move(ports), message)); }); }
WebView* WebWorkerClientImpl::view() const { if (askedToTerminate()) return 0; return m_webFrame->view(); }