- 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)