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 |