Changeset 185929 in webkit


Ignore:
Timestamp:
Jun 24, 2015 3:36:07 PM (9 years ago)
Author:
mrajca@apple.com
Message:

MediaSession: propagate MediaSessionMetadata to WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=146282

Reviewed by Darin Adler and Tim Horton.

WebCore:

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::setMetadata):

WebKit2:

  • Shared/WebCoreArgumentCoders.cpp: Added ArgumentEncoder support for MediaSessionMetadata so we can send it through the web page proxy.

(IPC::ArgumentCoder<MediaSessionMetadata>::encode):
(IPC::ArgumentCoder<MediaSessionMetadata>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::mediaSessionMetadataDidChange):

  • UIProcess/WebPageProxy.h: Receive mediaSessionMetadataDidChange in the web page proxy.
  • UIProcess/WebPageProxy.messages.in: Added a new MediaSessionMetadataDidChange message.
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::mediaSessionMetadataDidChange): Push a mediaSessionMetadataDidChange message through the web page proxy.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
Location:
trunk/Source
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r185927 r185929  
     12015-06-24  Matt Rajca  <mrajca@apple.com>
     2
     3        MediaSession: propagate MediaSessionMetadata to WebPageProxy
     4        https://bugs.webkit.org/show_bug.cgi?id=146282
     5
     6        Reviewed by Darin Adler and Tim Horton.
     7
     8        * Modules/mediasession/MediaSession.cpp:
     9        (WebCore::MediaSession::setMetadata):
     10
    1112015-06-24  Chris Dumez  <cdumez@apple.com>
    212
  • trunk/Source/WebCore/Modules/mediasession/MediaSession.cpp

    r185914 r185929  
    2929#if ENABLE(MEDIA_SESSION)
    3030
     31#include "Chrome.h"
     32#include "ChromeClient.h"
    3133#include "Dictionary.h"
    3234#include "Event.h"
     
    100102
    101103    m_metadata = MediaSessionMetadata(title, artist, album, artworkURL);
     104
     105    if (Page *page = m_document.page())
     106        page->chrome().client().mediaSessionMetadataDidChange(m_metadata);
    102107}
    103108
  • trunk/Source/WebCore/page/ChromeClient.h

    r185893 r185929  
    4545#include <wtf/Forward.h>
    4646#include <wtf/Vector.h>
     47
     48#if ENABLE(MEDIA_SESSION)
     49namespace WebCore {
     50struct MediaSessionMetadata;
     51}
     52#endif
    4753
    4854#if PLATFORM(IOS)
     
    413419    virtual void isPlayingMediaDidChange(MediaProducer::MediaStateFlags) { }
    414420
     421#if ENABLE(MEDIA_SESSION)
     422    virtual void mediaSessionMetadataDidChange(const WebCore::MediaSessionMetadata&) { }
     423#endif
     424
    415425    virtual void setPageActivityState(PageActivityState::Flags) { }
    416426
  • trunk/Source/WebKit2/ChangeLog

    r185922 r185929  
     12015-06-24  Matt Rajca  <mrajca@apple.com>
     2
     3        MediaSession: propagate MediaSessionMetadata to WebPageProxy
     4        https://bugs.webkit.org/show_bug.cgi?id=146282
     5
     6        Reviewed by Darin Adler and Tim Horton.
     7
     8        * Shared/WebCoreArgumentCoders.cpp: Added ArgumentEncoder support for MediaSessionMetadata so we can send it
     9          through the web page proxy.
     10        (IPC::ArgumentCoder<MediaSessionMetadata>::encode):
     11        (IPC::ArgumentCoder<MediaSessionMetadata>::decode):
     12        * Shared/WebCoreArgumentCoders.h:
     13        * UIProcess/WebPageProxy.cpp:
     14        (WebKit::WebPageProxy::mediaSessionMetadataDidChange):
     15        * UIProcess/WebPageProxy.h: Receive mediaSessionMetadataDidChange in the web page proxy.
     16        * UIProcess/WebPageProxy.messages.in: Added a new MediaSessionMetadataDidChange message.
     17        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     18        (WebKit::WebChromeClient::mediaSessionMetadataDidChange): Push a mediaSessionMetadataDidChange message through the web page proxy.
     19        * WebProcess/WebCoreSupport/WebChromeClient.h:
     20
    1212015-06-24  Said Abou-Hallawa  <sabouhallawa@apple.com>
    222
  • trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp

    r185804 r185929  
    8888#endif
    8989
     90#if ENABLE(MEDIA_SESSION)
     91#include <WebCore/MediaSessionMetadata.h>
     92#endif
     93
    9094using namespace WebCore;
    9195using namespace WebKit;
     
    14471451}
    14481452
     1453#if ENABLE(MEDIA_SESSION)
     1454void ArgumentCoder<MediaSessionMetadata>::encode(ArgumentEncoder& encoder, const MediaSessionMetadata& result)
     1455{
     1456    encoder << result.artist();
     1457    encoder << result.album();
     1458    encoder << result.title();
     1459    encoder << result.artworkURL();
     1460}
     1461
     1462bool ArgumentCoder<MediaSessionMetadata>::decode(ArgumentDecoder& decoder, MediaSessionMetadata& result)
     1463{
     1464    String artist, album, title;
     1465    URL artworkURL;
     1466    if (!decoder.decode(artist))
     1467        return false;
     1468    if (!decoder.decode(album))
     1469        return false;
     1470    if (!decoder.decode(title))
     1471        return false;
     1472    if (!decoder.decode(artworkURL))
     1473        return false;
     1474    result = MediaSessionMetadata(title, artist, album, artworkURL);
     1475    return true;
     1476}
     1477#endif
     1478
    14491479void ArgumentCoder<UserScript>::encode(ArgumentEncoder& encoder, const UserScript& userScript)
    14501480{
  • trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h

    r182630 r185929  
    122122#endif
    123123
     124#if ENABLE(MEDIA_SESSION)
     125namespace WebCore {
     126struct MediaSessionMetadata;
     127}
     128#endif
     129
    124130namespace IPC {
    125131
     
    453459    static void encode(ArgumentEncoder&, const WebCore::ContentFilterUnblockHandler&);
    454460    static bool decode(ArgumentDecoder&, WebCore::ContentFilterUnblockHandler&);
     461};
     462#endif
     463
     464#if ENABLE(MEDIA_SESSION)
     465template<> struct ArgumentCoder<WebCore::MediaSessionMetadata> {
     466    static void encode(ArgumentEncoder&, const WebCore::MediaSessionMetadata&);
     467    static bool decode(ArgumentDecoder&, WebCore::MediaSessionMetadata&);
    455468};
    456469#endif
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r185878 r185929  
    57715771}
    57725772
     5773#if ENABLE(MEDIA_SESSION)
     5774void WebPageProxy::mediaSessionMetadataDidChange(const WebCore::MediaSessionMetadata& metadata)
     5775{
     5776}
     5777#endif
     5778
    57735779#if PLATFORM(MAC)
    57745780void WebPageProxy::removeNavigationGestureSnapshot()
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r185878 r185929  
    120120#endif
    121121
     122#if ENABLE(MEDIA_SESSION)
     123namespace WebCore {
     124struct MediaSessionMetadata;
     125}
     126#endif
     127
    122128namespace API {
    123129class ContextMenuClient;
     
    10141020    void isPlayingMediaDidChange(WebCore::MediaProducer::MediaStateFlags);
    10151021
     1022#if ENABLE(MEDIA_SESSION)
     1023    void mediaSessionMetadataDidChange(const WebCore::MediaSessionMetadata&);
     1024#endif
     1025
    10161026#if PLATFORM(MAC)
    10171027    void removeNavigationGestureSnapshot();
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in

    r185877 r185929  
    424424    IsPlayingMediaDidChange(unsigned state)
    425425
     426#if ENABLE(MEDIA_SESSION)
     427    MediaSessionMetadataDidChange(WebCore::MediaSessionMetadata metadata);
     428#endif
     429
    426430#if PLATFORM(MAC)
    427431    DidPerformImmediateActionHitTest(struct WebKit::WebHitTestResult::Data result, bool contentPreventsDefault, WebKit::UserData userData)
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp

    r185893 r185929  
    10621062}
    10631063
     1064#if ENABLE(MEDIA_SESSION)
     1065void WebChromeClient::mediaSessionMetadataDidChange(const WebCore::MediaSessionMetadata& metadata)
     1066{
     1067    m_page->send(Messages::WebPageProxy::MediaSessionMetadataDidChange(metadata));
     1068}
     1069#endif
     1070
    10641071void WebChromeClient::setPageActivityState(PageActivityState::Flags activityState)
    10651072{
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h

    r185893 r185929  
    295295    virtual void setPageActivityState(WebCore::PageActivityState::Flags) override;
    296296
     297#if ENABLE(MEDIA_SESSION)
     298    virtual void mediaSessionMetadataDidChange(const WebCore::MediaSessionMetadata&) override;
     299#endif
     300
    297301#if ENABLE(SUBTLE_CRYPTO)
    298302    virtual bool wrapCryptoKey(const Vector<uint8_t>&, Vector<uint8_t>&) const override;
Note: See TracChangeset for help on using the changeset viewer.