Diff
Modified: trunk/Source/WebKit2/ChangeLog (215627 => 215628)
--- trunk/Source/WebKit2/ChangeLog 2017-04-21 20:01:16 UTC (rev 215627)
+++ trunk/Source/WebKit2/ChangeLog 2017-04-21 20:01:50 UTC (rev 215628)
@@ -1,5 +1,24 @@
2017-04-21 Jer Noble <[email protected]>
+ [WK2][MediaCapture] Pass muted and enabled state across process boundary when capturing in UIProcess
+ https://bugs.webkit.org/show_bug.cgi?id=170846
+
+ Reviewed by Jon Lee.
+
+ * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
+ (WebKit::UserMediaCaptureManagerProxy::setMuted):
+ (WebKit::UserMediaCaptureManagerProxy::setEnabled):
+ * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
+ * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
+ * WebProcess/cocoa/UserMediaCaptureManager.cpp:
+ (WebKit::UserMediaCaptureManager::Source::setMuted):
+ (WebKit::UserMediaCaptureManager::Source::setEnabled):
+ (WebKit::UserMediaCaptureManager::setMuted):
+ (WebKit::UserMediaCaptureManager::setEnabled):
+ * WebProcess/cocoa/UserMediaCaptureManager.h:
+
+2017-04-21 Jer Noble <[email protected]>
+
[WK2][MediaCapture] Remove now-unused WKWebViewConfiguration property for shouldCaptureAudioInUIProcess
https://bugs.webkit.org/show_bug.cgi?id=170847
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp (215627 => 215628)
--- trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp 2017-04-21 20:01:16 UTC (rev 215627)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp 2017-04-21 20:01:50 UTC (rev 215628)
@@ -155,7 +155,21 @@
if (iter != m_proxies.end())
capabilities = iter->value->source().capabilities();
}
-
+
+void UserMediaCaptureManagerProxy::setMuted(uint64_t id, bool muted)
+{
+ auto iter = m_proxies.find(id);
+ if (iter != m_proxies.end())
+ iter->value->source().setMuted(muted);
}
+void UserMediaCaptureManagerProxy::setEnabled(uint64_t id, bool enabled)
+{
+ auto iter = m_proxies.find(id);
+ if (iter != m_proxies.end())
+ iter->value->source().setEnabled(enabled);
+}
+
+}
+
#endif
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h (215627 => 215628)
--- trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h 2017-04-21 20:01:16 UTC (rev 215627)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h 2017-04-21 20:01:50 UTC (rev 215628)
@@ -53,6 +53,8 @@
void startProducingData(uint64_t);
void stopProducingData(uint64_t);
void capabilities(uint64_t, WebCore::RealtimeMediaSourceCapabilities&);
+ void setMuted(uint64_t, bool);
+ void setEnabled(uint64_t, bool);
class SourceProxy;
friend class SourceProxy;
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in (215627 => 215628)
--- trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in 2017-04-21 20:01:16 UTC (rev 215627)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in 2017-04-21 20:01:50 UTC (rev 215628)
@@ -26,4 +26,6 @@
StartProducingData(uint64_t id)
StopProducingData(uint64_t id)
Capabilities(uint64_t id) -> (WebCore::RealtimeMediaSourceCapabilities capabilities)
+ SetMuted(uint64_t id, bool muted)
+ SetEnabled(uint64_t id, bool enabled)
}
Modified: trunk/Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp (215627 => 215628)
--- trunk/Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp 2017-04-21 20:01:16 UTC (rev 215627)
+++ trunk/Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp 2017-04-21 20:01:50 UTC (rev 215628)
@@ -114,6 +114,24 @@
observer->audioSamplesAvailable(time, audioData, m_description, numberOfFrames);
}
+ virtual void setMuted(bool muted)
+ {
+ if (m_muted == muted)
+ return;
+
+ m_muted = muted;
+ m_manager.setMuted(m_id, m_muted);
+ }
+
+ virtual void setEnabled(bool enabled)
+ {
+ if (m_enabled == enabled)
+ return;
+
+ m_enabled = enabled;
+ m_manager.setEnabled(m_id, m_enabled);
+ }
+
void startProducingData() final { m_manager.startProducingData(m_id); }
void stopProducingData() final { m_manager.stopProducingData(m_id); }
bool isCaptureSource() const final { return true; }
@@ -257,6 +275,16 @@
return WTFMove(capabilities);
}
+void UserMediaCaptureManager::setMuted(uint64_t id, bool muted)
+{
+ m_process.send(Messages::UserMediaCaptureManagerProxy::SetMuted(id, muted), 0);
}
+void UserMediaCaptureManager::setEnabled(uint64_t id, bool enabled)
+{
+ m_process.send(Messages::UserMediaCaptureManagerProxy::SetEnabled(id, enabled), 0);
+}
+
+}
+
#endif
Modified: trunk/Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.h (215627 => 215628)
--- trunk/Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.h 2017-04-21 20:01:16 UTC (rev 215627)
+++ trunk/Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.h 2017-04-21 20:01:50 UTC (rev 215628)
@@ -71,6 +71,8 @@
void startProducingData(uint64_t);
void stopProducingData(uint64_t);
WebCore::RealtimeMediaSourceCapabilities&& capabilities(uint64_t);
+ void setMuted(uint64_t, bool);
+ void setEnabled(uint64_t, bool);
class Source;
friend class Source;