Changeset 241002 in webkit
- Timestamp:
- Feb 5, 2019, 4:49:48 PM (8 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 2 edited
-
ChangeLog (modified) (1 diff)
-
UIProcess/UserMediaPermissionRequestManagerProxy.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r241001 r241002 1 2019-02-05 Youenn Fablet <youenn@apple.com> 2 3 UserMediaPermissionRequestManagerProxy lambdas should check for 'this' being valid 4 https://bugs.webkit.org/show_bug.cgi?id=194246 5 6 Reviewed by Eric Carlson. 7 8 With PSON enabled, the manager proxy can be destroyed. 9 It is thus important for its callbacks to check for 'this' to be valid. 10 11 * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: 12 (WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged): 13 (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): 14 (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): 15 1 16 2019-02-05 Daniel Bates <dabates@apple.com> 2 17 -
trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp
r240100 r241002 94 94 95 95 auto requestID = generateRequestID(); 96 auto handler = [this, requestID](bool originHasPersistentAccess) mutable { 96 auto handler = [this, weakThis = makeWeakPtr(*this), requestID](bool originHasPersistentAccess) mutable { 97 if (!weakThis) 98 return; 97 99 98 100 auto pendingRequest = m_pendingDeviceRequests.take(requestID); … … 392 394 393 395 auto requestID = generateRequestID(); 394 auto havePermissionInfoHandler = [this, requestID, validHandler = WTFMove(validHandler), invalidHandler = WTFMove(invalidHandler), localUserRequest = userRequest](bool originHasPersistentAccess) mutable { 396 auto havePermissionInfoHandler = [this, weakThis = makeWeakPtr(*this), requestID, validHandler = WTFMove(validHandler), invalidHandler = WTFMove(invalidHandler), localUserRequest = userRequest](bool originHasPersistentAccess) mutable { 397 if (!weakThis) 398 return; 395 399 396 400 auto pendingRequest = m_pendingDeviceRequests.take(requestID); … … 468 472 469 473 auto requestID = generateRequestID(); 470 auto completionHandler = [this, requestID, userMediaID, requestOrigin = userMediaDocumentOrigin.copyRef(), topOrigin = topLevelDocumentOrigin.copyRef()](bool originHasPersistentAccess) { 474 auto completionHandler = [this, weakThis = makeWeakPtr(*this), requestID, userMediaID, requestOrigin = userMediaDocumentOrigin.copyRef(), topOrigin = topLevelDocumentOrigin.copyRef()](bool originHasPersistentAccess) mutable { 475 if (!weakThis) 476 return; 471 477 472 478 if (!m_page.isValid()) 473 479 return; 474 480 475 m_page.websiteDataStore().deviceIdHashSaltStorage().deviceIdHashSaltForOrigin(requestOrigin.get(), topOrigin.get(), [this, weakThis = makeWeakPtr(*this), requestID, userMediaID, &originHasPersistentAccess] (String&& deviceIDHashSalt) {481 m_page.websiteDataStore().deviceIdHashSaltStorage().deviceIdHashSaltForOrigin(requestOrigin.get(), topOrigin.get(), [this, weakThis = WTFMove(weakThis), requestID, userMediaID, &originHasPersistentAccess] (String&& deviceIDHashSalt) { 476 482 if (!weakThis) 477 483 return;
Note:
See TracChangeset
for help on using the changeset viewer.