Changeset 188775 in webkit


Ignore:
Timestamp:
Aug 21, 2015 2:41:53 PM (9 years ago)
Author:
mrajca@apple.com
Message:

Media Session: let UI clients change the volume of the focused media element
https://bugs.webkit.org/show_bug.cgi?id=148289

Reviewed by Tim Horton.

WebCore:

  • page/Page.cpp:

(WebCore::Page::setVolumeOfMediaElement):

  • page/Page.h:

WebKit2:

  • UIProcess/API/C/WKMediaSessionFocusManager.cpp:

(WKMediaSessionFocusManagerSetVolumeOfFocusedMediaElement):

  • UIProcess/API/C/WKMediaSessionFocusManager.h:
  • UIProcess/WebMediaSessionFocusManager.cpp:

(WebKit::WebMediaSessionFocusManager::updatePlaybackAttribute):
(WebKit::WebMediaSessionFocusManager::setVolumeOfFocusedMediaElement):

  • UIProcess/WebMediaSessionFocusManager.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setVolumeOfMediaElement):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setVolumeOfMediaElement):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
Location:
trunk/Source
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r188772 r188775  
     12015-08-20  Matt Rajca  <mrajca@apple.com>
     2
     3        Media Session: let UI clients change the volume of the focused media element
     4        https://bugs.webkit.org/show_bug.cgi?id=148289
     5
     6        Reviewed by Tim Horton.
     7
     8        * page/Page.cpp:
     9        (WebCore::Page::setVolumeOfMediaElement):
     10        * page/Page.h:
     11
    1122015-08-21  Anders Carlsson  <andersca@apple.com>
    213
  • trunk/Source/WebCore/page/Page.cpp

    r188030 r188775  
    12251225    }
    12261226}
     1227
     1228void Page::setVolumeOfMediaElement(double volume, uint64_t elementID)
     1229{
     1230    if (HTMLMediaElement* element = HTMLMediaElement::elementWithID(elementID))
     1231        element->setVolume(volume, ASSERT_NO_EXCEPTION);
     1232}
    12271233#endif
    12281234
  • trunk/Source/WebCore/page/Page.h

    r188030 r188775  
    443443#if ENABLE(MEDIA_SESSION)
    444444    WEBCORE_EXPORT void handleMediaEvent(MediaEventType);
     445    WEBCORE_EXPORT void setVolumeOfMediaElement(double, uint64_t);
    445446#endif
    446447
  • trunk/Source/WebKit2/ChangeLog

    r188772 r188775  
     12015-08-20  Matt Rajca  <mrajca@apple.com>
     2
     3        Media Session: let UI clients change the volume of the focused media element
     4        https://bugs.webkit.org/show_bug.cgi?id=148289
     5
     6        Reviewed by Tim Horton.
     7
     8        * UIProcess/API/C/WKMediaSessionFocusManager.cpp:
     9        (WKMediaSessionFocusManagerSetVolumeOfFocusedMediaElement):
     10        * UIProcess/API/C/WKMediaSessionFocusManager.h:
     11        * UIProcess/WebMediaSessionFocusManager.cpp:
     12        (WebKit::WebMediaSessionFocusManager::updatePlaybackAttribute):
     13        (WebKit::WebMediaSessionFocusManager::setVolumeOfFocusedMediaElement):
     14        * UIProcess/WebMediaSessionFocusManager.h:
     15        * UIProcess/WebPageProxy.cpp:
     16        (WebKit::WebPageProxy::setVolumeOfMediaElement):
     17        * UIProcess/WebPageProxy.h:
     18        * WebProcess/WebPage/WebPage.cpp:
     19        (WebKit::WebPage::setVolumeOfMediaElement):
     20        * WebProcess/WebPage/WebPage.h:
     21        * WebProcess/WebPage/WebPage.messages.in:
     22
    1232015-08-21  Anders Carlsson  <andersca@apple.com>
    224
  • trunk/Source/WebKit2/UIProcess/API/C/WKMediaSessionFocusManager.cpp

    r188218 r188775  
    6161#endif
    6262}
     63
     64void WKMediaSessionFocusManagerSetVolumeOfFocusedMediaElement(WKMediaSessionFocusManagerRef manager, double volume)
     65{
     66#if ENABLE(MEDIA_SESSION)
     67    toImpl(manager)->setVolumeOfFocusedMediaElement(volume);
     68#else
     69    UNUSED_PARAM(manager);
     70    UNUSED_PARAM(volume);
     71#endif
     72}
  • trunk/Source/WebKit2/UIProcess/API/C/WKMediaSessionFocusManager.h

    r188218 r188775  
    6464
    6565WK_EXPORT bool WKMediaSessionFocusManagerValueForPlaybackAttribute(WKMediaSessionFocusManagerRef, WKMediaSessionFocusManagerPlaybackAttribute);
     66WK_EXPORT void WKMediaSessionFocusManagerSetVolumeOfFocusedMediaElement(WKMediaSessionFocusManagerRef, double);
    6667
    6768#ifdef __cplusplus
  • trunk/Source/WebKit2/UIProcess/WebMediaSessionFocusManager.cpp

    r188345 r188775  
    8181}
    8282
     83void WebMediaSessionFocusManager::setVolumeOfFocusedMediaElement(double volume)
     84{
     85    if (!m_focusedMediaElement)
     86        return;
     87
     88    if (WebPageProxy* proxy = m_focusedMediaElement->first)
     89        proxy->setVolumeOfMediaElement(volume, m_focusedMediaElement->second);
     90}
     91
    8392void WebMediaSessionFocusManager::updatePlaybackAttributesFromMediaState(WebPageProxy* proxy, uint64_t elementID, WebCore::MediaProducer::MediaStateFlags flags)
    8493{
  • trunk/Source/WebKit2/UIProcess/WebMediaSessionFocusManager.h

    r188345 r188775  
    4848    bool valueForPlaybackAttribute(WKMediaSessionFocusManagerPlaybackAttribute) const;
    4949    void updatePlaybackAttributesFromMediaState(WebPageProxy*, uint64_t, WebCore::MediaProducer::MediaStateFlags);
     50    void setVolumeOfFocusedMediaElement(double);
    5051
    5152    void setFocusedMediaElement(WebPageProxy&, uint64_t);
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r188693 r188775  
    38913891    m_process->send(Messages::WebPage::HandleMediaEvent(eventType), m_pageID);
    38923892}
     3893
     3894void WebPageProxy::setVolumeOfMediaElement(double volume, uint64_t elementID)
     3895{
     3896    if (!isValid())
     3897        return;
     3898
     3899    m_process->send(Messages::WebPage::SetVolumeOfMediaElement(volume, elementID), m_pageID);
     3900}
    38933901#endif
    38943902
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r188693 r188775  
    924924    bool hasMediaSessionWithActiveMediaElements() const { return m_hasMediaSessionWithActiveMediaElements; }
    925925    void handleMediaEvent(WebCore::MediaEventType);
     926    void setVolumeOfMediaElement(double, uint64_t);
    926927#endif
    927928
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r188693 r188775  
    40654065    m_page->handleMediaEvent(static_cast<MediaEventType>(eventType));
    40664066}
     4067
     4068void WebPage::setVolumeOfMediaElement(double volume, uint64_t elementID)
     4069{
     4070    m_page->setVolumeOfMediaElement(volume, elementID);
     4071}
    40674072#endif
    40684073
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h

    r188693 r188775  
    751751#if ENABLE(MEDIA_SESSION)
    752752    void handleMediaEvent(uint32_t /* WebCore::MediaEventType */);
     753    void setVolumeOfMediaElement(double, uint64_t);
    753754#endif
    754755
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in

    r188030 r188775  
    317317#if ENABLE(MEDIA_SESSION)
    318318    HandleMediaEvent(uint32_t eventType)
     319    SetVolumeOfMediaElement(double volume, uint64_t elementID)
    319320#endif
    320321
Note: See TracChangeset for help on using the changeset viewer.