Chromium Code Reviews| Index: third_party/WebKit/Source/modules/mediasession/NavigatorMediaSession.cpp |
| diff --git a/third_party/WebKit/Source/modules/mediasession/NavigatorMediaSession.cpp b/third_party/WebKit/Source/modules/mediasession/NavigatorMediaSession.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6fbbbe21ac222ea943d4054ec63e0d84b3049ac7 |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/modules/mediasession/NavigatorMediaSession.cpp |
| @@ -0,0 +1,43 @@ |
| +#include "modules/mediasession/NavigatorMediaSession.h" |
|
whywhat
2016/09/13 16:23:26
nit: copyright chromium authors yadayada
Zhiqiang Zhang (Slow)
2016/09/13 18:51:52
Done.
|
| + |
| +#include "bindings/core/v8/ExceptionStatePlaceholder.h" |
| +#include "modules/mediasession/MediaSession.h" |
| +#include "platform/Supplementable.h" |
| + |
| +namespace blink { |
| + |
| +NavigatorMediaSession::NavigatorMediaSession(Navigator& navigator) |
| + : DOMWindowProperty(navigator.frame()) |
| +{ |
| + if (!frame()) |
| + return; |
| + m_session = MediaSession::create(frame(), IGNORE_EXCEPTION); |
| +} |
| + |
| +DEFINE_TRACE(NavigatorMediaSession) |
| +{ |
| + visitor->trace(m_session); |
| + Supplement<Navigator>::trace(visitor); |
| + DOMWindowProperty::trace(visitor); |
| +} |
| + |
| +const char* NavigatorMediaSession::supplementName() |
| +{ |
| + return "NavigatorMediaSession"; |
| +} |
| + |
| +NavigatorMediaSession& NavigatorMediaSession::from(Navigator& navigator) |
| +{ |
| + NavigatorMediaSession* supplement = static_cast<NavigatorMediaSession*>(Supplement<Navigator>::from(navigator, supplementName())); |
| + if (!supplement) { |
| + supplement = new NavigatorMediaSession(navigator); |
| + provideTo(navigator, supplementName(), supplement); |
| + } |
| + return *supplement; |
| +} |
| + |
| +MediaSession* NavigatorMediaSession::mediaSession(Navigator& navigator) |
| +{ |
| + return NavigatorMediaSession::from(navigator).m_session.get(); |
| +} |
| +} |