Chromium Code Reviews

Side by Side Diff: Source/modules/mediasession/MediaSession.cpp

Issue 1325493002: NOT FOR LANDING Introduce and use WebMediaSession (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add missing files Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "modules/mediasession/MediaSession.h" 6 #include "modules/mediasession/MediaSession.h"
7 7
8 #include "Source/bindings/core/v8/CallbackPromiseAdapter.h"
9 #include "bindings/core/v8/ScriptState.h"
10 #include "core/frame/LocalDOMWindow.h"
11 #include "core/frame/LocalFrame.h"
12 #include "core/loader/FrameLoaderClient.h"
13 #include "modules/mediasession/MediaSessionError.h"
14
8 namespace blink { 15 namespace blink {
9 16
10 MediaSession* MediaSession::create() 17 MediaSession::MediaSession(PassOwnPtr<WebMediaSession> webMediaSession)
18 : m_webMediaSession(webMediaSession)
11 { 19 {
12 return new MediaSession; 20 ASSERT(m_webMediaSession);
13 } 21 }
14 22
15 void MediaSession::activate() 23 MediaSession* MediaSession::create(ScriptState* scriptState)
16 { 24 {
25 LocalDOMWindow* domWindow = scriptState->domWindow();
26 LocalFrame* frame = domWindow->frame();
27 FrameLoaderClient* client = frame->loader().client();
28 return new MediaSession(client->createWebMediaSession());
17 } 29 }
18 30
19 void MediaSession::deactivate() 31 MediaSession* MediaSession::createForTesting(PassOwnPtr<WebMediaSession> webMedi aSession)
20 { 32 {
33 return new MediaSession(webMediaSession);
34 }
35
36 ScriptPromise MediaSession::activate(ScriptState* scriptState)
37 {
38 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
39 ScriptPromise promise = resolver->promise();
40
41 m_webMediaSession->activate(new CallbackPromiseAdapter<void, MediaSessionErr or>(resolver));
42
43 return promise;
44 }
45
46 ScriptPromise MediaSession::deactivate(ScriptState* scriptState)
47 {
48 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
49 ScriptPromise promise = resolver->promise();
50
51 m_webMediaSession->deactivate(new CallbackPromiseAdapter<void, MediaSessionE rror>(resolver));
52
53 return promise;
21 } 54 }
22 55
23 } // namespace blink 56 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/mediasession/MediaSession.h ('k') | Source/modules/mediasession/MediaSession.idl » ('j') | no next file with comments »

Powered by Google App Engine