| Index: chromecast/browser/android/external_video_surface_container_impl.cc
|
| diff --git a/chromecast/browser/android/external_video_surface_container_impl.cc b/chromecast/browser/android/external_video_surface_container_impl.cc
|
| index e1f7e8bdab0e85916d16b713f9e89060a6ff6aa4..e830575e1ac79a47e60d57a06c63843702e59fd0 100644
|
| --- a/chromecast/browser/android/external_video_surface_container_impl.cc
|
| +++ b/chromecast/browser/android/external_video_surface_container_impl.cc
|
| @@ -11,17 +11,24 @@
|
|
|
| namespace chromecast {
|
| namespace shell {
|
| -
|
| -ExternalVideoSurfaceContainerImpl::ExternalVideoSurfaceContainerImpl(
|
| +// static
|
| +ExternalVideoSurfaceContainerImpl* ExternalVideoSurfaceContainerImpl::Create(
|
| content::WebContents* web_contents) {
|
| content::ContentViewCore* cvc =
|
| content::ContentViewCore::FromWebContents(web_contents);
|
| - if (cvc) {
|
| - JNIEnv* env = base::android::AttachCurrentThread();
|
| - jobject_.Reset(
|
| - Java_ExternalVideoSurfaceContainer_create(
|
| - env, reinterpret_cast<intptr_t>(this), cvc->GetJavaObject().obj()));
|
| - }
|
| + if (!cvc)
|
| + return nullptr;
|
| + base::android::ScopedJavaLocalRef<jobject> jcvc = cvc->GetJavaObject();
|
| + if (jcvc.is_null())
|
| + return nullptr;
|
| + return new ExternalVideoSurfaceContainerImpl(jcvc);
|
| +}
|
| +
|
| +ExternalVideoSurfaceContainerImpl::ExternalVideoSurfaceContainerImpl(
|
| + base::android::ScopedJavaLocalRef<jobject> java_content_view_core) {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + jobject_.Reset(Java_ExternalVideoSurfaceContainer_create(
|
| + env, reinterpret_cast<intptr_t>(this), java_content_view_core.obj()));
|
| }
|
|
|
| ExternalVideoSurfaceContainerImpl::~ExternalVideoSurfaceContainerImpl() {
|
|
|