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