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 "content/browser/android/content_view_core_impl.h" | 5 #include "content/browser/android/content_view_core_impl.h" |
6 | 6 |
7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
8 #include "base/android/jni_array.h" | 8 #include "base/android/jni_array.h" |
9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
10 #include "base/android/scoped_java_ref.h" | 10 #include "base/android/scoped_java_ref.h" |
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
595 JNIEnv* env = AttachCurrentThread(); | 595 JNIEnv* env = AttachCurrentThread(); |
596 | 596 |
597 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 597 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
598 if (obj.is_null()) | 598 if (obj.is_null()) |
599 return; | 599 return; |
600 | 600 |
601 Java_ContentViewCore_requestExternalVideoSurface( | 601 Java_ContentViewCore_requestExternalVideoSurface( |
602 env, obj.obj(), static_cast<jint>(player_id)); | 602 env, obj.obj(), static_cast<jint>(player_id)); |
603 } | 603 } |
604 | 604 |
605 void ContentViewCoreImpl::NotifyGeometryChange(int player_id, | |
606 const gfx::RectF& rect) { | |
607 JNIEnv* env = AttachCurrentThread(); | |
Yaron
2013/04/17 17:30:00
Can we guard this too for GOOGLE_TV?
wonsik
2013/04/18 05:13:21
Guarding it causes build failure for non-GoogleTV
scherkus (not reviewing)
2013/04/18 17:55:21
Hmm... and there's no way to only generate the Jav
Yaron
2013/04/18 18:13:52
Ahh, right. Otherwise Java_ContentViewCore_notifyG
| |
608 | |
609 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | |
610 if (obj.is_null()) | |
611 return; | |
612 | |
613 Java_ContentViewCore_notifyGeometryChange(env, | |
614 obj.obj(), | |
615 static_cast<jint>(player_id), | |
616 static_cast<jfloat>(rect.x()), | |
617 static_cast<jfloat>(rect.y()), | |
618 static_cast<jfloat>(rect.width()), | |
619 static_cast<jfloat>(rect.height())); | |
620 } | |
621 | |
605 gfx::Size ContentViewCoreImpl::GetPhysicalBackingSize() const { | 622 gfx::Size ContentViewCoreImpl::GetPhysicalBackingSize() const { |
606 JNIEnv* env = AttachCurrentThread(); | 623 JNIEnv* env = AttachCurrentThread(); |
607 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); | 624 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); |
608 if (j_obj.is_null()) | 625 if (j_obj.is_null()) |
609 return gfx::Size(); | 626 return gfx::Size(); |
610 return gfx::Size( | 627 return gfx::Size( |
611 Java_ContentViewCore_getPhysicalBackingWidthPix(env, j_obj.obj()), | 628 Java_ContentViewCore_getPhysicalBackingWidthPix(env, j_obj.obj()), |
612 Java_ContentViewCore_getPhysicalBackingHeightPix(env, j_obj.obj())); | 629 Java_ContentViewCore_getPhysicalBackingHeightPix(env, j_obj.obj())); |
613 } | 630 } |
614 | 631 |
(...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1216 jobject obj) { | 1233 jobject obj) { |
1217 bool had_pending_frame = renderer_frame_pending_; | 1234 bool had_pending_frame = renderer_frame_pending_; |
1218 renderer_frame_pending_ = false; | 1235 renderer_frame_pending_ = false; |
1219 return had_pending_frame; | 1236 return had_pending_frame; |
1220 } | 1237 } |
1221 | 1238 |
1222 void ContentViewCoreImpl::AttachExternalVideoSurface(JNIEnv* env, | 1239 void ContentViewCoreImpl::AttachExternalVideoSurface(JNIEnv* env, |
1223 jobject obj, | 1240 jobject obj, |
1224 jint player_id, | 1241 jint player_id, |
1225 jobject jsurface) { | 1242 jobject jsurface) { |
1243 #if defined(GOOGLE_TV) | |
scherkus (not reviewing)
2013/04/17 18:12:41
if we #ifdef out the declarations in the .h these
wonsik
2013/04/18 05:13:21
Please see my comment in the .h file.
| |
1226 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>( | 1244 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>( |
1227 web_contents_->GetRenderViewHost()); | 1245 web_contents_->GetRenderViewHost()); |
1228 if (rvhi && rvhi->media_player_manager()) { | 1246 if (rvhi && rvhi->media_player_manager()) { |
1229 rvhi->media_player_manager()->AttachExternalVideoSurface( | 1247 rvhi->media_player_manager()->AttachExternalVideoSurface( |
1230 static_cast<int>(player_id), jsurface); | 1248 static_cast<int>(player_id), jsurface); |
1231 } | 1249 } |
1250 #endif | |
1232 } | 1251 } |
1233 | 1252 |
1234 void ContentViewCoreImpl::DetachExternalVideoSurface(JNIEnv* env, | 1253 void ContentViewCoreImpl::DetachExternalVideoSurface(JNIEnv* env, |
1235 jobject obj, | 1254 jobject obj, |
1236 jint player_id) { | 1255 jint player_id) { |
1256 #if defined(GOOGLE_TV) | |
1237 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>( | 1257 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>( |
1238 web_contents_->GetRenderViewHost()); | 1258 web_contents_->GetRenderViewHost()); |
1239 if (rvhi && rvhi->media_player_manager()) { | 1259 if (rvhi && rvhi->media_player_manager()) { |
1240 rvhi->media_player_manager()->DetachExternalVideoSurface( | 1260 rvhi->media_player_manager()->DetachExternalVideoSurface( |
1241 static_cast<int>(player_id)); | 1261 static_cast<int>(player_id)); |
1242 } | 1262 } |
1263 #endif | |
1243 } | 1264 } |
1244 | 1265 |
1245 jboolean ContentViewCoreImpl::IsRenderWidgetHostViewReady(JNIEnv* env, | 1266 jboolean ContentViewCoreImpl::IsRenderWidgetHostViewReady(JNIEnv* env, |
1246 jobject obj) { | 1267 jobject obj) { |
1247 RenderWidgetHostViewAndroid* view = GetRenderWidgetHostViewAndroid(); | 1268 RenderWidgetHostViewAndroid* view = GetRenderWidgetHostViewAndroid(); |
1248 return view && view->HasValidFrame(); | 1269 return view && view->HasValidFrame(); |
1249 } | 1270 } |
1250 | 1271 |
1251 void ContentViewCoreImpl::ExitFullscreen(JNIEnv* env, jobject obj) { | 1272 void ContentViewCoreImpl::ExitFullscreen(JNIEnv* env, jobject obj) { |
1252 RenderViewHost* host = web_contents_->GetRenderViewHost(); | 1273 RenderViewHost* host = web_contents_->GetRenderViewHost(); |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1479 reinterpret_cast<WebContents*>(native_web_contents), | 1500 reinterpret_cast<WebContents*>(native_web_contents), |
1480 reinterpret_cast<ui::WindowAndroid*>(native_window)); | 1501 reinterpret_cast<ui::WindowAndroid*>(native_window)); |
1481 return reinterpret_cast<jint>(view); | 1502 return reinterpret_cast<jint>(view); |
1482 } | 1503 } |
1483 | 1504 |
1484 bool RegisterContentViewCore(JNIEnv* env) { | 1505 bool RegisterContentViewCore(JNIEnv* env) { |
1485 return RegisterNativesImpl(env); | 1506 return RegisterNativesImpl(env); |
1486 } | 1507 } |
1487 | 1508 |
1488 } // namespace content | 1509 } // namespace content |
OLD | NEW |