Title: [185519] trunk/Source/WebCore
Revision
185519
Author
[email protected]
Date
2015-06-12 13:41:36 -0700 (Fri, 12 Jun 2015)

Log Message

[Mac] AirPlay menu button doesn't always show on page load
https://bugs.webkit.org/show_bug.cgi?id=145936

Reviewed by Brent Fulgham.

* Modules/mediasession/WebMediaSessionManager.cpp:
(WebCore::mediaProducerStateString): New, return a string representing MediaStateFlags.
(WebCore::WebMediaSessionManager::clientStateDidChange): Log the states as strings.
(WebCore::WebMediaSessionManager::toString): New, return a string representing ConfigurationTasks.
(WebCore::WebMediaSessionManager::scheduleDelayedTask): Add logging.
(WebCore::WebMediaSessionManager::taskTimerFired): Add logging.
* Modules/mediasession/WebMediaSessionManager.h:

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: Override wirelessVideoPlaybackDisabled
  so it is possible to activate route monitoring for a movie loaded with this engine.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h: Ditto.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (185518 => 185519)


--- trunk/Source/WebCore/ChangeLog	2015-06-12 18:48:53 UTC (rev 185518)
+++ trunk/Source/WebCore/ChangeLog	2015-06-12 20:41:36 UTC (rev 185519)
@@ -1,3 +1,22 @@
+2015-06-12  Eric Carlson  <[email protected]>
+
+        [Mac] AirPlay menu button doesn't always show on page load
+        https://bugs.webkit.org/show_bug.cgi?id=145936
+
+        Reviewed by Brent Fulgham.
+
+        * Modules/mediasession/WebMediaSessionManager.cpp:
+        (WebCore::mediaProducerStateString): New, return a string representing MediaStateFlags.
+        (WebCore::WebMediaSessionManager::clientStateDidChange): Log the states as strings.
+        (WebCore::WebMediaSessionManager::toString): New, return a string representing ConfigurationTasks.
+        (WebCore::WebMediaSessionManager::scheduleDelayedTask): Add logging.
+        (WebCore::WebMediaSessionManager::taskTimerFired): Add logging.
+        * Modules/mediasession/WebMediaSessionManager.h:
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: Override wirelessVideoPlaybackDisabled
+          so it is possible to activate route monitoring for a movie loaded with this engine.
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Ditto.
+
 2015-06-12  Zan Dobersek  <[email protected]>
 
         Add the remaining missing override specifiers under Source/WebCore/

Modified: trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp (185518 => 185519)


--- trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp	2015-06-12 18:48:53 UTC (rev 185518)
+++ trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp	2015-06-12 20:41:36 UTC (rev 185519)
@@ -32,6 +32,7 @@
 #include "Logging.h"
 #include "MediaPlaybackTargetPickerMac.h"
 #include "WebMediaSessionManagerClient.h"
+#include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
 
@@ -61,6 +62,29 @@
     return value & flags;
 }
 
+#if !LOG_DISABLED
+static String mediaProducerStateString(MediaProducer::MediaStateFlags flags)
+{
+    StringBuilder string;
+    if (flags & MediaProducer::IsPlayingAudio)
+        string.append("IsPlayingAudio + ");
+    if (flags & MediaProducer::IsPlayingVideo)
+        string.append("IsPlayingVideo + ");
+    if (flags & MediaProducer::IsPlayingToExternalDevice)
+        string.append("IsPlayingToExternalDevice + ");
+    if (flags & MediaProducer::RequiresPlaybackTargetMonitoring)
+        string.append("RequiresPlaybackTargetMonitoring + ");
+    if (flags & MediaProducer::ExternalDeviceAutoPlayCandidate)
+        string.append("ExternalDeviceAutoPlayCandidate + ");
+    if (string.isEmpty())
+        string.append("IsNotPlaying");
+    else
+        string.resize(string.length() - 2);
+
+    return string.toString();
+}
+#endif
+
 WebMediaSessionManager::WebMediaSessionManager()
     : m_taskTimer(RunLoop::current(), this, &WebMediaSessionManager::taskTimerFired)
 {
@@ -136,7 +160,7 @@
 
     auto& changedClientState = m_clientState[index];
     MediaProducer::MediaStateFlags oldFlags = changedClientState->flags;
-    LOG(Media, "WebMediaSessionManager::clientStateDidChange(%p + %llu) - new flags = 0x%x, old flags = 0x%x", &client, contextId, newFlags, oldFlags);
+    LOG(Media, "WebMediaSessionManager::clientStateDidChange(%p + %llu) - new flags = %s, old flags = %s", &client, contextId, mediaProducerStateString(newFlags).utf8().data(), mediaProducerStateString(oldFlags).utf8().data());
     if (newFlags == oldFlags)
         return;
 
@@ -265,14 +289,37 @@
         targetPicker().stopMonitoringPlaybackTargets();
 }
 
+#if !LOG_DISABLED
+String WebMediaSessionManager::toString(ConfigurationTasks tasks)
+{
+    StringBuilder string;
+    if (tasks & InitialConfigurationTask)
+        string.append("InitialConfigurationTask + ");
+    if (tasks & TargetClientsConfigurationTask)
+        string.append("TargetClientsConfigurationTask + ");
+    if (tasks & TargetMonitoringConfigurationTask)
+        string.append("TargetMonitoringConfigurationTask + ");
+    if (string.isEmpty())
+        string.append("NoTask");
+    else
+        string.resize(string.length() - 2);
+    
+    return string.toString();
+}
+#endif
+
 void WebMediaSessionManager::scheduleDelayedTask(ConfigurationTasks tasks)
 {
+    LOG(Media, "WebMediaSessionManager::scheduleDelayedTask - tasks = %s", toString(tasks).utf8().data());
+
     m_taskFlags |= tasks;
     m_taskTimer.startOneShot(taskDelayInterval);
 }
 
 void WebMediaSessionManager::taskTimerFired()
 {
+    LOG(Media, "WebMediaSessionManager::taskTimerFired - tasks = %s", toString(m_taskFlags).utf8().data());
+
     if (m_taskFlags & InitialConfigurationTask)
         configureNewClients();
     if (m_taskFlags & TargetClientsConfigurationTask)

Modified: trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.h (185518 => 185519)


--- trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.h	2015-06-12 18:48:53 UTC (rev 185518)
+++ trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.h	2015-06-12 20:41:36 UTC (rev 185519)
@@ -75,6 +75,7 @@
         TargetMonitoringConfigurationTask = 1 << 2,
     };
     typedef unsigned ConfigurationTasks;
+    String toString(ConfigurationTasks);
 
     void scheduleDelayedTask(ConfigurationTasks);
     void taskTimerFired();

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h (185518 => 185519)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h	2015-06-12 18:48:53 UTC (rev 185518)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h	2015-06-12 20:41:36 UTC (rev 185519)
@@ -175,6 +175,7 @@
     virtual bool isCurrentPlaybackTargetWireless() const override;
     virtual void setWirelessPlaybackTarget(Ref<MediaPlaybackTarget>&&);
     virtual void setShouldPlayToPlaybackTarget(bool) override;
+    bool wirelessVideoPlaybackDisabled() const override { return false; }
 #endif
 
     void ensureLayer();

Modified: trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h (185518 => 185519)


--- trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h	2015-06-12 18:48:53 UTC (rev 185518)
+++ trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h	2015-06-12 20:41:36 UTC (rev 185519)
@@ -183,6 +183,7 @@
     virtual bool isCurrentPlaybackTargetWireless() const override;
     virtual void setWirelessPlaybackTarget(Ref<MediaPlaybackTarget>&&);
     virtual void setShouldPlayToPlaybackTarget(bool) override;
+    bool wirelessVideoPlaybackDisabled() const override { return false; }
 #endif
 
     MediaPlayer* m_player;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to