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

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: pass the user agent from mp-bridge to media-resource-getter 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
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,
32 manager), 33 manager),
xhwang 2014/01/09 17:51:14 nit: this can fit in one line
33 prepared_(false), 34 prepared_(false),
34 pending_play_(false), 35 pending_play_(false),
35 url_(url), 36 url_(url),
36 first_party_for_cookies_(first_party_for_cookies), 37 first_party_for_cookies_(first_party_for_cookies),
38 user_agent_(user_agent),
37 hide_url_log_(hide_url_log), 39 hide_url_log_(hide_url_log),
38 width_(0), 40 width_(0),
39 height_(0), 41 height_(0),
40 can_pause_(true), 42 can_pause_(true),
41 can_seek_forward_(true), 43 can_seek_forward_(true),
42 can_seek_backward_(true), 44 can_seek_backward_(true),
43 weak_this_(this), 45 weak_this_(this),
44 listener_(base::MessageLoopProxy::current(), 46 listener_(base::MessageLoopProxy::current(),
45 weak_this_.GetWeakPtr()) { 47 weak_this_.GetWeakPtr()) {
46 } 48 }
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 if (j_media_player_bridge_.is_null()) 142 if (j_media_player_bridge_.is_null())
141 return; 143 return;
142 144
143 JNIEnv* env = base::android::AttachCurrentThread(); 145 JNIEnv* env = base::android::AttachCurrentThread();
144 CHECK(env); 146 CHECK(env);
145 147
146 // Create a Java String for the URL. 148 // Create a Java String for the URL.
147 ScopedJavaLocalRef<jstring> j_url_string = ConvertUTF8ToJavaString(env, url); 149 ScopedJavaLocalRef<jstring> j_url_string = ConvertUTF8ToJavaString(env, url);
148 ScopedJavaLocalRef<jstring> j_cookies = ConvertUTF8ToJavaString( 150 ScopedJavaLocalRef<jstring> j_cookies = ConvertUTF8ToJavaString(
149 env, cookies_); 151 env, cookies_);
152 ScopedJavaLocalRef<jstring> j_user_agent = ConvertUTF8ToJavaString(
153 env, user_agent_);
150 154
151 jobject j_context = base::android::GetApplicationContext(); 155 jobject j_context = base::android::GetApplicationContext();
152 DCHECK(j_context); 156 DCHECK(j_context);
153 157
154 const std::string data_uri_prefix("data:"); 158 const std::string data_uri_prefix("data:");
155 if (StartsWithASCII(url, data_uri_prefix, true)) { 159 if (StartsWithASCII(url, data_uri_prefix, true)) {
156 if (!Java_MediaPlayerBridge_setDataUriDataSource( 160 if (!Java_MediaPlayerBridge_setDataUriDataSource(
157 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) { 161 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) {
158 OnMediaError(MEDIA_ERROR_FORMAT); 162 OnMediaError(MEDIA_ERROR_FORMAT);
159 } 163 }
160 return; 164 return;
161 } 165 }
162 166
163 if (!Java_MediaPlayerBridge_setDataSource( 167 if (!Java_MediaPlayerBridge_setDataSource(
164 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(), 168 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(),
165 j_cookies.obj(), hide_url_log_)) { 169 j_cookies.obj(), j_user_agent.obj(), hide_url_log_)) {
166 OnMediaError(MEDIA_ERROR_FORMAT); 170 OnMediaError(MEDIA_ERROR_FORMAT);
167 return; 171 return;
168 } 172 }
169 173
170 manager()->RequestMediaResources(player_id()); 174 manager()->RequestMediaResources(player_id());
171 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj())) 175 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj()))
172 OnMediaError(MEDIA_ERROR_FORMAT); 176 OnMediaError(MEDIA_ERROR_FORMAT);
173 } 177 }
174 178
175 void MediaPlayerBridge::OnDidSetDataUriDataSource(JNIEnv* env, jobject obj, 179 void MediaPlayerBridge::OnDidSetDataUriDataSource(JNIEnv* env, jobject obj,
176 jboolean success) { 180 jboolean success) {
177 if (!success) { 181 if (!success) {
178 OnMediaError(MEDIA_ERROR_FORMAT); 182 OnMediaError(MEDIA_ERROR_FORMAT);
179 return; 183 return;
180 } 184 }
181 185
182 manager()->RequestMediaResources(player_id()); 186 manager()->RequestMediaResources(player_id());
183 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj())) 187 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj()))
184 OnMediaError(MEDIA_ERROR_FORMAT); 188 OnMediaError(MEDIA_ERROR_FORMAT);
185 } 189 }
186 190
187 void MediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) { 191 void MediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) {
188 cookies_ = cookies; 192 cookies_ = cookies;
189 ExtractMediaMetadata(url_.spec()); 193 ExtractMediaMetadata(url_.spec());
190 } 194 }
191 195
192 void MediaPlayerBridge::ExtractMediaMetadata(const std::string& url) { 196 void MediaPlayerBridge::ExtractMediaMetadata(const std::string& url) {
193 manager()->GetMediaResourceGetter()->ExtractMediaMetadata( 197 manager()->GetMediaResourceGetter()->ExtractMediaMetadata(
194 url, cookies_, base::Bind(&MediaPlayerBridge::OnMediaMetadataExtracted, 198 url, cookies_, user_agent_,
195 weak_this_.GetWeakPtr())); 199 base::Bind(&MediaPlayerBridge::OnMediaMetadataExtracted,
200 weak_this_.GetWeakPtr()));
196 } 201 }
197 202
198 void MediaPlayerBridge::OnMediaMetadataExtracted( 203 void MediaPlayerBridge::OnMediaMetadataExtracted(
199 base::TimeDelta duration, int width, int height, bool success) { 204 base::TimeDelta duration, int width, int height, bool success) {
200 if (success) { 205 if (success) {
201 duration_ = duration; 206 duration_ = duration;
202 width_ = width; 207 width_ = width;
203 height_ = height; 208 height_ = height;
204 } 209 }
205 manager()->OnMediaMetadataChanged( 210 manager()->OnMediaMetadataChanged(
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 454
450 GURL MediaPlayerBridge::GetUrl() { 455 GURL MediaPlayerBridge::GetUrl() {
451 return url_; 456 return url_;
452 } 457 }
453 458
454 GURL MediaPlayerBridge::GetFirstPartyForCookies() { 459 GURL MediaPlayerBridge::GetFirstPartyForCookies() {
455 return first_party_for_cookies_; 460 return first_party_for_cookies_;
456 } 461 }
457 462
458 } // namespace media 463 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698