Modified: branches/safari-607-branch/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp (240063 => 240064)
--- branches/safari-607-branch/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp 2019-01-16 23:27:17 UTC (rev 240063)
+++ branches/safari-607-branch/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp 2019-01-16 23:27:20 UTC (rev 240064)
@@ -193,7 +193,7 @@
bool checkUserMediaPermissionForOrigin(WebPageProxy& page, WebFrameProxy&, API::SecurityOrigin& userMediaDocumentOrigin, API::SecurityOrigin& topLevelDocumentOrigin, UserMediaPermissionCheckProxy& permissionRequest) override
{
- auto deviceInfoPermissionRequest = adoptGRef(webkitDeviceInfoPermissionRequestCreate(permissionRequest, page.websiteDataStore().deviceIdHashSaltStorage()));
+ auto deviceInfoPermissionRequest = adoptGRef(webkitDeviceInfoPermissionRequestCreate(permissionRequest, &page.websiteDataStore().deviceIdHashSaltStorage()));
webkitWebViewMakePermissionRequest(m_webView, WEBKIT_PERMISSION_REQUEST(deviceInfoPermissionRequest.get()));
return true;
}
Modified: branches/safari-607-branch/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp (240063 => 240064)
--- branches/safari-607-branch/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp 2019-01-16 23:27:17 UTC (rev 240063)
+++ branches/safari-607-branch/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp 2019-01-16 23:27:20 UTC (rev 240064)
@@ -176,7 +176,7 @@
{
ASSERT(audioDevice || videoDevice);
- if (!m_page.isValid() || !m_page.websiteDataStore().deviceIdHashSaltStorage())
+ if (!m_page.isValid())
return;
#if ENABLE(MEDIA_STREAM)
@@ -184,7 +184,7 @@
if (!request)
return;
- m_page.websiteDataStore().deviceIdHashSaltStorage()->deviceIdHashSaltForOrigin(request->userMediaDocumentSecurityOrigin(), request->topLevelDocumentSecurityOrigin(), [this, weakThis = makeWeakPtr(*this), userMediaID, audioDevice = WTFMove(audioDevice), videoDevice = WTFMove(videoDevice), localRequest = request.copyRef()] (String&& deviceIDHashSalt) mutable {
+ m_page.websiteDataStore().deviceIdHashSaltStorage().deviceIdHashSaltForOrigin(request->userMediaDocumentSecurityOrigin(), request->topLevelDocumentSecurityOrigin(), [this, weakThis = makeWeakPtr(*this), userMediaID, audioDevice = WTFMove(audioDevice), videoDevice = WTFMove(videoDevice), localRequest = request.copyRef()] (String&& deviceIDHashSalt) mutable {
if (!weakThis)
return;
if (grantAccess(userMediaID, WTFMove(audioDevice), WTFMove(videoDevice), WTFMove(deviceIDHashSalt))) {
@@ -387,12 +387,12 @@
if (!pendingRequest)
return;
- if (!m_page.isValid() || !m_page.websiteDataStore().deviceIdHashSaltStorage())
+ if (!m_page.isValid())
return;
syncWithWebCorePrefs();
- m_page.websiteDataStore().deviceIdHashSaltStorage()->deviceIdHashSaltForOrigin(pendingRequest.value()->userMediaDocumentSecurityOrigin(), pendingRequest.value()->topLevelDocumentSecurityOrigin(), [validHandler = WTFMove(validHandler), invalidHandler = WTFMove(invalidHandler), localUserRequest = localUserRequest] (String&& deviceIDHashSalt) mutable {
+ m_page.websiteDataStore().deviceIdHashSaltStorage().deviceIdHashSaltForOrigin(pendingRequest.value()->userMediaDocumentSecurityOrigin(), pendingRequest.value()->topLevelDocumentSecurityOrigin(), [validHandler = WTFMove(validHandler), invalidHandler = WTFMove(invalidHandler), localUserRequest = localUserRequest] (String&& deviceIDHashSalt) mutable {
RealtimeMediaSourceCenter::singleton().validateRequestConstraints(WTFMove(validHandler), WTFMove(invalidHandler), WTFMove(localUserRequest), WTFMove(deviceIDHashSalt));
});
};
@@ -410,11 +410,6 @@
#if ENABLE(MEDIA_STREAM)
void UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo(uint64_t requestID, uint64_t frameID, UserMediaPermissionCheckProxy::CompletionHandler&& handler, Ref<SecurityOrigin>&& userMediaDocumentOrigin, Ref<SecurityOrigin>&& topLevelDocumentOrigin)
{
- if (!m_page.websiteDataStore().deviceIdHashSaltStorage()) {
- handler(false);
- return;
- }
-
auto userMediaOrigin = API::SecurityOrigin::create(userMediaDocumentOrigin.get());
auto topLevelOrigin = API::SecurityOrigin::create(topLevelDocumentOrigin.get());
auto request = UserMediaPermissionCheckProxy::create(frameID, WTFMove(handler), WTFMove(userMediaDocumentOrigin), WTFMove(topLevelDocumentOrigin));
@@ -459,7 +454,11 @@
auto requestID = generateRequestID();
auto completionHandler = [this, requestID, userMediaID, requestOrigin = userMediaDocumentOrigin.copyRef(), topOrigin = topLevelDocumentOrigin.copyRef()](bool originHasPersistentAccess) {
- m_page.websiteDataStore().deviceIdHashSaltStorage()->deviceIdHashSaltForOrigin(requestOrigin.get(), topOrigin.get(), [this, weakThis = makeWeakPtr(*this), requestID, userMediaID, &originHasPersistentAccess] (String&& deviceIDHashSalt) {
+
+ if (!m_page.isValid())
+ return;
+
+ m_page.websiteDataStore().deviceIdHashSaltStorage().deviceIdHashSaltForOrigin(requestOrigin.get(), topOrigin.get(), [this, weakThis = makeWeakPtr(*this), requestID, userMediaID, &originHasPersistentAccess] (String&& deviceIDHashSalt) {
if (!weakThis)
return;
auto pendingRequest = m_pendingDeviceRequests.take(requestID);
@@ -466,7 +465,7 @@
if (!pendingRequest)
return;
- if (!m_page.isValid() || !m_page.websiteDataStore().deviceIdHashSaltStorage())
+ if (!m_page.isValid())
return;
syncWithWebCorePrefs();
Modified: branches/safari-607-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (240063 => 240064)
--- branches/safari-607-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2019-01-16 23:27:17 UTC (rev 240063)
+++ branches/safari-607-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2019-01-16 23:27:20 UTC (rev 240064)
@@ -109,6 +109,7 @@
: m_sessionID(sessionID)
, m_resolvedConfiguration(WebsiteDataStoreConfiguration::create())
, m_configuration(m_resolvedConfiguration->copy())
+ , m_deviceIdHashSaltStorage(DeviceIdHashSaltStorage::create(isPersistent() ? m_configuration->deviceIdHashSaltsStorageDirectory() : String()))
, m_queue(WorkQueue::create("com.apple.WebKit.WebsiteDataStore"))
#if ENABLE(WEB_AUTHN)
, m_authenticatorManager(makeUniqueRef<AuthenticatorManager>())
@@ -486,7 +487,7 @@
});
}
- if (m_deviceIdHashSaltStorage && dataTypes.contains(WebsiteDataType::DeviceIdHashSalt)) {
+ if (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt)) {
callbackAggregator->addPendingCallback();
m_deviceIdHashSaltStorage->getDeviceIdHashSaltOrigins([callbackAggregator](auto&& origins) {
@@ -814,7 +815,7 @@
});
}
- if (m_deviceIdHashSaltStorage && (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt) || (dataTypes.contains(WebsiteDataType::Cookies)))) {
+ if (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt) || (dataTypes.contains(WebsiteDataType::Cookies))) {
callbackAggregator->addPendingCallback();
m_deviceIdHashSaltStorage->deleteDeviceIdHashSaltOriginsModifiedSince(modifiedSince, [callbackAggregator] {
@@ -1096,7 +1097,7 @@
});
}
- if (m_deviceIdHashSaltStorage && (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt) || (dataTypes.contains(WebsiteDataType::Cookies)))) {
+ if (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt) || (dataTypes.contains(WebsiteDataType::Cookies))) {
callbackAggregator->addPendingCallback();
m_deviceIdHashSaltStorage->deleteDeviceIdHashSaltForOrigins(origins, [callbackAggregator] {