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

Side by Side Diff: content/browser/media/android/media_resource_getter_impl.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
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 "content/browser/media/android/media_resource_getter_impl.h" 5 #include "content/browser/media/android/media_resource_getter_impl.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/bind.h" 9 #include "base/bind.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
11 #include "base/threading/sequenced_worker_pool.h" 11 #include "base/threading/sequenced_worker_pool.h"
12 #include "content/browser/child_process_security_policy_impl.h" 12 #include "content/browser/child_process_security_policy_impl.h"
13 #include "content/browser/fileapi/browser_file_system_helper.h" 13 #include "content/browser/fileapi/browser_file_system_helper.h"
14 #include "content/public/browser/browser_context.h" 14 #include "content/public/browser/browser_context.h"
15 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
16 #include "content/public/browser/content_browser_client.h" 16 #include "content/public/browser/content_browser_client.h"
17 #include "content/public/common/content_client.h" 17 #include "content/public/common/content_client.h"
18 #include "jni/MediaResourceGetter_jni.h" 18 #include "jni/MediaResourceGetter_jni.h"
19 #include "net/cookies/cookie_monster.h" 19 #include "net/cookies/cookie_monster.h"
20 #include "net/cookies/cookie_store.h" 20 #include "net/cookies/cookie_store.h"
21 #include "net/url_request/url_request_context.h" 21 #include "net/url_request/url_request_context.h"
22 #include "net/url_request/url_request_context_getter.h" 22 #include "net/url_request/url_request_context_getter.h"
23 #include "url/gurl.h" 23 #include "url/gurl.h"
24 24
25 using base::android::ConvertUTF8ToJavaString;
26 using base::android::ScopedJavaLocalRef;
27
25 namespace content { 28 namespace content {
26 29
27 static void ReturnResultOnUIThread( 30 static void ReturnResultOnUIThread(
28 const base::Callback<void(const std::string&)>& callback, 31 const base::Callback<void(const std::string&)>& callback,
29 const std::string& result) { 32 const std::string& result) {
30 BrowserThread::PostTask( 33 BrowserThread::PostTask(
31 BrowserThread::UI, FROM_HERE, base::Bind(callback, result)); 34 BrowserThread::UI, FROM_HERE, base::Bind(callback, result));
32 } 35 }
33 36
34 // Get the metadata from a media URL. When finished, a task is posted to the UI 37 // Get the metadata from a media URL. When finished, a task is posted to the UI
35 // thread to run the callback function. 38 // thread to run the callback function.
36 static void GetMediaMetadata( 39 static void GetMediaMetadata(
37 const std::string& url, const std::string& cookies, 40 const std::string& url, const std::string& cookies,
41 const std::string& user_agent,
38 const media::MediaResourceGetter::ExtractMediaMetadataCB& callback) { 42 const media::MediaResourceGetter::ExtractMediaMetadataCB& callback) {
39 JNIEnv* env = base::android::AttachCurrentThread(); 43 JNIEnv* env = base::android::AttachCurrentThread();
40 44
41 base::android::ScopedJavaLocalRef<jstring> j_url_string = 45 ScopedJavaLocalRef<jstring> j_url_string = ConvertUTF8ToJavaString(env, url);
42 base::android::ConvertUTF8ToJavaString(env, url); 46 ScopedJavaLocalRef<jstring> j_cookies = ConvertUTF8ToJavaString(env, cookies);
43 base::android::ScopedJavaLocalRef<jstring> j_cookies =
44 base::android::ConvertUTF8ToJavaString(env, cookies);
45 jobject j_context = base::android::GetApplicationContext(); 47 jobject j_context = base::android::GetApplicationContext();
46 base::android::ScopedJavaLocalRef<jobject> j_metadata = 48 ScopedJavaLocalRef<jstring> j_user_agent = ConvertUTF8ToJavaString(
47 Java_MediaResourceGetter_extractMediaMetadata( 49 env, user_agent);
48 env, j_context, j_url_string.obj(), j_cookies.obj()); 50 ScopedJavaLocalRef<jobject> j_metadata =
51 Java_MediaResourceGetter_extractMediaMetadata(env,
52 j_context,
53 j_url_string.obj(),
54 j_cookies.obj(),
55 j_user_agent.obj());
49 BrowserThread::PostTask( 56 BrowserThread::PostTask(
50 BrowserThread::UI, FROM_HERE, 57 BrowserThread::UI, FROM_HERE,
51 base::Bind(callback, base::TimeDelta::FromMilliseconds( 58 base::Bind(callback, base::TimeDelta::FromMilliseconds(
52 Java_MediaMetadata_getDurationInMilliseconds( 59 Java_MediaMetadata_getDurationInMilliseconds(
53 env, j_metadata.obj())), 60 env, j_metadata.obj())),
54 Java_MediaMetadata_getWidth(env, j_metadata.obj()), 61 Java_MediaMetadata_getWidth(env, j_metadata.obj()),
55 Java_MediaMetadata_getHeight(env, j_metadata.obj()), 62 Java_MediaMetadata_getHeight(env, j_metadata.obj()),
56 Java_MediaMetadata_isSuccess(env, j_metadata.obj()))); 63 Java_MediaMetadata_isSuccess(env, j_metadata.obj())));
57 } 64 }
58 65
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 } 261 }
255 262
256 void MediaResourceGetterImpl::GetPlatformPathCallback( 263 void MediaResourceGetterImpl::GetPlatformPathCallback(
257 const GetPlatformPathCB& callback, const std::string& platform_path) { 264 const GetPlatformPathCB& callback, const std::string& platform_path) {
258 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 265 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
259 callback.Run(platform_path); 266 callback.Run(platform_path);
260 } 267 }
261 268
262 void MediaResourceGetterImpl::ExtractMediaMetadata( 269 void MediaResourceGetterImpl::ExtractMediaMetadata(
263 const std::string& url, const std::string& cookies, 270 const std::string& url, const std::string& cookies,
264 const ExtractMediaMetadataCB& callback) { 271 const std::string& user_agent, const ExtractMediaMetadataCB& callback) {
265 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 272 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
266 base::SequencedWorkerPool* pool = content::BrowserThread::GetBlockingPool(); 273 base::SequencedWorkerPool* pool = content::BrowserThread::GetBlockingPool();
267 pool->PostWorkerTask( 274 pool->PostWorkerTask(
268 FROM_HERE, base::Bind(&GetMediaMetadata, url, cookies, callback)); 275 FROM_HERE,
276 base::Bind(&GetMediaMetadata, url, cookies, user_agent, callback));
269 } 277 }
270 278
271 // static 279 // static
272 bool MediaResourceGetterImpl::RegisterMediaResourceGetter(JNIEnv* env) { 280 bool MediaResourceGetterImpl::RegisterMediaResourceGetter(JNIEnv* env) {
273 return RegisterNativesImpl(env); 281 return RegisterNativesImpl(env);
274 } 282 }
275 283
276 } // namespace content 284 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698