Changeset 186064 in webkit


Ignore:
Timestamp:
Jun 28, 2015 10:29:04 PM (9 years ago)
Author:
mrajca@apple.com
Message:

Add support for 'Default' media session types
https://bugs.webkit.org/show_bug.cgi?id=146355

Reviewed by Darin Adler.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession): Added a new constructor for creating 'Default' media sessions.
(WebCore::MediaSession::kind): 'Default' media sessions are represented by an empty string.

  • Modules/mediasession/MediaSession.h:
  • dom/Document.cpp:

(WebCore::Document::defaultMediaSession): Lazily construct the default media session.

  • dom/Document.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): New media elements are assigned to the 'Default' media session.

Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r186054 r186064  
     12015-06-26  Matt Rajca  <mrajca@apple.com>
     2
     3        Add support for 'Default' media session types
     4        https://bugs.webkit.org/show_bug.cgi?id=146355
     5
     6        Reviewed by Darin Adler.
     7
     8        * Modules/mediasession/MediaSession.cpp:
     9        (WebCore::MediaSession::MediaSession): Added a new constructor for creating 'Default' media sessions.
     10        (WebCore::MediaSession::kind): 'Default' media sessions are represented by an empty string.
     11        * Modules/mediasession/MediaSession.h:
     12        * dom/Document.cpp:
     13        (WebCore::Document::defaultMediaSession): Lazily construct the default media session.
     14        * dom/Document.h:
     15        * html/HTMLMediaElement.cpp:
     16        (WebCore::HTMLMediaElement::HTMLMediaElement): New media elements are assigned to the 'Default' media session.
     17
    1182015-06-28  Andreas Kling  <akling@apple.com>
    219
  • trunk/Source/WebCore/Modules/mediasession/MediaSession.cpp

    r185963 r186064  
    3838namespace WebCore {
    3939
     40static const char* defaultKind = "";
    4041static const char* ambientKind = "ambient";
    4142static const char* transientKind = "transient";
     
    5758}
    5859
     60MediaSession::MediaSession(Document& document)
     61    : m_document(document)
     62{
     63    MediaSessionManager::singleton().addMediaSession(*this);
     64}
     65
    5966MediaSession::MediaSession(ScriptExecutionContext& context, const String& kind)
    6067    : m_document(downcast<Document>(context))
     
    7885{
    7986    switch (m_kind) {
     87    case MediaSession::Kind::Default:
     88        return defaultKind;
    8089    case MediaSession::Kind::Ambient:
    8190        return ambientKind;
  • trunk/Source/WebCore/Modules/mediasession/MediaSession.h

    r185963 r186064  
    5151    }
    5252
     53    explicit MediaSession(Document&);
    5354    MediaSession(ScriptExecutionContext&, const String&);
    5455    ~MediaSession();
     
    7475
    7576    enum class Kind {
     77        Default,
    7678        Content,
    7779        Transient,
     
    9597
    9698    Document& m_document;
    97     const Kind m_kind;
     99    const Kind m_kind { Kind::Default };
    98100    RefPtr<MediaRemoteControls> m_controls;
    99101    MediaSessionMetadata m_metadata;
  • trunk/Source/WebCore/dom/Document.cpp

    r185602 r186064  
    234234#endif
    235235
     236#if ENABLE(MEDIA_SESSION)
     237#include "MediaSession.h"
     238#endif
     239
    236240using namespace WTF;
    237241using namespace Unicode;
     
    66516655#endif // ENABLE(WIRELESS_PLAYBACK_TARGET)
    66526656
     6657#if ENABLE(MEDIA_SESSION)
     6658MediaSession& Document::defaultMediaSession()
     6659{
     6660    if (!m_defaultMediaSession)
     6661        m_defaultMediaSession = adoptRef(*new MediaSession(*this));
     6662
     6663    return *m_defaultMediaSession;
     6664}
     6665#endif
     6666
    66536667ShouldOpenExternalURLsPolicy Document::shouldOpenExternalURLsPolicyToPropagate() const
    66546668{
  • trunk/Source/WebCore/dom/Document.h

    r185602 r186064  
    223223#endif
    224224
     225#if ENABLE(MEDIA_SESSION)
     226class MediaSession;
     227#endif
     228
    225229enum PageshowEventPersistence {
    226230    PageshowEventNotPersisted = 0,
     
    981985    void mediaVolumeDidChange();
    982986
     987#if ENABLE(MEDIA_SESSION)
     988    MediaSession& defaultMediaSession();
     989#endif
     990
    983991    void registerForPrivateBrowsingStateChangedCallbacks(Element*);
    984992    void unregisterForPrivateBrowsingStateChangedCallbacks(Element*);
     
    17071715    TargetClientToIdMap m_clientToIDMap;
    17081716#endif
     1717
     1718#if ENABLE(MEDIA_SESSION)
     1719    RefPtr<MediaSession> m_defaultMediaSession;
     1720#endif
    17091721};
    17101722
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r186054 r186064  
    410410#endif
    411411
     412#if ENABLE(MEDIA_SESSION)
     413    m_session = &document.defaultMediaSession();
     414#endif
     415
    412416    registerWithDocument(document);
    413417}
Note: See TracChangeset for help on using the changeset viewer.