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

Unified Diff: content/browser/android/text_suggestion_host_android.h

Issue 2931443003: Add support for Android spellcheck menu in Chrome/WebViews (Closed)
Patch Set: Respond to aelias@'s comments Created 3 years, 6 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/android/text_suggestion_host_android.h
diff --git a/content/browser/android/text_suggestion_host_android.h b/content/browser/android/text_suggestion_host_android.h
new file mode 100644
index 0000000000000000000000000000000000000000..829420e55c9b51b2ab2c50a0cfe5f4439d91f9ae
--- /dev/null
+++ b/content/browser/android/text_suggestion_host_android.h
@@ -0,0 +1,70 @@
+// Copyright 2017 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 TEXT_SUGGESTION_HOST_ANDROID_H_
aelias_OOO_until_Jul13 2017/06/20 02:55:03 nit: standard format for this encodes the full pat
+#define TEXT_SUGGESTION_HOST_ANDROID_H_
+
+#include "content/browser/android/render_widget_host_connector.h"
+#include "content/browser/renderer_host/input/timeout_monitor.h"
+#include "third_party/WebKit/public/platform/input_host.mojom.h"
+#include "third_party/WebKit/public/platform/input_messages.mojom.h"
+
+namespace content {
+
+class TextSuggestionHostAndroid : public RenderWidgetHostConnector {
+ public:
+ TextSuggestionHostAndroid(JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj,
+ WebContents* web_contents);
+ ~TextSuggestionHostAndroid() override;
+
+ // RenderWidgetHostConnector implementation.
+ void UpdateRenderProcessConnection(
+ RenderWidgetHostViewAndroid* old_rwhva,
+ RenderWidgetHostViewAndroid* new_rhwva) override;
+
+ // Called from Java -> native
+ void ApplySpellCheckSuggestion(
+ JNIEnv*,
+ const base::android::JavaParamRef<jobject>&,
+ const base::android::JavaParamRef<jstring>& replacement);
+ void DeleteActiveSuggestionRange(JNIEnv*,
+ const base::android::JavaParamRef<jobject>&);
+ void NewWordAddedToDictionary(
+ JNIEnv*,
+ const base::android::JavaParamRef<jobject>&,
+ const base::android::JavaParamRef<jstring>& word);
+ void SuggestionMenuClosed(JNIEnv*,
+ const base::android::JavaParamRef<jobject>&);
+
+ // Called from native -> Java
+ void ShowSpellCheckSuggestionMenu(
+ double caret_x,
+ double caret_y,
+ const std::string& marked_text,
+ const std::vector<blink::mojom::SpellCheckSuggestionPtr>& suggestions);
+
+ // Other methods
+ void FocusedNodeChanged();
+
+ void StartSpellCheckMenuTimer();
+ void StopSpellCheckMenuTimer();
+
+ private:
+ RenderFrameHost* GetFocusedFrame();
+ const blink::mojom::TextSuggestionBackendPtr& GetTextSuggestionBackend();
+ void OnSpellCheckMenuTimeout();
+
+ // Current RenderWidgetHostView connected to this instance. Can be null.
+ RenderWidgetHostViewAndroid* rwhva_;
+ JavaObjectWeakGlobalRef java_text_suggestion_host_;
+ blink::mojom::TextSuggestionBackendPtr text_suggestion_backend_;
+ TimeoutMonitor spellcheck_menu_timeout_;
+};
+
+bool RegisterTextSuggestionHost(JNIEnv* env);
+
+} // namespace content
+
+#endif // TEXT_SUGGESTION_HOST_ANDROID_H_

Powered by Google App Engine
This is Rietveld 408576698