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

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

Issue 2231923002: Make GetApplicationContext return a JavaRef. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Also fix not-currently-compiled unit test Created 4 years, 4 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 <utility> 7 #include <utility>
8 8
9 #include "base/android/context_utils.h" 9 #include "base/android/context_utils.h"
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
11 #include "base/android/jni_string.h" 11 #include "base/android/jni_string.h"
12 #include "base/android/scoped_java_ref.h"
12 #include "base/logging.h" 13 #include "base/logging.h"
13 #include "base/metrics/histogram_macros.h" 14 #include "base/metrics/histogram_macros.h"
14 #include "base/strings/string_util.h" 15 #include "base/strings/string_util.h"
15 #include "jni/MediaPlayerBridge_jni.h" 16 #include "jni/MediaPlayerBridge_jni.h"
16 #include "media/base/android/media_common_android.h" 17 #include "media/base/android/media_common_android.h"
17 #include "media/base/android/media_player_manager.h" 18 #include "media/base/android/media_player_manager.h"
18 #include "media/base/android/media_resource_getter.h" 19 #include "media/base/android/media_resource_getter.h"
19 #include "media/base/android/media_url_interceptor.h" 20 #include "media/base/android/media_url_interceptor.h"
20 #include "media/base/timestamp_constants.h" 21 #include "media/base/timestamp_constants.h"
21 22
22 using base::android::ConvertUTF8ToJavaString; 23 using base::android::ConvertUTF8ToJavaString;
23 using base::android::JavaParamRef; 24 using base::android::JavaParamRef;
25 using base::android::JavaRef;
24 using base::android::ScopedJavaLocalRef; 26 using base::android::ScopedJavaLocalRef;
25 27
26 namespace media { 28 namespace media {
27 29
28 namespace { 30 namespace {
29 31
30 enum UMAExitStatus { 32 enum UMAExitStatus {
31 UMA_EXIT_SUCCESS = 0, 33 UMA_EXIT_SUCCESS = 0,
32 UMA_EXIT_ERROR, 34 UMA_EXIT_ERROR,
33 UMA_EXIT_STATUS_MAX = UMA_EXIT_ERROR, 35 UMA_EXIT_STATUS_MAX = UMA_EXIT_ERROR,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 118
117 void MediaPlayerBridge::CreateJavaMediaPlayerBridge() { 119 void MediaPlayerBridge::CreateJavaMediaPlayerBridge() {
118 JNIEnv* env = base::android::AttachCurrentThread(); 120 JNIEnv* env = base::android::AttachCurrentThread();
119 CHECK(env); 121 CHECK(env);
120 122
121 j_media_player_bridge_.Reset(Java_MediaPlayerBridge_create( 123 j_media_player_bridge_.Reset(Java_MediaPlayerBridge_create(
122 env, reinterpret_cast<intptr_t>(this))); 124 env, reinterpret_cast<intptr_t>(this)));
123 125
124 UpdateEffectiveVolume(); 126 UpdateEffectiveVolume();
125 127
126 AttachListener(j_media_player_bridge_.obj()); 128 AttachListener(j_media_player_bridge_);
127 } 129 }
128 130
129 void MediaPlayerBridge::SetDuration(base::TimeDelta duration) { 131 void MediaPlayerBridge::SetDuration(base::TimeDelta duration) {
130 duration_ = duration; 132 duration_ = duration;
131 } 133 }
132 134
133 void MediaPlayerBridge::SetVideoSurface(gl::ScopedJavaSurface surface) { 135 void MediaPlayerBridge::SetVideoSurface(gl::ScopedJavaSurface surface) {
134 surface_ = std::move(surface); 136 surface_ = std::move(surface);
135 137
136 if (j_media_player_bridge_.is_null()) 138 if (j_media_player_bridge_.is_null())
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 if (!Java_MediaPlayerBridge_setDataSourceFromFd( 173 if (!Java_MediaPlayerBridge_setDataSourceFromFd(
172 env, j_media_player_bridge_.obj(), fd, offset, size)) { 174 env, j_media_player_bridge_.obj(), fd, offset, size)) {
173 OnMediaError(MEDIA_ERROR_FORMAT); 175 OnMediaError(MEDIA_ERROR_FORMAT);
174 return; 176 return;
175 } 177 }
176 } else { 178 } else {
177 // Create a Java String for the URL. 179 // Create a Java String for the URL.
178 ScopedJavaLocalRef<jstring> j_url_string = 180 ScopedJavaLocalRef<jstring> j_url_string =
179 ConvertUTF8ToJavaString(env, url); 181 ConvertUTF8ToJavaString(env, url);
180 182
181 jobject j_context = base::android::GetApplicationContext(); 183 const JavaRef<jobject>& j_context = base::android::GetApplicationContext();
182 DCHECK(j_context);
183 184
184 const std::string data_uri_prefix("data:"); 185 const std::string data_uri_prefix("data:");
185 if (base::StartsWith(url, data_uri_prefix, base::CompareCase::SENSITIVE)) { 186 if (base::StartsWith(url, data_uri_prefix, base::CompareCase::SENSITIVE)) {
186 if (!Java_MediaPlayerBridge_setDataUriDataSource( 187 if (!Java_MediaPlayerBridge_setDataUriDataSource(
187 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) { 188 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) {
188 OnMediaError(MEDIA_ERROR_FORMAT); 189 OnMediaError(MEDIA_ERROR_FORMAT);
189 } 190 }
190 return; 191 return;
191 } 192 }
192 193
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 600
600 GURL MediaPlayerBridge::GetUrl() { 601 GURL MediaPlayerBridge::GetUrl() {
601 return url_; 602 return url_;
602 } 603 }
603 604
604 GURL MediaPlayerBridge::GetFirstPartyForCookies() { 605 GURL MediaPlayerBridge::GetFirstPartyForCookies() {
605 return first_party_for_cookies_; 606 return first_party_for_cookies_;
606 } 607 }
607 608
608 } // namespace media 609 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698