Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(346)

Side by Side Diff: chrome/browser/media/android/remote/remote_media_player_bridge.cc

Issue 2237943002: Remove now-unnecessary .obj() in Java method calls. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@switch-context
Patch Set: Rebase *again* :( Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/media/android/remote/remote_media_player_bridge.h" 5 #include "chrome/browser/media/android/remote/remote_media_player_bridge.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 // Create a Java String for the URL. 71 // Create a Java String for the URL.
72 j_url_string = ConvertUTF8ToJavaString(env, escaped_url); 72 j_url_string = ConvertUTF8ToJavaString(env, escaped_url);
73 } 73 }
74 ScopedJavaLocalRef<jstring> j_frame_url_string; 74 ScopedJavaLocalRef<jstring> j_frame_url_string;
75 GURL frameUrl = GetLocalPlayer()->frame_url(); 75 GURL frameUrl = GetLocalPlayer()->frame_url();
76 if (frameUrl.is_valid()) { 76 if (frameUrl.is_valid()) {
77 // Create a Java String for the URL. 77 // Create a Java String for the URL.
78 j_frame_url_string = ConvertUTF8ToJavaString(env, frameUrl.spec()); 78 j_frame_url_string = ConvertUTF8ToJavaString(env, frameUrl.spec());
79 } 79 }
80 java_bridge_.Reset(Java_RemoteMediaPlayerBridge_create( 80 java_bridge_.Reset(Java_RemoteMediaPlayerBridge_create(
81 env, reinterpret_cast<intptr_t>(this), j_url_string.obj(), 81 env, reinterpret_cast<intptr_t>(this), j_url_string, j_frame_url_string,
82 j_frame_url_string.obj(), 82 ConvertUTF8ToJavaString(env, user_agent)));
83 ConvertUTF8ToJavaString(env, user_agent).obj()));
84 } 83 }
85 84
86 RemoteMediaPlayerBridge::~RemoteMediaPlayerBridge() { 85 RemoteMediaPlayerBridge::~RemoteMediaPlayerBridge() {
87 JNIEnv* env = base::android::AttachCurrentThread(); 86 JNIEnv* env = base::android::AttachCurrentThread();
88 CHECK(env); 87 CHECK(env);
89 Java_RemoteMediaPlayerBridge_destroy(env, java_bridge_.obj()); 88 Java_RemoteMediaPlayerBridge_destroy(env, java_bridge_);
90 Release(); 89 Release();
91 } 90 }
92 91
93 bool RemoteMediaPlayerBridge::HasVideo() const { 92 bool RemoteMediaPlayerBridge::HasVideo() const {
94 NOTIMPLEMENTED(); 93 NOTIMPLEMENTED();
95 return true; 94 return true;
96 } 95 }
97 96
98 bool RemoteMediaPlayerBridge::HasAudio() const { 97 bool RemoteMediaPlayerBridge::HasAudio() const {
99 NOTIMPLEMENTED(); 98 NOTIMPLEMENTED();
(...skipping 23 matching lines...) Expand all
123 void RemoteMediaPlayerBridge::OnPlaybackComplete() { 122 void RemoteMediaPlayerBridge::OnPlaybackComplete() {
124 time_update_timer_.Stop(); 123 time_update_timer_.Stop();
125 MediaPlayerAndroid::OnPlaybackComplete(); 124 MediaPlayerAndroid::OnPlaybackComplete();
126 } 125 }
127 126
128 void RemoteMediaPlayerBridge::OnMediaInterrupted() {} 127 void RemoteMediaPlayerBridge::OnMediaInterrupted() {}
129 128
130 void RemoteMediaPlayerBridge::StartInternal() { 129 void RemoteMediaPlayerBridge::StartInternal() {
131 DCHECK_CURRENTLY_ON(BrowserThread::UI); 130 DCHECK_CURRENTLY_ON(BrowserThread::UI);
132 JNIEnv* env = AttachCurrentThread(); 131 JNIEnv* env = AttachCurrentThread();
133 Java_RemoteMediaPlayerBridge_start(env, java_bridge_.obj()); 132 Java_RemoteMediaPlayerBridge_start(env, java_bridge_);
134 if (!time_update_timer_.IsRunning()) { 133 if (!time_update_timer_.IsRunning()) {
135 time_update_timer_.Start( 134 time_update_timer_.Start(
136 FROM_HERE, 135 FROM_HERE,
137 base::TimeDelta::FromMilliseconds(media::kTimeUpdateInterval), 136 base::TimeDelta::FromMilliseconds(media::kTimeUpdateInterval),
138 this, &RemoteMediaPlayerBridge::OnTimeUpdateTimerFired); 137 this, &RemoteMediaPlayerBridge::OnTimeUpdateTimerFired);
139 } 138 }
140 } 139 }
141 140
142 void RemoteMediaPlayerBridge::PauseInternal() { 141 void RemoteMediaPlayerBridge::PauseInternal() {
143 DCHECK_CURRENTLY_ON(BrowserThread::UI); 142 DCHECK_CURRENTLY_ON(BrowserThread::UI);
144 JNIEnv* env = AttachCurrentThread(); 143 JNIEnv* env = AttachCurrentThread();
145 Java_RemoteMediaPlayerBridge_pause(env, java_bridge_.obj()); 144 Java_RemoteMediaPlayerBridge_pause(env, java_bridge_);
146 time_update_timer_.Stop(); 145 time_update_timer_.Stop();
147 } 146 }
148 147
149 void RemoteMediaPlayerBridge::OnTimeUpdateTimerFired() { 148 void RemoteMediaPlayerBridge::OnTimeUpdateTimerFired() {
150 manager()->OnTimeUpdate( 149 manager()->OnTimeUpdate(
151 player_id(), GetCurrentTime(), base::TimeTicks::Now()); 150 player_id(), GetCurrentTime(), base::TimeTicks::Now());
152 } 151 }
153 152
154 void RemoteMediaPlayerBridge::PauseLocal(JNIEnv* env, 153 void RemoteMediaPlayerBridge::PauseLocal(JNIEnv* env,
155 const JavaParamRef<jobject>& obj) { 154 const JavaParamRef<jobject>& obj) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 } 197 }
199 198
200 void RemoteMediaPlayerBridge::Pause(bool is_media_related_action) { 199 void RemoteMediaPlayerBridge::Pause(bool is_media_related_action) {
201 // Ignore the pause if it's not from an event that is explicitly telling 200 // Ignore the pause if it's not from an event that is explicitly telling
202 // the video to pause. It's possible for Pause() to be called for other 201 // the video to pause. It's possible for Pause() to be called for other
203 // reasons, such as freeing resources, etc. and during those times, the 202 // reasons, such as freeing resources, etc. and during those times, the
204 // remote video playback should not be paused. 203 // remote video playback should not be paused.
205 if (is_media_related_action) { 204 if (is_media_related_action) {
206 DCHECK_CURRENTLY_ON(BrowserThread::UI); 205 DCHECK_CURRENTLY_ON(BrowserThread::UI);
207 JNIEnv* env = AttachCurrentThread(); 206 JNIEnv* env = AttachCurrentThread();
208 Java_RemoteMediaPlayerBridge_pause(env, java_bridge_.obj()); 207 Java_RemoteMediaPlayerBridge_pause(env, java_bridge_);
209 time_update_timer_.Stop(); 208 time_update_timer_.Stop();
210 } 209 }
211 } 210 }
212 211
213 void RemoteMediaPlayerBridge::SetVideoSurface(gl::ScopedJavaSurface surface) { 212 void RemoteMediaPlayerBridge::SetVideoSurface(gl::ScopedJavaSurface surface) {
214 // The surface is reset whenever the fullscreen view is destroyed or created. 213 // The surface is reset whenever the fullscreen view is destroyed or created.
215 // Since the remote player doesn't use it, we forward it to the local player 214 // Since the remote player doesn't use it, we forward it to the local player
216 // for the time when user disconnects and resumes local playback 215 // for the time when user disconnects and resumes local playback
217 // (see crbug.com/420690). 216 // (see crbug.com/420690).
218 MediaPlayerAndroid* local_player = GetLocalPlayer(); 217 MediaPlayerAndroid* local_player = GetLocalPlayer();
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 262
264 void RemoteMediaPlayerBridge::RequestRemotePlayback() { 263 void RemoteMediaPlayerBridge::RequestRemotePlayback() {
265 DCHECK_CURRENTLY_ON(BrowserThread::UI); 264 DCHECK_CURRENTLY_ON(BrowserThread::UI);
266 MediaPlayerAndroid* local_player = GetLocalPlayer(); 265 MediaPlayerAndroid* local_player = GetLocalPlayer();
267 if (!local_player) 266 if (!local_player)
268 return; 267 return;
269 JNIEnv* env = AttachCurrentThread(); 268 JNIEnv* env = AttachCurrentThread();
270 CHECK(env); 269 CHECK(env);
271 270
272 Java_RemoteMediaPlayerBridge_requestRemotePlayback( 271 Java_RemoteMediaPlayerBridge_requestRemotePlayback(
273 env, java_bridge_.obj(), local_player->GetCurrentTime().InMilliseconds()); 272 env, java_bridge_, local_player->GetCurrentTime().InMilliseconds());
274 } 273 }
275 274
276 void RemoteMediaPlayerBridge::RequestRemotePlaybackControl() { 275 void RemoteMediaPlayerBridge::RequestRemotePlaybackControl() {
277 DCHECK_CURRENTLY_ON(BrowserThread::UI); 276 DCHECK_CURRENTLY_ON(BrowserThread::UI);
278 JNIEnv* env = AttachCurrentThread(); 277 JNIEnv* env = AttachCurrentThread();
279 CHECK(env); 278 CHECK(env);
280 279
281 Java_RemoteMediaPlayerBridge_requestRemotePlaybackControl( 280 Java_RemoteMediaPlayerBridge_requestRemotePlaybackControl(env, java_bridge_);
282 env, java_bridge_.obj());
283 } 281 }
284 282
285 void RemoteMediaPlayerBridge::SetNativePlayer() { 283 void RemoteMediaPlayerBridge::SetNativePlayer() {
286 DCHECK_CURRENTLY_ON(BrowserThread::UI); 284 DCHECK_CURRENTLY_ON(BrowserThread::UI);
287 JNIEnv* env = AttachCurrentThread(); 285 JNIEnv* env = AttachCurrentThread();
288 CHECK(env); 286 CHECK(env);
289 287
290 Java_RemoteMediaPlayerBridge_setNativePlayer( 288 Java_RemoteMediaPlayerBridge_setNativePlayer(env, java_bridge_);
291 env, java_bridge_.obj());
292 } 289 }
293 290
294 void RemoteMediaPlayerBridge::OnPlayerCreated() { 291 void RemoteMediaPlayerBridge::OnPlayerCreated() {
295 DCHECK_CURRENTLY_ON(BrowserThread::UI); 292 DCHECK_CURRENTLY_ON(BrowserThread::UI);
296 JNIEnv* env = AttachCurrentThread(); 293 JNIEnv* env = AttachCurrentThread();
297 CHECK(env); 294 CHECK(env);
298 295
299 Java_RemoteMediaPlayerBridge_onPlayerCreated( 296 Java_RemoteMediaPlayerBridge_onPlayerCreated(env, java_bridge_);
300 env, java_bridge_.obj());
301 } 297 }
302 298
303 void RemoteMediaPlayerBridge::OnPlayerDestroyed() { 299 void RemoteMediaPlayerBridge::OnPlayerDestroyed() {
304 DCHECK_CURRENTLY_ON(BrowserThread::UI); 300 DCHECK_CURRENTLY_ON(BrowserThread::UI);
305 JNIEnv* env = AttachCurrentThread(); 301 JNIEnv* env = AttachCurrentThread();
306 CHECK(env); 302 CHECK(env);
307 303
308 Java_RemoteMediaPlayerBridge_onPlayerDestroyed( 304 Java_RemoteMediaPlayerBridge_onPlayerDestroyed(env, java_bridge_);
309 env, java_bridge_.obj());
310 } 305 }
311 306
312 std::string RemoteMediaPlayerBridge::GetCastingMessage() { 307 std::string RemoteMediaPlayerBridge::GetCastingMessage() {
313 return casting_message_ ? 308 return casting_message_ ?
314 *casting_message_ : std::string(); 309 *casting_message_ : std::string();
315 } 310 }
316 311
317 void RemoteMediaPlayerBridge::SetPosterBitmap( 312 void RemoteMediaPlayerBridge::SetPosterBitmap(
318 const std::vector<SkBitmap>& bitmaps) { 313 const std::vector<SkBitmap>& bitmaps) {
319 DCHECK_CURRENTLY_ON(BrowserThread::UI); 314 DCHECK_CURRENTLY_ON(BrowserThread::UI);
320 JNIEnv* env = AttachCurrentThread(); 315 JNIEnv* env = AttachCurrentThread();
321 CHECK(env); 316 CHECK(env);
322 317
323 if (bitmaps.empty()) { 318 if (bitmaps.empty()) {
324 Java_RemoteMediaPlayerBridge_setPosterBitmap(env, java_bridge_.obj(), 319 Java_RemoteMediaPlayerBridge_setPosterBitmap(env, java_bridge_, nullptr);
325 nullptr);
326 } else { 320 } else {
327 ScopedJavaLocalRef<jobject> j_poster_bitmap; 321 ScopedJavaLocalRef<jobject> j_poster_bitmap;
328 j_poster_bitmap = gfx::ConvertToJavaBitmap(&(bitmaps[0])); 322 j_poster_bitmap = gfx::ConvertToJavaBitmap(&(bitmaps[0]));
329 323
330 Java_RemoteMediaPlayerBridge_setPosterBitmap(env, java_bridge_.obj(), 324 Java_RemoteMediaPlayerBridge_setPosterBitmap(env, java_bridge_,
331 j_poster_bitmap.obj()); 325 j_poster_bitmap);
332 } 326 }
333 } 327 }
334 328
335 void RemoteMediaPlayerBridge::Start() { 329 void RemoteMediaPlayerBridge::Start() {
336 StartInternal(); 330 StartInternal();
337 } 331 }
338 332
339 void RemoteMediaPlayerBridge::SeekTo(base::TimeDelta time) { 333 void RemoteMediaPlayerBridge::SeekTo(base::TimeDelta time) {
340 DCHECK_CURRENTLY_ON(BrowserThread::UI); 334 DCHECK_CURRENTLY_ON(BrowserThread::UI);
341 // TODO(aberent) Move the checks to the Java side. 335 // TODO(aberent) Move the checks to the Java side.
342 base::TimeDelta duration = GetDuration(); 336 base::TimeDelta duration = GetDuration();
343 337
344 if (time > duration) 338 if (time > duration)
345 time = duration; 339 time = duration;
346 340
347 // Seeking to an invalid position may cause media player to stuck in an 341 // Seeking to an invalid position may cause media player to stuck in an
348 // error state. 342 // error state.
349 if (time < base::TimeDelta()) { 343 if (time < base::TimeDelta()) {
350 DCHECK_EQ(-1.0, time.InMillisecondsF()); 344 DCHECK_EQ(-1.0, time.InMillisecondsF());
351 return; 345 return;
352 } 346 }
353 347
354 JNIEnv* env = AttachCurrentThread(); 348 JNIEnv* env = AttachCurrentThread();
355 CHECK(env); 349 CHECK(env);
356 int time_msec = static_cast<int>(time.InMilliseconds()); 350 int time_msec = static_cast<int>(time.InMilliseconds());
357 Java_RemoteMediaPlayerBridge_seekTo(env, java_bridge_.obj(), time_msec); 351 Java_RemoteMediaPlayerBridge_seekTo(env, java_bridge_, time_msec);
358 } 352 }
359 353
360 void RemoteMediaPlayerBridge::Release() { 354 void RemoteMediaPlayerBridge::Release() {
361 DCHECK_CURRENTLY_ON(BrowserThread::UI); 355 DCHECK_CURRENTLY_ON(BrowserThread::UI);
362 time_update_timer_.Stop(); 356 time_update_timer_.Stop();
363 JNIEnv* env = AttachCurrentThread(); 357 JNIEnv* env = AttachCurrentThread();
364 Java_RemoteMediaPlayerBridge_release(env, java_bridge_.obj()); 358 Java_RemoteMediaPlayerBridge_release(env, java_bridge_);
365 DetachListener(); 359 DetachListener();
366 } 360 }
367 361
368 void RemoteMediaPlayerBridge::UpdateEffectiveVolumeInternal( 362 void RemoteMediaPlayerBridge::UpdateEffectiveVolumeInternal(
369 double effective_volume) { 363 double effective_volume) {
370 DCHECK_CURRENTLY_ON(BrowserThread::UI); 364 DCHECK_CURRENTLY_ON(BrowserThread::UI);
371 JNIEnv* env = AttachCurrentThread(); 365 JNIEnv* env = AttachCurrentThread();
372 CHECK(env); 366 CHECK(env);
373 Java_RemoteMediaPlayerBridge_setVolume( 367 Java_RemoteMediaPlayerBridge_setVolume(env, java_bridge_,
374 env, java_bridge_.obj(), GetEffectiveVolume()); 368 GetEffectiveVolume());
375 } 369 }
376 370
377 base::TimeDelta RemoteMediaPlayerBridge::GetCurrentTime() { 371 base::TimeDelta RemoteMediaPlayerBridge::GetCurrentTime() {
378 DCHECK_CURRENTLY_ON(BrowserThread::UI); 372 DCHECK_CURRENTLY_ON(BrowserThread::UI);
379 JNIEnv* env = AttachCurrentThread(); 373 JNIEnv* env = AttachCurrentThread();
380 return base::TimeDelta::FromMilliseconds( 374 return base::TimeDelta::FromMilliseconds(
381 Java_RemoteMediaPlayerBridge_getCurrentPosition( 375 Java_RemoteMediaPlayerBridge_getCurrentPosition(env, java_bridge_));
382 env, java_bridge_.obj()));
383 } 376 }
384 377
385 base::TimeDelta RemoteMediaPlayerBridge::GetDuration() { 378 base::TimeDelta RemoteMediaPlayerBridge::GetDuration() {
386 DCHECK_CURRENTLY_ON(BrowserThread::UI); 379 DCHECK_CURRENTLY_ON(BrowserThread::UI);
387 JNIEnv* env = AttachCurrentThread(); 380 JNIEnv* env = AttachCurrentThread();
388 const int duration_ms = 381 const int duration_ms =
389 Java_RemoteMediaPlayerBridge_getDuration(env, java_bridge_.obj()); 382 Java_RemoteMediaPlayerBridge_getDuration(env, java_bridge_);
390 // Sometimes we can't get the duration remotely, but the local media player 383 // Sometimes we can't get the duration remotely, but the local media player
391 // knows it. 384 // knows it.
392 // TODO (aberent) This is for YouTube. Remove it when the YouTube receiver is 385 // TODO (aberent) This is for YouTube. Remove it when the YouTube receiver is
393 // fixed. 386 // fixed.
394 if (duration_ms == 0) { 387 if (duration_ms == 0) {
395 MediaPlayerAndroid* local_player = GetLocalPlayer(); 388 MediaPlayerAndroid* local_player = GetLocalPlayer();
396 if (!local_player) 389 if (!local_player)
397 return media::kInfiniteDuration; 390 return media::kInfiniteDuration;
398 return local_player->GetDuration(); 391 return local_player->GetDuration();
399 } 392 }
400 return duration_ms < 0 ? media::kInfiniteDuration 393 return duration_ms < 0 ? media::kInfiniteDuration
401 : base::TimeDelta::FromMilliseconds(duration_ms); 394 : base::TimeDelta::FromMilliseconds(duration_ms);
402 } 395 }
403 396
404 bool RemoteMediaPlayerBridge::IsPlaying() { 397 bool RemoteMediaPlayerBridge::IsPlaying() {
405 DCHECK_CURRENTLY_ON(BrowserThread::UI); 398 DCHECK_CURRENTLY_ON(BrowserThread::UI);
406 JNIEnv* env = AttachCurrentThread(); 399 JNIEnv* env = AttachCurrentThread();
407 CHECK(env); 400 CHECK(env);
408 jboolean result = Java_RemoteMediaPlayerBridge_isPlaying( 401 jboolean result = Java_RemoteMediaPlayerBridge_isPlaying(env, java_bridge_);
409 env, java_bridge_.obj());
410 return result; 402 return result;
411 } 403 }
412 404
413 bool RemoteMediaPlayerBridge::CanPause() { 405 bool RemoteMediaPlayerBridge::CanPause() {
414 return true; 406 return true;
415 } 407 }
416 408
417 bool RemoteMediaPlayerBridge::CanSeekForward() { 409 bool RemoteMediaPlayerBridge::CanSeekForward() {
418 return true; 410 return true;
419 } 411 }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 467
476 468
477 void RemoteMediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) { 469 void RemoteMediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) {
478 DCHECK_CURRENTLY_ON(BrowserThread::UI); 470 DCHECK_CURRENTLY_ON(BrowserThread::UI);
479 // TODO(aberent) Do we need to retrieve auth credentials for basic 471 // TODO(aberent) Do we need to retrieve auth credentials for basic
480 // authentication? MediaPlayerBridge does. 472 // authentication? MediaPlayerBridge does.
481 cookies_ = cookies; 473 cookies_ = cookies;
482 JNIEnv* env = AttachCurrentThread(); 474 JNIEnv* env = AttachCurrentThread();
483 CHECK(env); 475 CHECK(env);
484 Java_RemoteMediaPlayerBridge_setCookies( 476 Java_RemoteMediaPlayerBridge_setCookies(
485 env, java_bridge_.obj(), ConvertUTF8ToJavaString(env, cookies).obj()); 477 env, java_bridge_, ConvertUTF8ToJavaString(env, cookies));
486 } 478 }
487 479
488 MediaPlayerAndroid* RemoteMediaPlayerBridge::GetLocalPlayer() { 480 MediaPlayerAndroid* RemoteMediaPlayerBridge::GetLocalPlayer() {
489 return static_cast<RemoteMediaPlayerManager*>(manager())->GetLocalPlayer( 481 return static_cast<RemoteMediaPlayerManager*>(manager())->GetLocalPlayer(
490 player_id()); 482 player_id());
491 } 483 }
492 484
493 } // namespace remote_media 485 } // namespace remote_media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698