⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 239850 in webkit


Ignore:
Timestamp:
Jan 10, 2019, 4:49:23 PM (8 years ago)
Author:
eric.carlson@apple.com
Message:

DeviceID hash salt manager can be NULL
​https://bugs.webkit.org/show_bug.cgi?id=193334
<rdar://problem/47179650>

Reviewed by Youenn Fablet.

  • 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.

Location:
trunk/Source/WebKit
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r239845 r239850  
     12019-01-10  Eric Carlson  <eric.carlson@apple.com>
     2
     3        DeviceID hash salt manager can be NULL
     4        https://bugs.webkit.org/show_bug.cgi?id=193334
     5        <rdar://problem/47179650>
     6
     7        Reviewed by Youenn Fablet.
     8
     9        * UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
     10        (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): No need to
     11        NULL-check websiteDataStore.deviceIdHashSaltStorage, it is a Ref.
     12        (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): Ditto.
     13        (WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo): Ditto.
     14        (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Ditto.
     15
     16        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
     17        (WebKit::WebsiteDataStore::WebsiteDataStore): m_deviceIdHashSaltStorage is a Ref.
     18        (WebKit::WebsiteDataStore::fetchDataAndApply): Ditto.
     19        (WebKit::WebsiteDataStore::removeData): Ditto.
     20        * UIProcess/WebsiteData/WebsiteDataStore.h:
     21        (WebKit::WebsiteDataStore::deviceIdHashSaltStorage): Ditto.
     22
    1232019-01-10  Per Arne Vollan  <pvollan@apple.com>
    224
  • trunk/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp

    r239427 r239850  
    194194    bool checkUserMediaPermissionForOrigin(WebPageProxy& page, WebFrameProxy&, API::SecurityOrigin& userMediaDocumentOrigin, API::SecurityOrigin& topLevelDocumentOrigin, UserMediaPermissionCheckProxy& permissionRequest) override
    195195    {
    196         auto deviceInfoPermissionRequest = adoptGRef(webkitDeviceInfoPermissionRequestCreate(permissionRequest, page.websiteDataStore().deviceIdHashSaltStorage()));
     196        auto deviceInfoPermissionRequest = adoptGRef(webkitDeviceInfoPermissionRequestCreate(permissionRequest, &page.websiteDataStore().deviceIdHashSaltStorage()));
    197197        webkitWebViewMakePermissionRequest(m_webView, WEBKIT_PERMISSION_REQUEST(deviceInfoPermissionRequest.get()));
    198198        return true;
  • trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp

    r239747 r239850  
    179179    ASSERT(audioDevice || videoDevice);
    180180
    181     if (!m_page.isValid() || !m_page.websiteDataStore().deviceIdHashSaltStorage())
     181    if (!m_page.isValid())
    182182        return;
    183183
    … …  
    187187        return;
    188188
    189     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 {
     189    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 {
    190190        if (!weakThis)
    191191            return;
    … …  
    390390            return;
    391391
    392         if (!m_page.isValid() || !m_page.websiteDataStore().deviceIdHashSaltStorage())
     392        if (!m_page.isValid())
    393393            return;
    394394
    395395        syncWithWebCorePrefs();
    396396
    397         m_page.websiteDataStore().deviceIdHashSaltStorage()->deviceIdHashSaltForOrigin(pendingRequest.value()->userMediaDocumentSecurityOrigin(), pendingRequest.value()->topLevelDocumentSecurityOrigin(), [validHandler = WTFMove(validHandler), invalidHandler = WTFMove(invalidHandler), localUserRequest = localUserRequest] (String&& deviceIDHashSalt) mutable {
     397        m_page.websiteDataStore().deviceIdHashSaltStorage().deviceIdHashSaltForOrigin(pendingRequest.value()->userMediaDocumentSecurityOrigin(), pendingRequest.value()->topLevelDocumentSecurityOrigin(), [validHandler = WTFMove(validHandler), invalidHandler = WTFMove(invalidHandler), localUserRequest = localUserRequest] (String&& deviceIDHashSalt) mutable {
    398398            RealtimeMediaSourceCenter::singleton().validateRequestConstraints(WTFMove(validHandler), WTFMove(invalidHandler), WTFMove(localUserRequest), WTFMove(deviceIDHashSalt));
    399399        });
    … …  
    413413void UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo(uint64_t requestID, uint64_t frameID, UserMediaPermissionCheckProxy::CompletionHandler&& handler, Ref<SecurityOrigin>&& userMediaDocumentOrigin, Ref<SecurityOrigin>&& topLevelDocumentOrigin)
    414414{
    415     if (!m_page.websiteDataStore().deviceIdHashSaltStorage()) {
    416         handler(false);
    417         return;
    418     }
    419 
    420415    auto userMediaOrigin = API::SecurityOrigin::create(userMediaDocumentOrigin.get());
    421416    auto topLevelOrigin = API::SecurityOrigin::create(topLevelDocumentOrigin.get());
    … …  
    462457    auto requestID = generateRequestID();
    463458    auto completionHandler = [this, requestID, userMediaID, requestOrigin = userMediaDocumentOrigin.copyRef(), topOrigin = topLevelDocumentOrigin.copyRef()](bool originHasPersistentAccess) {
    464         m_page.websiteDataStore().deviceIdHashSaltStorage()->deviceIdHashSaltForOrigin(requestOrigin.get(), topOrigin.get(), [this, weakThis = makeWeakPtr(*this), requestID, userMediaID, &originHasPersistentAccess] (String&& deviceIDHashSalt) {
     459
     460        if (!m_page.isValid())
     461            return;
     462
     463        m_page.websiteDataStore().deviceIdHashSaltStorage().deviceIdHashSaltForOrigin(requestOrigin.get(), topOrigin.get(), [this, weakThis = makeWeakPtr(*this), requestID, userMediaID, &originHasPersistentAccess] (String&& deviceIDHashSalt) {
    465464            if (!weakThis)
    466465                return;
    … …  
    469468                return;
    470469
    471             if (!m_page.isValid() || !m_page.websiteDataStore().deviceIdHashSaltStorage())
     470            if (!m_page.isValid())
    472471                return;
    473472
  • trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp

    r239513 r239850  
    110110    , m_resolvedConfiguration(WebsiteDataStoreConfiguration::create())
    111111    , m_configuration(m_resolvedConfiguration->copy())
     112    , m_deviceIdHashSaltStorage(DeviceIdHashSaltStorage::create(isPersistent() ? m_configuration->deviceIdHashSaltsStorageDirectory() : String()))
    112113    , m_queue(WorkQueue::create("com.apple.WebKit.WebsiteDataStore"))
    113114#if ENABLE(WEB_AUTHN)
    … …  
    487488    }
    488489
    489     if (m_deviceIdHashSaltStorage && dataTypes.contains(WebsiteDataType::DeviceIdHashSalt)) {
     490    if (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt)) {
    490491        callbackAggregator->addPendingCallback();
    491492
    … …  
    815816    }
    816817
    817     if (m_deviceIdHashSaltStorage && (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt) || (dataTypes.contains(WebsiteDataType::Cookies)))) {
     818    if (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt) || (dataTypes.contains(WebsiteDataType::Cookies))) {
    818819        callbackAggregator->addPendingCallback();
    819820
    … …  
    10971098    }
    10981099
    1099     if (m_deviceIdHashSaltStorage && (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt) || (dataTypes.contains(WebsiteDataType::Cookies)))) {
     1100    if (dataTypes.contains(WebsiteDataType::DeviceIdHashSalt) || (dataTypes.contains(WebsiteDataType::Cookies))) {
    11001101        callbackAggregator->addPendingCallback();
    11011102
  • trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h

    r239427 r239850  
    143143    StorageManager* storageManager() { return m_storageManager.get(); }
    144144
    145     DeviceIdHashSaltStorage* deviceIdHashSaltStorage() { return m_deviceIdHashSaltStorage.get(); }
     145    DeviceIdHashSaltStorage& deviceIdHashSaltStorage() { return m_deviceIdHashSaltStorage.get(); }
    146146
    147147    WebProcessPool* processPoolForCookieStorageOperations();
    … …  
    229229
    230230    const RefPtr<StorageManager> m_storageManager;
    231     const RefPtr<DeviceIdHashSaltStorage> m_deviceIdHashSaltStorage;
     231    const Ref<DeviceIdHashSaltStorage> m_deviceIdHashSaltStorage;
    232232    RefPtr<WebResourceLoadStatisticsStore> m_resourceLoadStatistics;
    233233    bool m_resourceLoadStatisticsDebugMode { false };
Note: See TracChangeset for help on using the changeset viewer.