Title: [226203] trunk/Source/WebCore
Revision
226203
Author
commit-qu...@webkit.org
Date
2017-12-20 16:13:09 -0800 (Wed, 20 Dec 2017)

Log Message

com.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::UserMediaRequest::stop + 126
https://bugs.webkit.org/show_bug.cgi?id=181057

Patch by Youenn Fablet <you...@apple.com> on 2017-12-20
Reviewed by Eric Carlson.

Covered by fast/mediastream tests to not crash anymore.

* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::stop):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (226202 => 226203)


--- trunk/Source/WebCore/ChangeLog	2017-12-20 22:47:20 UTC (rev 226202)
+++ trunk/Source/WebCore/ChangeLog	2017-12-21 00:13:09 UTC (rev 226203)
@@ -1,3 +1,15 @@
+2017-12-20  Youenn Fablet  <you...@apple.com>
+
+        com.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::UserMediaRequest::stop + 126
+        https://bugs.webkit.org/show_bug.cgi?id=181057
+
+        Reviewed by Eric Carlson.
+
+        Covered by fast/mediastream tests to not crash anymore.
+
+        * Modules/mediastream/UserMediaRequest.cpp:
+        (WebCore::UserMediaRequest::stop):
+
 2017-12-20  Brady Eidson  <beid...@apple.com>
 
         Assertion failure in MessagePort::contextDestroyed in http/tests/security/MessagePort/event-listener-context.html, usually attributed to later tests.

Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp (226202 => 226203)


--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp	2017-12-20 22:47:20 UTC (rev 226202)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp	2017-12-21 00:13:09 UTC (rev 226203)
@@ -277,15 +277,14 @@
 
 void UserMediaRequest::stop()
 {
-    auto& document = downcast<Document>(*m_scriptExecutionContext);
-    auto* controller = UserMediaController::from(document.page());
+    // Protecting 'it'this' since nulling m_pendingActivationMediaStream might destroy it.
+    Ref<UserMediaRequest> protectedThis(*this);
 
     m_pendingActivationMediaStream = nullptr;
-    if (!controller)
-        return;
 
-    Ref<UserMediaRequest> protectedThis(*this);
-    controller->cancelUserMediaAccessRequest(*this);
+    auto& document = downcast<Document>(*m_scriptExecutionContext);
+    if (auto* controller = UserMediaController::from(document.page()))
+        controller->cancelUserMediaAccessRequest(*this);
 }
 
 const char* UserMediaRequest::activeDOMObjectName() const
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to