WebKit Bugzilla
Attachment 358841 Details for
Bug 193334
: DeviceID hash salt manager can be NULL
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193334-20190111120530.patch (text/plain), 9.99 KB, created by
Eric Carlson
on 2019-01-10 15:05:31 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Eric Carlson
Created:
2019-01-10 15:05:31 PST
Size:
9.99 KB
patch
obsolete
>Subversion Revision: 239676 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 4c199aaaae5acbb24d144cde08b4b8dd13b49b07..e79d8cb951aceb945689c22dbdb5abce069fde5d 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,25 @@ >+2019-01-10 Eric Carlson <eric.carlson@apple.com> >+ >+ DeviceID hash salt manager can be NULL >+ https://bugs.webkit.org/show_bug.cgi?id=193334 >+ <rdar://problem/47179650> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: >+ (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): No need to >+ NULL-check websiteDataStore.deviceIdHashSaltStorage, it is a Ref. >+ (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): Ditto. >+ (WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo): Ditto. >+ (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Ditto. >+ >+ * UIProcess/WebsiteData/WebsiteDataStore.cpp: >+ (WebKit::WebsiteDataStore::WebsiteDataStore): m_deviceIdHashSaltStorage is a Ref. >+ (WebKit::WebsiteDataStore::fetchDataAndApply): Ditto. >+ (WebKit::WebsiteDataStore::removeData): Ditto. >+ * UIProcess/WebsiteData/WebsiteDataStore.h: >+ (WebKit::WebsiteDataStore::deviceIdHashSaltStorage): Ditto. >+ > 2019-01-07 Alex Christensen <achristensen@webkit.org> > > Modernize CacheModel and disk cache fetching and clearing >diff --git a/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp b/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp >index 4ef5dcc365aa39ae606d0bbbf38ef449fe4905d0..ed5e7e38da1e779492a51ef59a935fc824b07897 100644 >--- a/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp >+++ b/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp >@@ -176,7 +176,7 @@ void UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted(uint64_t > { > ASSERT(audioDevice || videoDevice); > >- if (!m_page.isValid() || !m_page.websiteDataStore().deviceIdHashSaltStorage()) >+ if (!m_page.isValid()) > return; > > #if ENABLE(MEDIA_STREAM) >@@ -184,7 +184,7 @@ void UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted(uint64_t > 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 @@ void UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame( > 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 @@ void UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame( > #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,14 +454,18 @@ void UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame(uint6 > > 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); > if (!pendingRequest) > return; > >- if (!m_page.isValid() || !m_page.websiteDataStore().deviceIdHashSaltStorage()) >+ if (!m_page.isValid()) > return; > > syncWithWebCorePrefs(); >diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp >index 4d7f5114f828cbf3e50e2e5138709b276bcb5262..0aabbe48db135d86bf284b05542143a17bd8e9a0 100644 >--- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp >+++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp >@@ -109,6 +109,7 @@ WebsiteDataStore::WebsiteDataStore(PAL::SessionID sessionID) > : 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 @@ void WebsiteDataStore::fetchDataAndApply(OptionSet<WebsiteDataType> dataTypes, O > }); > } > >- if (m_deviceIdHashSaltStorage && dataTypes.contains(WebsiteDataType::DeviceIdHashSalt)) { >+ if (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt)) { > callbackAggregator->addPendingCallback(); > > m_deviceIdHashSaltStorage->getDeviceIdHashSaltOrigins([callbackAggregator](auto&& origins) { >@@ -814,7 +815,7 @@ void WebsiteDataStore::removeData(OptionSet<WebsiteDataType> dataTypes, WallTime > }); > } > >- 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 @@ void WebsiteDataStore::removeData(OptionSet<WebsiteDataType> dataTypes, const Ve > }); > } > >- 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] { >diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h >index 7c5343e2158594079c2086829c09bbf7bd13cc2d..912d8e475cd6a217999a090178eb658fc2179c69 100644 >--- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h >+++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h >@@ -142,7 +142,7 @@ public: > > StorageManager* storageManager() { return m_storageManager.get(); } > >- DeviceIdHashSaltStorage* deviceIdHashSaltStorage() { return m_deviceIdHashSaltStorage.get(); } >+ DeviceIdHashSaltStorage& deviceIdHashSaltStorage() { return m_deviceIdHashSaltStorage.get(); } > > WebProcessPool* processPoolForCookieStorageOperations(); > bool isAssociatedProcessPool(WebProcessPool&) const; >@@ -228,7 +228,7 @@ private: > bool m_hasResolvedDirectories { false }; > > const RefPtr<StorageManager> m_storageManager; >- const RefPtr<DeviceIdHashSaltStorage> m_deviceIdHashSaltStorage; >+ const Ref<DeviceIdHashSaltStorage> m_deviceIdHashSaltStorage; > RefPtr<WebResourceLoadStatisticsStore> m_resourceLoadStatistics; > bool m_resourceLoadStatisticsDebugMode { false }; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193334
:
358825
|
358841
|
358842