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

Unified Diff: content/browser/renderer_host/ime_adapter_android.cc

Issue 2653283002: Route IME Events to Focused RenderWidgets (Android) (Closed)
Patch Set: Created 3 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/ime_adapter_android.cc
diff --git a/content/browser/renderer_host/ime_adapter_android.cc b/content/browser/renderer_host/ime_adapter_android.cc
index 3a7d18b94da7ce41b8a4981e98e7d87b3eda70cc..5815f81465a54eb9a57dd2eeb338a515569d02f0 100644
--- a/content/browser/renderer_host/ime_adapter_android.cc
+++ b/content/browser/renderer_host/ime_adapter_android.cc
@@ -142,7 +142,7 @@ void ImeAdapterAndroid::SetComposingText(JNIEnv* env,
const JavaParamRef<jobject>& text,
const JavaParamRef<jstring>& text_str,
int relative_cursor_pos) {
- RenderWidgetHostImpl* rwhi = GetRenderWidgetHostImpl();
+ RenderWidgetHostImpl* rwhi = GetFocusedWidget();
if (!rwhi)
return;
@@ -172,7 +172,7 @@ void ImeAdapterAndroid::CommitText(JNIEnv* env,
const JavaParamRef<jobject>& text,
const JavaParamRef<jstring>& text_str,
int relative_cursor_pos) {
- RenderWidgetHostImpl* rwhi = GetRenderWidgetHostImpl();
+ RenderWidgetHostImpl* rwhi = GetFocusedWidget();
if (!rwhi)
return;
@@ -195,7 +195,7 @@ void ImeAdapterAndroid::CommitText(JNIEnv* env,
void ImeAdapterAndroid::FinishComposingText(JNIEnv* env,
const JavaParamRef<jobject>&) {
- RenderWidgetHostImpl* rwhi = GetRenderWidgetHostImpl();
+ RenderWidgetHostImpl* rwhi = GetFocusedWidget();
if (!rwhi)
return;
@@ -288,7 +288,7 @@ void ImeAdapterAndroid::DeleteSurroundingText(JNIEnv*,
bool ImeAdapterAndroid::RequestTextInputStateUpdate(
JNIEnv* env,
const JavaParamRef<jobject>&) {
- RenderWidgetHostImpl* rwhi = GetRenderWidgetHostImpl();
+ RenderWidgetHostImpl* rwhi = GetFocusedWidget();
if (!rwhi)
return false;
rwhi->Send(new InputMsg_RequestTextInputStateUpdate(rwhi->GetRoutingID()));
@@ -300,7 +300,7 @@ void ImeAdapterAndroid::RequestCursorUpdate(
const base::android::JavaParamRef<jobject>& obj,
bool immediate_request,
bool monitor_request) {
- RenderWidgetHostImpl* rwhi = GetRenderWidgetHostImpl();
+ RenderWidgetHostImpl* rwhi = GetFocusedWidget();
if (!rwhi)
return;
rwhi->Send(new InputMsg_RequestCompositionUpdate(
@@ -312,7 +312,7 @@ void ImeAdapterAndroid::ResetImeAdapter(JNIEnv* env,
java_ime_adapter_.reset();
}
-RenderWidgetHostImpl* ImeAdapterAndroid::GetRenderWidgetHostImpl() {
+RenderWidgetHostImpl* ImeAdapterAndroid::GetPageRenderWidgetHostImpl() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK(rwhva_);
RenderWidgetHost* rwh = rwhva_->GetRenderWidgetHost();
Charlie Reis 2017/01/25 22:00:22 Isn't this the RWH associated with RenderWidgetHos
EhsanK 2017/01/26 19:16:29 I think |rwhva_| is always a RenderWidgetHostViewA
Charlie Reis 2017/01/27 01:07:22 Ah yes, I was confused about how RWHVs work (with
EhsanK 2017/01/27 16:16:46 Acknowledged.
@@ -322,8 +322,14 @@ RenderWidgetHostImpl* ImeAdapterAndroid::GetRenderWidgetHostImpl() {
return RenderWidgetHostImpl::From(rwh);
}
+RenderWidgetHostImpl* ImeAdapterAndroid::GetFocusedWidget() {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
EhsanK 2017/01/26 19:16:29 If it wasn't for this threading DCHECK, I could re
Charlie Reis 2017/01/27 01:07:22 That DCHECK isn't strictly necessary, but given th
EhsanK 2017/01/27 16:16:46 Acknowledged.
+ DCHECK(rwhva_);
EhsanK 2017/01/25 19:27:47 This DCHECK here and everywhere else in this file
Charlie Reis 2017/01/25 22:00:22 Looks like the only previous use of it is in GetPa
EhsanK 2017/01/26 19:16:29 Acknowledged.
+ return rwhva_->GetFocusedWidget();
Charlie Reis 2017/01/25 22:00:22 I'm getting confused looking at RenderWidgetHostVi
EhsanK 2017/01/26 19:16:29 Since |rwhva_| is a RenderWidgetHostViewAndroid an
Charlie Reis 2017/01/27 01:07:22 Thanks-- that was the same mixup I had above.
EhsanK 2017/01/27 16:16:47 Acknowledged.
+}
+
RenderFrameHost* ImeAdapterAndroid::GetFocusedFrame() {
- RenderWidgetHostImpl* rwh = GetRenderWidgetHostImpl();
+ RenderWidgetHostImpl* rwh = GetPageRenderWidgetHostImpl();
Charlie Reis 2017/01/25 22:00:22 What's the reason for GetFocusedFrame() use GetPag
EhsanK 2017/01/26 19:16:29 I don't think we can get to RenderFrameHostImpl fr
Charlie Reis 2017/01/27 01:07:21 Ok.
EhsanK 2017/01/27 16:16:47 Acknowledged.
if (!rwh)
return nullptr;
RenderViewHost* rvh = RenderViewHost::From(rwh);
@@ -338,7 +344,7 @@ RenderFrameHost* ImeAdapterAndroid::GetFocusedFrame() {
}
WebContents* ImeAdapterAndroid::GetWebContents() {
- RenderWidgetHostImpl* rwh = GetRenderWidgetHostImpl();
+ RenderWidgetHostImpl* rwh = GetPageRenderWidgetHostImpl();
Charlie Reis 2017/01/25 22:00:22 Again, just wondering whether we need GetPageRende
EhsanK 2017/01/26 19:16:29 We actually don't since RenderWidgetHostImpl::From
Charlie Reis 2017/01/27 01:07:21 Sure.
EhsanK 2017/01/27 16:16:46 Acknowledged.
if (!rwh)
return nullptr;
return WebContents::FromRenderViewHost(RenderViewHost::From(rwh));

Powered by Google App Engine
This is Rietveld 408576698