Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "media/base/android/media_player_bridge.h" | 5 #include "media/base/android/media_player_bridge.h" |
| 6 | 6 |
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 27 | 27 |
| 28 MediaPlayerBridge::MediaPlayerBridge( | 28 MediaPlayerBridge::MediaPlayerBridge( |
| 29 int player_id, | 29 int player_id, |
| 30 const GURL& url, | 30 const GURL& url, |
| 31 const GURL& first_party_for_cookies, | 31 const GURL& first_party_for_cookies, |
| 32 const std::string& user_agent, | 32 const std::string& user_agent, |
| 33 bool hide_url_log, | 33 bool hide_url_log, |
| 34 MediaPlayerManager* manager, | 34 MediaPlayerManager* manager, |
| 35 const RequestMediaResourcesCB& request_media_resources_cb, | 35 const RequestMediaResourcesCB& request_media_resources_cb, |
| 36 const ReleaseMediaResourcesCB& release_media_resources_cb, | 36 const ReleaseMediaResourcesCB& release_media_resources_cb, |
| 37 const GURL& frame_url) | 37 const GURL& frame_url, |
| 38 bool has_single_security_origin, | |
| 39 bool allow_credentials) | |
| 38 : MediaPlayerAndroid(player_id, | 40 : MediaPlayerAndroid(player_id, |
| 39 manager, | 41 manager, |
| 40 request_media_resources_cb, | 42 request_media_resources_cb, |
| 41 release_media_resources_cb, | 43 release_media_resources_cb, |
| 42 frame_url), | 44 frame_url), |
| 43 prepared_(false), | 45 prepared_(false), |
| 44 pending_play_(false), | 46 pending_play_(false), |
| 45 url_(url), | 47 url_(url), |
| 46 first_party_for_cookies_(first_party_for_cookies), | 48 first_party_for_cookies_(first_party_for_cookies), |
| 47 user_agent_(user_agent), | 49 user_agent_(user_agent), |
| 48 hide_url_log_(hide_url_log), | 50 hide_url_log_(hide_url_log), |
| 49 width_(0), | 51 width_(0), |
| 50 height_(0), | 52 height_(0), |
| 51 can_pause_(true), | 53 can_pause_(true), |
| 52 can_seek_forward_(true), | 54 can_seek_forward_(true), |
| 53 can_seek_backward_(true), | 55 can_seek_backward_(true), |
| 54 is_surface_in_use_(false), | 56 is_surface_in_use_(false), |
| 55 volume_(-1.0), | 57 volume_(-1.0), |
| 58 has_single_security_origin_(has_single_security_origin), | |
| 59 allow_credentials_(allow_credentials), | |
| 56 weak_factory_(this) { | 60 weak_factory_(this) { |
| 57 listener_.reset(new MediaPlayerListener(base::MessageLoopProxy::current(), | 61 listener_.reset(new MediaPlayerListener(base::MessageLoopProxy::current(), |
| 58 weak_factory_.GetWeakPtr())); | 62 weak_factory_.GetWeakPtr())); |
| 59 } | 63 } |
| 60 | 64 |
| 61 MediaPlayerBridge::~MediaPlayerBridge() { | 65 MediaPlayerBridge::~MediaPlayerBridge() { |
| 62 if (!j_media_player_bridge_.is_null()) { | 66 if (!j_media_player_bridge_.is_null()) { |
| 63 JNIEnv* env = base::android::AttachCurrentThread(); | 67 JNIEnv* env = base::android::AttachCurrentThread(); |
| 64 CHECK(env); | 68 CHECK(env); |
| 65 Java_MediaPlayerBridge_destroy(env, j_media_player_bridge_.obj()); | 69 Java_MediaPlayerBridge_destroy(env, j_media_player_bridge_.obj()); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 77 media::MediaResourceGetter* resource_getter = | 81 media::MediaResourceGetter* resource_getter = |
| 78 manager()->GetMediaResourceGetter(); | 82 manager()->GetMediaResourceGetter(); |
| 79 if (url_.SchemeIsFileSystem() || url_.SchemeIs(kBlobScheme)) { | 83 if (url_.SchemeIsFileSystem() || url_.SchemeIs(kBlobScheme)) { |
| 80 resource_getter->GetPlatformPathFromURL( | 84 resource_getter->GetPlatformPathFromURL( |
| 81 url_, | 85 url_, |
| 82 base::Bind(&MediaPlayerBridge::ExtractMediaMetadata, | 86 base::Bind(&MediaPlayerBridge::ExtractMediaMetadata, |
| 83 weak_factory_.GetWeakPtr())); | 87 weak_factory_.GetWeakPtr())); |
| 84 return; | 88 return; |
| 85 } | 89 } |
| 86 | 90 |
| 91 if (!allow_credentials_) { | |
|
Ken Russell (switch to Gerrit)
2014/07/30 20:44:05
Please comment this block indicating why the short
qinmin
2014/07/30 23:46:05
Done.
| |
| 92 ExtractMediaMetadata(url_.spec()); | |
| 93 return; | |
| 94 } | |
| 95 | |
| 87 resource_getter->GetCookies(url_, | 96 resource_getter->GetCookies(url_, |
| 88 first_party_for_cookies_, | 97 first_party_for_cookies_, |
| 89 base::Bind(&MediaPlayerBridge::OnCookiesRetrieved, | 98 base::Bind(&MediaPlayerBridge::OnCookiesRetrieved, |
| 90 weak_factory_.GetWeakPtr())); | 99 weak_factory_.GetWeakPtr())); |
| 91 } | 100 } |
| 92 | 101 |
| 93 void MediaPlayerBridge::CreateJavaMediaPlayerBridge() { | 102 void MediaPlayerBridge::CreateJavaMediaPlayerBridge() { |
| 94 JNIEnv* env = base::android::AttachCurrentThread(); | 103 JNIEnv* env = base::android::AttachCurrentThread(); |
| 95 CHECK(env); | 104 CHECK(env); |
| 96 | 105 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 178 if (StartsWithASCII(url, data_uri_prefix, true)) { | 187 if (StartsWithASCII(url, data_uri_prefix, true)) { |
| 179 if (!Java_MediaPlayerBridge_setDataUriDataSource( | 188 if (!Java_MediaPlayerBridge_setDataUriDataSource( |
| 180 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) { | 189 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) { |
| 181 OnMediaError(MEDIA_ERROR_FORMAT); | 190 OnMediaError(MEDIA_ERROR_FORMAT); |
| 182 } | 191 } |
| 183 return; | 192 return; |
| 184 } | 193 } |
| 185 | 194 |
| 186 if (!Java_MediaPlayerBridge_setDataSource( | 195 if (!Java_MediaPlayerBridge_setDataSource( |
| 187 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(), | 196 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(), |
| 188 j_cookies.obj(), j_user_agent.obj(), hide_url_log_)) { | 197 j_cookies.obj(), j_user_agent.obj(), hide_url_log_, |
| 198 has_single_security_origin_)) { | |
| 189 OnMediaError(MEDIA_ERROR_FORMAT); | 199 OnMediaError(MEDIA_ERROR_FORMAT); |
| 190 return; | 200 return; |
| 191 } | 201 } |
| 192 | 202 |
| 193 request_media_resources_cb_.Run(player_id()); | 203 request_media_resources_cb_.Run(player_id()); |
| 194 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj())) | 204 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj())) |
| 195 OnMediaError(MEDIA_ERROR_FORMAT); | 205 OnMediaError(MEDIA_ERROR_FORMAT); |
| 196 } | 206 } |
| 197 | 207 |
| 198 void MediaPlayerBridge::OnDidSetDataUriDataSource(JNIEnv* env, jobject obj, | 208 void MediaPlayerBridge::OnDidSetDataUriDataSource(JNIEnv* env, jobject obj, |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 496 | 506 |
| 497 GURL MediaPlayerBridge::GetFirstPartyForCookies() { | 507 GURL MediaPlayerBridge::GetFirstPartyForCookies() { |
| 498 return first_party_for_cookies_; | 508 return first_party_for_cookies_; |
| 499 } | 509 } |
| 500 | 510 |
| 501 bool MediaPlayerBridge::IsSurfaceInUse() const { | 511 bool MediaPlayerBridge::IsSurfaceInUse() const { |
| 502 return is_surface_in_use_; | 512 return is_surface_in_use_; |
| 503 } | 513 } |
| 504 | 514 |
| 505 } // namespace media | 515 } // namespace media |
| OLD | NEW |