Changeset 185519 in webkit


Ignore:
Timestamp:
Jun 12, 2015 1:41:36 PM (9 years ago)
Author:
eric.carlson@apple.com
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.
Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r185518 r185519  
     12015-06-12  Eric Carlson  <eric.carlson@apple.com>
     2
     3        [Mac] AirPlay menu button doesn't always show on page load
     4        https://bugs.webkit.org/show_bug.cgi?id=145936
     5
     6        Reviewed by Brent Fulgham.
     7
     8        * Modules/mediasession/WebMediaSessionManager.cpp:
     9        (WebCore::mediaProducerStateString): New, return a string representing MediaStateFlags.
     10        (WebCore::WebMediaSessionManager::clientStateDidChange): Log the states as strings.
     11        (WebCore::WebMediaSessionManager::toString): New, return a string representing ConfigurationTasks.
     12        (WebCore::WebMediaSessionManager::scheduleDelayedTask): Add logging.
     13        (WebCore::WebMediaSessionManager::taskTimerFired): Add logging.
     14        * Modules/mediasession/WebMediaSessionManager.h:
     15
     16        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: Override wirelessVideoPlaybackDisabled
     17          so it is possible to activate route monitoring for a movie loaded with this engine.
     18        * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Ditto.
     19
    1202015-06-12  Zan Dobersek  <zdobersek@igalia.com>
    221
  • trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp

    r184788 r185519  
    3333#include "MediaPlaybackTargetPickerMac.h"
    3434#include "WebMediaSessionManagerClient.h"
     35#include <wtf/text/StringBuilder.h>
    3536
    3637namespace WebCore {
     
    6263}
    6364
     65#if !LOG_DISABLED
     66static String mediaProducerStateString(MediaProducer::MediaStateFlags flags)
     67{
     68    StringBuilder string;
     69    if (flags & MediaProducer::IsPlayingAudio)
     70        string.append("IsPlayingAudio + ");
     71    if (flags & MediaProducer::IsPlayingVideo)
     72        string.append("IsPlayingVideo + ");
     73    if (flags & MediaProducer::IsPlayingToExternalDevice)
     74        string.append("IsPlayingToExternalDevice + ");
     75    if (flags & MediaProducer::RequiresPlaybackTargetMonitoring)
     76        string.append("RequiresPlaybackTargetMonitoring + ");
     77    if (flags & MediaProducer::ExternalDeviceAutoPlayCandidate)
     78        string.append("ExternalDeviceAutoPlayCandidate + ");
     79    if (string.isEmpty())
     80        string.append("IsNotPlaying");
     81    else
     82        string.resize(string.length() - 2);
     83
     84    return string.toString();
     85}
     86#endif
     87
    6488WebMediaSessionManager::WebMediaSessionManager()
    6589    : m_taskTimer(RunLoop::current(), this, &WebMediaSessionManager::taskTimerFired)
     
    137161    auto& changedClientState = m_clientState[index];
    138162    MediaProducer::MediaStateFlags oldFlags = changedClientState->flags;
    139     LOG(Media, "WebMediaSessionManager::clientStateDidChange(%p + %llu) - new flags = 0x%x, old flags = 0x%x", &client, contextId, newFlags, oldFlags);
     163    LOG(Media, "WebMediaSessionManager::clientStateDidChange(%p + %llu) - new flags = %s, old flags = %s", &client, contextId, mediaProducerStateString(newFlags).utf8().data(), mediaProducerStateString(oldFlags).utf8().data());
    140164    if (newFlags == oldFlags)
    141165        return;
     
    266290}
    267291
     292#if !LOG_DISABLED
     293String WebMediaSessionManager::toString(ConfigurationTasks tasks)
     294{
     295    StringBuilder string;
     296    if (tasks & InitialConfigurationTask)
     297        string.append("InitialConfigurationTask + ");
     298    if (tasks & TargetClientsConfigurationTask)
     299        string.append("TargetClientsConfigurationTask + ");
     300    if (tasks & TargetMonitoringConfigurationTask)
     301        string.append("TargetMonitoringConfigurationTask + ");
     302    if (string.isEmpty())
     303        string.append("NoTask");
     304    else
     305        string.resize(string.length() - 2);
     306   
     307    return string.toString();
     308}
     309#endif
     310
    268311void WebMediaSessionManager::scheduleDelayedTask(ConfigurationTasks tasks)
    269312{
     313    LOG(Media, "WebMediaSessionManager::scheduleDelayedTask - tasks = %s", toString(tasks).utf8().data());
     314
    270315    m_taskFlags |= tasks;
    271316    m_taskTimer.startOneShot(taskDelayInterval);
     
    274319void WebMediaSessionManager::taskTimerFired()
    275320{
     321    LOG(Media, "WebMediaSessionManager::taskTimerFired - tasks = %s", toString(m_taskFlags).utf8().data());
     322
    276323    if (m_taskFlags & InitialConfigurationTask)
    277324        configureNewClients();
  • trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.h

    r184204 r185519  
    7676    };
    7777    typedef unsigned ConfigurationTasks;
     78    String toString(ConfigurationTasks);
    7879
    7980    void scheduleDelayedTask(ConfigurationTasks);
  • trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h

    r183509 r185519  
    176176    virtual void setWirelessPlaybackTarget(Ref<MediaPlaybackTarget>&&);
    177177    virtual void setShouldPlayToPlaybackTarget(bool) override;
     178    bool wirelessVideoPlaybackDisabled() const override { return false; }
    178179#endif
    179180
  • trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h

    r183509 r185519  
    184184    virtual void setWirelessPlaybackTarget(Ref<MediaPlaybackTarget>&&);
    185185    virtual void setShouldPlayToPlaybackTarget(bool) override;
     186    bool wirelessVideoPlaybackDisabled() const override { return false; }
    186187#endif
    187188
Note: See TracChangeset for help on using the changeset viewer.