void ServiceWorkerGlobalScopeProxy::dispatchExtendableMessageEvent( int eventID, const WebString& message, const WebSecurityOrigin& sourceOrigin, const WebMessagePortChannelArray& webChannels, const WebServiceWorkerClientInfo& client) { WebSerializedScriptValue value = WebSerializedScriptValue::fromString(message); MessagePortArray* ports = MessagePort::toMessagePortArray(m_workerGlobalScope, webChannels); String origin; if (!sourceOrigin.isUnique()) origin = sourceOrigin.toString(); ServiceWorkerClient* source = nullptr; if (client.clientType == WebServiceWorkerClientTypeWindow) source = ServiceWorkerWindowClient::create(client); else source = ServiceWorkerClient::create(client); WaitUntilObserver* observer = WaitUntilObserver::create( workerGlobalScope(), WaitUntilObserver::Message, eventID); Event* event = ExtendableMessageEvent::create(value, origin, ports, source, observer); workerGlobalScope()->dispatchExtendableEvent(event, observer); }
void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String& databaseIdentifier) { #if ENABLE(DATABASE) WebSecurityOrigin *origin = WebSecurityOrigin::createInstance(frame->document()->securityOrigin()); const unsigned long long defaultQuota = 5 * 1024 * 1024; // 5 megabytes should hopefully be enough to test storage support. origin->setQuota(defaultQuota); delete origin; #endif }
void WebDatabaseManager::deleteDatabase(WebCore::String databaseName, WebSecurityOrigin* origin) { if (this != s_sharedWebDatabaseManager) return; WebSecurityOrigin* webSecurityOrigin = WebSecurityOrigin::createInstance(origin->securityOrigin()); if (!webSecurityOrigin) return; DatabaseTracker::tracker().deleteDatabase(webSecurityOrigin->securityOrigin(), databaseName); delete webSecurityOrigin; }
void WebDatabaseManager::deleteOrigin(WebSecurityOrigin* origin) { if (this != s_sharedWebDatabaseManager) return; WebSecurityOrigin* webSecurityOrigin = WebSecurityOrigin::createInstance(origin->securityOrigin()); if (!webSecurityOrigin) return; DatabaseTracker::tracker().deleteOrigin(webSecurityOrigin->securityOrigin()); delete webSecurityOrigin; }
void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String& databaseIdentifier) { #if ENABLE(DATABASE) WebSecurityOrigin *origin = WebSecurityOrigin::createInstance(frame->document()->securityOrigin()); SharedPtr<JSActionDelegate> jsActionDelegate = m_webView->jsActionDelegate(); if (jsActionDelegate) jsActionDelegate->exceededDatabaseQuota(m_webView->mainFrame(), origin, databaseIdentifier.utf8().data()); else { const unsigned long long defaultQuota = 5 * 1024 * 1024; // 5 megabytes should hopefully be enough to test storage support. origin->setQuota(defaultQuota); } delete origin; #endif }
void NotificationPresenter::requestPermission( const WebSecurityOrigin& origin, WebNotificationPermissionCallback* callback) { m_delegate->printMessage("DESKTOP NOTIFICATION PERMISSION REQUESTED: " + string(origin.toString().utf8()) + "\n"); callback->permissionRequestComplete(); }
Vector<String> WebDatabaseManager::databasesWithOrigin(WebSecurityOrigin* origin) { Vector<String> databaseNames; if (this != s_sharedWebDatabaseManager) return databaseNames; WebSecurityOrigin *webSecurityOrigin = WebSecurityOrigin::createInstance(origin->securityOrigin()); if (!webSecurityOrigin) return databaseNames; DatabaseTracker::tracker().databaseNamesForOrigin(webSecurityOrigin->securityOrigin(), databaseNames); delete webSecurityOrigin; return databaseNames; }
void NotificationPresenter::requestPermission( const WebSecurityOrigin& origin, WebNotificationPermissionCallback* callback) { printf("DESKTOP NOTIFICATION PERMISSION REQUESTED: %s\n", origin.toString().utf8().data()); callback->permissionRequestComplete(); }
WebNotificationPresenter::Permission NotificationPresenter::checkPermission(const WebSecurityOrigin& origin) { // Check with the layout test controller WebString originString = origin.toString(); bool allowed = m_allowedOrigins.find(string(originString.utf8())) != m_allowedOrigins.end(); return allowed ? WebNotificationPresenter::PermissionAllowed : WebNotificationPresenter::PermissionDenied; }
void ServiceWorkerGlobalScopeProxy::dispatchExtendableMessageEvent( int eventID, const WebString& message, const WebSecurityOrigin& sourceOrigin, const WebMessagePortChannelArray& webChannels, std::unique_ptr<WebServiceWorker::Handle> handle) { WebSerializedScriptValue value = WebSerializedScriptValue::fromString(message); MessagePortArray* ports = MessagePort::toMessagePortArray(m_workerGlobalScope, webChannels); String origin; if (!sourceOrigin.isUnique()) origin = sourceOrigin.toString(); ServiceWorker* source = ServiceWorker::from(m_workerGlobalScope->getExecutionContext(), WTF::wrapUnique(handle.release())); WaitUntilObserver* observer = WaitUntilObserver::create( workerGlobalScope(), WaitUntilObserver::Message, eventID); Event* event = ExtendableMessageEvent::create(value, origin, ports, source, observer); workerGlobalScope()->dispatchExtendableEvent(event, observer); }
DatabaseDetails WebDatabaseManager::detailsForDatabase(WebCore::String databaseName, WebSecurityOrigin* origin) { if (this != s_sharedWebDatabaseManager) return DatabaseDetails(); WebSecurityOrigin* webSecurityOrigin = WebSecurityOrigin::createInstance(origin->securityOrigin()); if (!webSecurityOrigin) return DatabaseDetails(); DatabaseDetails details = DatabaseTracker::tracker().detailsForNameAndOrigin(databaseName, webSecurityOrigin->securityOrigin()); delete webSecurityOrigin; return details; }
// WebSecurityOrigin --------------------------------------------------------------- WebSecurityOrigin* WebSecurityOrigin::createInstance(SecurityOrigin* securityOrigin) { WebSecurityOrigin* origin = new WebSecurityOrigin(securityOrigin); origin->AddRef(); return origin; }
void WebDatabase::closeDatabaseImmediately(const WebSecurityOrigin& origin, const WebString& databaseName) { DatabaseTracker::tracker().closeDatabasesImmediately(origin.get(), databaseName); }
void WebDatabase::resetSpaceAvailable(const WebSecurityOrigin& origin) { QuotaTracker::instance().resetSpaceAvailableToOrigin(origin.get()); }
void WebDatabase::updateSpaceAvailable(const WebSecurityOrigin& origin, long long spaceAvailable) { QuotaTracker::instance().updateSpaceAvailableToOrigin(origin.get(), spaceAvailable); }
void WebDatabase::updateDatabaseSize(const WebSecurityOrigin& origin, const WebString& name, long long size) { QuotaTracker::instance().updateDatabaseSize(origin.get(), name, size); }