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

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

Issue 2791603002: Revert of Let ImeAdapterAndroid have the same lifecycle as its Java peer (Closed)
Patch Set: Created 3 years, 9 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.h
diff --git a/content/browser/renderer_host/ime_adapter_android.h b/content/browser/renderer_host/ime_adapter_android.h
new file mode 100644
index 0000000000000000000000000000000000000000..72ab6d3ed3298b683e3aef302472a424f4de310f
--- /dev/null
+++ b/content/browser/renderer_host/ime_adapter_android.h
@@ -0,0 +1,116 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_RENDERER_HOST_IME_ADAPTER_ANDROID_H_
+#define CONTENT_BROWSER_RENDERER_HOST_IME_ADAPTER_ANDROID_H_
+
+#include <jni.h>
+
+#include <vector>
+
+#include "base/android/jni_weak_ref.h"
+#include "base/strings/string16.h"
+#include "content/common/content_export.h"
+#include "ui/gfx/geometry/rect_f.h"
+
+namespace blink {
+
+struct WebCompositionUnderline;
+
+} // namespace blink
+
+namespace content {
+
+class RenderFrameHost;
+class RenderWidgetHostImpl;
+class RenderWidgetHostViewAndroid;
+
+// This class is in charge of dispatching key events from the java side
+// and forward to renderer along with input method results via
+// corresponding host view.
+// Ownership of these objects remains on the native side (see
+// RenderWidgetHostViewAndroid).
+class CONTENT_EXPORT ImeAdapterAndroid {
+ public:
+ explicit ImeAdapterAndroid(RenderWidgetHostViewAndroid* rwhva);
+ ~ImeAdapterAndroid();
+
+ // Called from java -> native
+ bool SendKeyEvent(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>&,
+ const base::android::JavaParamRef<jobject>& original_key_event,
+ int type,
+ int modifiers,
+ jlong time_ms,
+ int key_code,
+ int scan_code,
+ bool is_system_key,
+ int unicode_text);
+ void SetComposingText(JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj,
+ const base::android::JavaParamRef<jobject>& text,
+ const base::android::JavaParamRef<jstring>& text_str,
+ int relative_cursor_pos);
+ void CommitText(JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj,
+ const base::android::JavaParamRef<jobject>& text,
+ const base::android::JavaParamRef<jstring>& text_str,
+ int relative_cursor_pos);
+ void FinishComposingText(JNIEnv* env,
+ const base::android::JavaParamRef<jobject>&);
+ void AttachImeAdapter(
+ JNIEnv*,
+ const base::android::JavaParamRef<jobject>& java_object);
+ void SetEditableSelectionOffsets(JNIEnv*,
+ const base::android::JavaParamRef<jobject>&,
+ int start,
+ int end);
+ void SetComposingRegion(JNIEnv*,
+ const base::android::JavaParamRef<jobject>&,
+ int start,
+ int end);
+ void DeleteSurroundingText(JNIEnv*,
+ const base::android::JavaParamRef<jobject>&,
+ int before,
+ int after);
+ void DeleteSurroundingTextInCodePoints(
+ JNIEnv*,
+ const base::android::JavaParamRef<jobject>&,
+ int before,
+ int after);
+ void ResetImeAdapter(JNIEnv*, const base::android::JavaParamRef<jobject>&);
+ void RequestCursorUpdate(JNIEnv*, const base::android::JavaParamRef<jobject>&,
+ bool immediateRequest, bool monitorRequest);
+ bool RequestTextInputStateUpdate(JNIEnv*,
+ const base::android::JavaParamRef<jobject>&);
+
+ // Called from native -> java
+ void CancelComposition();
+ void FocusedNodeChanged(bool is_editable_node);
+ void SetCharacterBounds(const std::vector<gfx::RectF>& rects);
+
+ base::android::ScopedJavaLocalRef<jobject> java_ime_adapter_for_testing(
+ JNIEnv* env) {
+ return java_ime_adapter_.get(env);
+ }
+
+ private:
+ RenderWidgetHostImpl* GetFocusedWidget();
+ RenderFrameHost* GetFocusedFrame();
+ std::vector<blink::WebCompositionUnderline> GetUnderlinesFromSpans(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj,
+ const base::android::JavaParamRef<jobject>& text,
+ const base::string16& text16);
+
+ RenderWidgetHostViewAndroid* rwhva_;
+ JavaObjectWeakGlobalRef java_ime_adapter_;
+};
+
+bool RegisterImeAdapter(JNIEnv* env);
+
+} // namespace content
+
+#endif // CONTENT_BROWSER_RENDERER_HOST_IME_ADAPTER_ANDROID_H_
« no previous file with comments | « content/browser/android/ime_adapter_android.cc ('k') | content/browser/renderer_host/ime_adapter_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698