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

Side by Side Diff: media/base/android/media_player_bridge.cc

Issue 130363002: Pass Chrome user agent string to Android media player (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressed comments Created 6 years, 11 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
« no previous file with comments | « media/base/android/media_player_bridge.h ('k') | media/base/android/media_resource_getter.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
11 #include "base/message_loop/message_loop_proxy.h" 11 #include "base/message_loop/message_loop_proxy.h"
12 #include "base/strings/string_util.h" 12 #include "base/strings/string_util.h"
13 #include "jni/MediaPlayerBridge_jni.h" 13 #include "jni/MediaPlayerBridge_jni.h"
14 #include "media/base/android/media_player_manager.h" 14 #include "media/base/android/media_player_manager.h"
15 #include "media/base/android/media_resource_getter.h" 15 #include "media/base/android/media_resource_getter.h"
16 16
17 using base::android::ConvertUTF8ToJavaString; 17 using base::android::ConvertUTF8ToJavaString;
18 using base::android::ScopedJavaLocalRef; 18 using base::android::ScopedJavaLocalRef;
19 19
20 // Time update happens every 250ms. 20 // Time update happens every 250ms.
21 static const int kTimeUpdateInterval = 250; 21 static const int kTimeUpdateInterval = 250;
22 22
23 namespace media { 23 namespace media {
24 24
25 MediaPlayerBridge::MediaPlayerBridge( 25 MediaPlayerBridge::MediaPlayerBridge(
26 int player_id, 26 int player_id,
27 const GURL& url, 27 const GURL& url,
28 const GURL& first_party_for_cookies, 28 const GURL& first_party_for_cookies,
29 const std::string& user_agent,
29 bool hide_url_log, 30 bool hide_url_log,
30 MediaPlayerManager* manager) 31 MediaPlayerManager* manager)
31 : MediaPlayerAndroid(player_id, 32 : MediaPlayerAndroid(player_id, manager),
32 manager),
33 prepared_(false), 33 prepared_(false),
34 pending_play_(false), 34 pending_play_(false),
35 url_(url), 35 url_(url),
36 first_party_for_cookies_(first_party_for_cookies), 36 first_party_for_cookies_(first_party_for_cookies),
37 user_agent_(user_agent),
37 hide_url_log_(hide_url_log), 38 hide_url_log_(hide_url_log),
38 width_(0), 39 width_(0),
39 height_(0), 40 height_(0),
40 can_pause_(true), 41 can_pause_(true),
41 can_seek_forward_(true), 42 can_seek_forward_(true),
42 can_seek_backward_(true), 43 can_seek_backward_(true),
43 weak_this_(this), 44 weak_this_(this),
44 listener_(base::MessageLoopProxy::current(), 45 listener_(base::MessageLoopProxy::current(),
45 weak_this_.GetWeakPtr()) { 46 weak_this_.GetWeakPtr()) {
46 } 47 }
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 if (j_media_player_bridge_.is_null()) 141 if (j_media_player_bridge_.is_null())
141 return; 142 return;
142 143
143 JNIEnv* env = base::android::AttachCurrentThread(); 144 JNIEnv* env = base::android::AttachCurrentThread();
144 CHECK(env); 145 CHECK(env);
145 146
146 // Create a Java String for the URL. 147 // Create a Java String for the URL.
147 ScopedJavaLocalRef<jstring> j_url_string = ConvertUTF8ToJavaString(env, url); 148 ScopedJavaLocalRef<jstring> j_url_string = ConvertUTF8ToJavaString(env, url);
148 ScopedJavaLocalRef<jstring> j_cookies = ConvertUTF8ToJavaString( 149 ScopedJavaLocalRef<jstring> j_cookies = ConvertUTF8ToJavaString(
149 env, cookies_); 150 env, cookies_);
151 ScopedJavaLocalRef<jstring> j_user_agent = ConvertUTF8ToJavaString(
152 env, user_agent_);
150 153
151 jobject j_context = base::android::GetApplicationContext(); 154 jobject j_context = base::android::GetApplicationContext();
152 DCHECK(j_context); 155 DCHECK(j_context);
153 156
154 const std::string data_uri_prefix("data:"); 157 const std::string data_uri_prefix("data:");
155 if (StartsWithASCII(url, data_uri_prefix, true)) { 158 if (StartsWithASCII(url, data_uri_prefix, true)) {
156 if (!Java_MediaPlayerBridge_setDataUriDataSource( 159 if (!Java_MediaPlayerBridge_setDataUriDataSource(
157 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) { 160 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) {
158 OnMediaError(MEDIA_ERROR_FORMAT); 161 OnMediaError(MEDIA_ERROR_FORMAT);
159 } 162 }
160 return; 163 return;
161 } 164 }
162 165
163 if (!Java_MediaPlayerBridge_setDataSource( 166 if (!Java_MediaPlayerBridge_setDataSource(
164 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(), 167 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(),
165 j_cookies.obj(), hide_url_log_)) { 168 j_cookies.obj(), j_user_agent.obj(), hide_url_log_)) {
166 OnMediaError(MEDIA_ERROR_FORMAT); 169 OnMediaError(MEDIA_ERROR_FORMAT);
167 return; 170 return;
168 } 171 }
169 172
170 manager()->RequestMediaResources(player_id()); 173 manager()->RequestMediaResources(player_id());
171 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj())) 174 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj()))
172 OnMediaError(MEDIA_ERROR_FORMAT); 175 OnMediaError(MEDIA_ERROR_FORMAT);
173 } 176 }
174 177
175 void MediaPlayerBridge::OnDidSetDataUriDataSource(JNIEnv* env, jobject obj, 178 void MediaPlayerBridge::OnDidSetDataUriDataSource(JNIEnv* env, jobject obj,
176 jboolean success) { 179 jboolean success) {
177 if (!success) { 180 if (!success) {
178 OnMediaError(MEDIA_ERROR_FORMAT); 181 OnMediaError(MEDIA_ERROR_FORMAT);
179 return; 182 return;
180 } 183 }
181 184
182 manager()->RequestMediaResources(player_id()); 185 manager()->RequestMediaResources(player_id());
183 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj())) 186 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj()))
184 OnMediaError(MEDIA_ERROR_FORMAT); 187 OnMediaError(MEDIA_ERROR_FORMAT);
185 } 188 }
186 189
187 void MediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) { 190 void MediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) {
188 cookies_ = cookies; 191 cookies_ = cookies;
189 ExtractMediaMetadata(url_.spec()); 192 ExtractMediaMetadata(url_.spec());
190 } 193 }
191 194
192 void MediaPlayerBridge::ExtractMediaMetadata(const std::string& url) { 195 void MediaPlayerBridge::ExtractMediaMetadata(const std::string& url) {
193 manager()->GetMediaResourceGetter()->ExtractMediaMetadata( 196 manager()->GetMediaResourceGetter()->ExtractMediaMetadata(
194 url, cookies_, base::Bind(&MediaPlayerBridge::OnMediaMetadataExtracted, 197 url, cookies_, user_agent_,
195 weak_this_.GetWeakPtr())); 198 base::Bind(&MediaPlayerBridge::OnMediaMetadataExtracted,
199 weak_this_.GetWeakPtr()));
196 } 200 }
197 201
198 void MediaPlayerBridge::OnMediaMetadataExtracted( 202 void MediaPlayerBridge::OnMediaMetadataExtracted(
199 base::TimeDelta duration, int width, int height, bool success) { 203 base::TimeDelta duration, int width, int height, bool success) {
200 if (success) { 204 if (success) {
201 duration_ = duration; 205 duration_ = duration;
202 width_ = width; 206 width_ = width;
203 height_ = height; 207 height_ = height;
204 } 208 }
205 manager()->OnMediaMetadataChanged( 209 manager()->OnMediaMetadataChanged(
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 453
450 GURL MediaPlayerBridge::GetUrl() { 454 GURL MediaPlayerBridge::GetUrl() {
451 return url_; 455 return url_;
452 } 456 }
453 457
454 GURL MediaPlayerBridge::GetFirstPartyForCookies() { 458 GURL MediaPlayerBridge::GetFirstPartyForCookies() {
455 return first_party_for_cookies_; 459 return first_party_for_cookies_;
456 } 460 }
457 461
458 } // namespace media 462 } // namespace media
OLDNEW
« no previous file with comments | « media/base/android/media_player_bridge.h ('k') | media/base/android/media_resource_getter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698