| Index: content/renderer/media/android/webmediasession_android.cc
|
| diff --git a/content/renderer/media/android/webmediasession_android.cc b/content/renderer/media/android/webmediasession_android.cc
|
| index b68e2bbfbc2df26b70f01bfcd4ebe066be36e910..505c24d19f1be82bf74e244b3071851e0abc9218 100644
|
| --- a/content/renderer/media/android/webmediasession_android.cc
|
| +++ b/content/renderer/media/android/webmediasession_android.cc
|
| @@ -12,7 +12,7 @@ namespace content {
|
|
|
| WebMediaSessionAndroid::WebMediaSessionAndroid(
|
| RendererMediaSessionManager* session_manager)
|
| - : session_manager_(session_manager) {
|
| + : session_manager_(session_manager), next_request_id_(0) {
|
| DCHECK(session_manager_);
|
| session_id_ = session_manager_->RegisterMediaSession(this);
|
| }
|
| @@ -22,19 +22,39 @@ WebMediaSessionAndroid::~WebMediaSessionAndroid() {
|
| }
|
|
|
| void WebMediaSessionAndroid::activate(
|
| - blink::WebMediaSessionActivateCallback* raw_callback) {
|
| - NOTIMPLEMENTED();
|
| -
|
| - scoped_ptr<blink::WebMediaSessionActivateCallback> callback(raw_callback);
|
| - callback->onError(blink::WebMediaSessionError::Activate);
|
| + blink::WebMediaSessionActivateCallback* callback) {
|
| + int request_id = activation_requests_.Add(callback);
|
| + session_manager_->Activate(session_id_, request_id);
|
| }
|
|
|
| void WebMediaSessionAndroid::deactivate(
|
| - blink::WebMediaSessionDeactivateCallback* raw_callback) {
|
| - NOTIMPLEMENTED();
|
| + blink::WebMediaSessionDeactivateCallback* callback) {
|
| + int request_id = deactivation_requests_.Add(callback);
|
| + session_manager_->Deactivate(session_id_, request_id);
|
| +}
|
| +
|
| +void WebMediaSessionAndroid::OnDidActivate(int request_id, bool success) {
|
| + blink::WebMediaSessionActivateCallback* callback =
|
| + activation_requests_.Lookup(request_id);
|
| + if (!callback)
|
| + return;
|
| +
|
| + if (success)
|
| + callback->onSuccess();
|
| + else
|
| + callback->onError(
|
| + blink::WebMediaSessionError(blink::WebMediaSessionError::Activate));
|
| + activation_requests_.Remove(request_id);
|
| +}
|
| +
|
| +void WebMediaSessionAndroid::OnDidDeactivate(int request_id) {
|
| + blink::WebMediaSessionDeactivateCallback* callback =
|
| + deactivation_requests_.Lookup(request_id);
|
| + if (!callback)
|
| + return;
|
|
|
| - scoped_ptr<blink::WebMediaSessionDeactivateCallback> callback(raw_callback);
|
| callback->onSuccess();
|
| + deactivation_requests_.Remove(request_id);
|
| }
|
|
|
| } // namespace content
|
|
|