Title: [210097] trunk/Source/WebKit2
Revision
210097
Author
[email protected]
Date
2016-12-22 08:41:10 -0800 (Thu, 22 Dec 2016)

Log Message

MediaStream: ASSERTION FAILED: m_ids.size() == m_handles.size() in MediaDeviceSandboxExtensions
https://bugs.webkit.org/show_bug.cgi?id=166328

Reviewed by Eric Carlson.

This assertion failure happens for ports with sandbox extensions disabled. SandboxExtension is empty and
HandleArray:size() always returns 0. Disable creation of MediaDevicesSandboxExtension in UserMediaProcessManager
when building without support of sandbox extension. Disable also WebPage::grantUserMediaDeviceSandboxExtensions
and WebPage::revokeUserMediaDeviceSandboxExtensions which can be avoided when sandbox extension is empty.

* UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::willCreateMediaStream):
(WebKit::UserMediaProcessManager::endedCaptureSession):
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (210096 => 210097)


--- trunk/Source/WebKit2/ChangeLog	2016-12-22 09:22:42 UTC (rev 210096)
+++ trunk/Source/WebKit2/ChangeLog	2016-12-22 16:41:10 UTC (rev 210097)
@@ -1,3 +1,22 @@
+2016-12-22  Nael Ouedraogo  <[email protected]>
+
+        MediaStream: ASSERTION FAILED: m_ids.size() == m_handles.size() in MediaDeviceSandboxExtensions
+        https://bugs.webkit.org/show_bug.cgi?id=166328
+
+        Reviewed by Eric Carlson.
+
+        This assertion failure happens for ports with sandbox extensions disabled. SandboxExtension is empty and
+        HandleArray:size() always returns 0. Disable creation of MediaDevicesSandboxExtension in UserMediaProcessManager
+        when building without support of sandbox extension. Disable also WebPage::grantUserMediaDeviceSandboxExtensions
+        and WebPage::revokeUserMediaDeviceSandboxExtensions which can be avoided when sandbox extension is empty.
+
+        * UIProcess/UserMediaProcessManager.cpp:
+        (WebKit::UserMediaProcessManager::willCreateMediaStream):
+        (WebKit::UserMediaProcessManager::endedCaptureSession):
+        * WebProcess/WebPage/WebPage.cpp:
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
 2016-12-22  Alejandro G. Castro  <[email protected]>
 
         [WebRTC] Add support for runtime PeeConnection setting, required after r209757

Modified: trunk/Source/WebKit2/UIProcess/UserMediaProcessManager.cpp (210096 => 210097)


--- trunk/Source/WebKit2/UIProcess/UserMediaProcessManager.cpp	2016-12-22 09:22:42 UTC (rev 210096)
+++ trunk/Source/WebKit2/UIProcess/UserMediaProcessManager.cpp	2016-12-22 16:41:10 UTC (rev 210097)
@@ -111,6 +111,7 @@
 
 void UserMediaProcessManager::willCreateMediaStream(UserMediaPermissionRequestManagerProxy& proxy, bool withAudio, bool withVideo)
 {
+#if ENABLE(SANDBOX_EXTENSIONS)
     ASSERT(stateMap().contains(&proxy.page().process()));
 
     auto& state = processState(proxy.page().process());
@@ -151,6 +152,7 @@
         state.setSandboxExtensionsGranted(currentExtensions);
         proxy.page().process().send(Messages::WebPage::GrantUserMediaDeviceSandboxExtensions(MediaDeviceSandboxExtensions(ids, WTFMove(handles))), proxy.page().pageID());
     }
+#endif
 }
 
 void UserMediaProcessManager::startedCaptureSession(UserMediaPermissionRequestManagerProxy& proxy)
@@ -160,6 +162,7 @@
 
 void UserMediaProcessManager::endedCaptureSession(UserMediaPermissionRequestManagerProxy& proxy)
 {
+#if ENABLE(SANDBOX_EXTENSIONS)
     ASSERT(stateMap().contains(&proxy.page().process()));
 
     auto& state = processState(proxy.page().process());
@@ -191,6 +194,7 @@
 
     state.setSandboxExtensionsGranted(currentExtensions);
     proxy.page().process().send(Messages::WebPage::RevokeUserMediaDeviceSandboxExtensions(params), proxy.page().pageID());
+#endif
 }
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (210096 => 210097)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2016-12-22 09:22:42 UTC (rev 210096)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2016-12-22 16:41:10 UTC (rev 210097)
@@ -3719,7 +3719,7 @@
 {
     m_userMediaPermissionRequestManager.didCompleteMediaDeviceEnumeration(userMediaID, devices, deviceIdentifierHashSalt, originHasPersistentAccess);
 }
-
+#if ENABLE(SANDBOX_EXTENSIONS)
 void WebPage::grantUserMediaDeviceSandboxExtensions(const MediaDeviceSandboxExtensions& extensions)
 {
     m_userMediaPermissionRequestManager.grantUserMediaDeviceSandboxExtensions(extensions);
@@ -3730,6 +3730,7 @@
     m_userMediaPermissionRequestManager.revokeUserMediaDeviceSandboxExtensions(extensionIDs);
 }
 #endif
+#endif
 
 #if !PLATFORM(IOS)
 void WebPage::advanceToNextMisspelling(bool startBeforeSelection)

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (210096 => 210097)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2016-12-22 09:22:42 UTC (rev 210096)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2016-12-22 16:41:10 UTC (rev 210097)
@@ -1180,9 +1180,11 @@
     void userMediaAccessWasDenied(uint64_t userMediaID, uint64_t reason, String invalidConstraint);
 
     void didCompleteMediaDeviceEnumeration(uint64_t userMediaID, const Vector<WebCore::CaptureDevice>& devices, const String& deviceIdentifierHashSalt, bool originHasPersistentAccess);
+#if ENABLE(SANDBOX_EXTENSIONS)
     void grantUserMediaDeviceSandboxExtensions(const MediaDeviceSandboxExtensions&);
     void revokeUserMediaDeviceSandboxExtensions(const Vector<String>&);
 #endif
+#endif
 
     void advanceToNextMisspelling(bool startBeforeSelection);
     void changeSpellingToWord(const String& word);

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (210096 => 210097)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2016-12-22 09:22:42 UTC (rev 210096)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2016-12-22 16:41:10 UTC (rev 210097)
@@ -292,9 +292,11 @@
     UserMediaAccessWasGranted(uint64_t userMediaID, String audioDeviceUID, String videoDeviceUID)
     UserMediaAccessWasDenied(uint64_t userMediaID, uint64_t reason, String invalidConstraint)
     DidCompleteMediaDeviceEnumeration(uint64_t userMediaID, Vector<WebCore::CaptureDevice> devices, String mediaDeviceIdentifierHashSalt, bool hasPersistentAccess)
+#if ENABLE(SANDBOX_EXTENSIONS)
     GrantUserMediaDeviceSandboxExtensions(WebKit::MediaDeviceSandboxExtensions sandboxExtensions)
     RevokeUserMediaDeviceSandboxExtensions(Vector<String> sandboxExtensionIDs)
 #endif
+#endif
 
     # Notification
     DidReceiveNotificationPermissionDecision(uint64_t notificationID, bool allowed)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to