Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "content/browser/media/android/dialog_surface_activity_mapper.h" | |
| 6 | |
| 7 // TODO(liberato): browser_media_player_manager only does this if !USE_AURA | |
| 8 #include "content/browser/android/content_view_core_impl.h" | |
| 9 #include "content/browser/frame_host/render_frame_host_impl.h" | |
| 10 #include "content/public/browser/render_process_host.h" | |
| 11 #include "content/public/browser/web_contents.h" | |
| 12 #include "jni/DialogSurfaceActivityMapper_jni.h" | |
| 13 | |
| 14 using namespace content; | |
| 15 | |
| 16 static ScopedJavaLocalRef<jobject> GetContentViewCore( | |
| 17 JNIEnv* env, | |
| 18 const JavaParamRef<jclass>& jcaller, | |
| 19 jint renderHandle, | |
|
watk
2016/07/26 21:34:30
Java side calls this renderer_pid (which I prefer
liberato (no reviews please)
2016/07/26 22:49:15
Done.
| |
| 20 jint renderFrameId) { | |
|
watk
2016/07/26 21:34:30
render_frame_id
liberato (no reviews please)
2016/07/26 22:49:15
Done.
| |
| 21 base::android::ScopedJavaLocalRef<jobject> nullref; | |
| 22 | |
| 23 // Get the id from the handle. | |
|
watk
2016/07/26 21:34:30
Probably worth noting that on android a handle is
liberato (no reviews please)
2016/07/26 22:49:15
Done.
| |
| 24 RenderProcessHost::iterator it = RenderProcessHost::AllHostsIterator(); | |
| 25 int render_process_id = 0; | |
| 26 while (!it.IsAtEnd()) { | |
| 27 if (it.GetCurrentValue()->GetHandle() == renderHandle) { | |
| 28 render_process_id = it.GetCurrentValue()->GetID(); | |
| 29 break; | |
| 30 } | |
| 31 it.Advance(); | |
| 32 } | |
| 33 if (!render_process_id) { | |
| 34 DVLOG(1) << "Cannot find render process for render_process_handle " | |
|
watk
2016/07/26 21:34:30
render_process_handle doesn't exist
liberato (no reviews please)
2016/07/26 22:49:15
Done.
| |
| 35 << renderHandle; | |
| 36 return nullref; | |
| 37 } | |
| 38 | |
| 39 // Get the frame from the id. | |
| 40 RenderFrameHostImpl* frame = | |
| 41 RenderFrameHostImpl::FromID(render_process_id, renderFrameId); | |
| 42 if (!frame) | |
| 43 return nullref; | |
| 44 | |
| 45 WebContents* web_contents = WebContents::FromRenderFrameHost(frame); | |
| 46 if (!web_contents) | |
| 47 return nullref; | |
| 48 | |
| 49 ContentViewCore* cvc = ContentViewCoreImpl::FromWebContents(web_contents); | |
| 50 if (!cvc) | |
| 51 return nullref; | |
| 52 | |
| 53 return base::android::ScopedJavaLocalRef<jobject>(cvc->GetJavaObject()); | |
| 54 } | |
| 55 | |
| 56 namespace content { | |
| 57 | |
|
watk
2016/07/26 21:34:30
asymmetric newline in namespace
liberato (no reviews please)
2016/07/26 22:49:15
Done.
| |
| 58 bool RegisterDialogSurfaceActivityMapper(JNIEnv* env) { | |
| 59 return RegisterNativesImpl(env); | |
| 60 } | |
| 61 } | |
| OLD | NEW |