commit c95e5a1691708d8e5121ccfc7df4caf8a1718e1f
parent 9663df298d724588d9bdb07c8a460105234d38b4
Author: Makoto Kato <m_kato@ga2.so-net.ne.jp>
Date: Fri, 24 Oct 2025 06:13:57 +0000
Bug 1994474 - Part 2. Use MOZ_LOG for GeckoEditable on Nightly. r=geckoview-reviewers,tcampbell
To debug and report bugs, I would like to add a logging support for
input things on GeckoView. `"IMEHnadler"` is common name for logging
IME code on all platforms.
This is Nightly only. So no effect on release and beta.
Differential Revision: https://phabricator.services.mozilla.com/D269354
Diffstat:
2 files changed, 45 insertions(+), 26 deletions(-)
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoEditable.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoEditable.java
@@ -48,6 +48,7 @@ import org.mozilla.gecko.GeckoEditableChild;
import org.mozilla.gecko.IGeckoEditableChild;
import org.mozilla.gecko.IGeckoEditableParent;
import org.mozilla.gecko.InputMethods;
+import org.mozilla.gecko.MozLog;
import org.mozilla.gecko.util.GeckoBundle;
import org.mozilla.gecko.util.ThreadUtils;
import org.mozilla.gecko.util.ThreadUtils.AssertBehavior;
@@ -63,7 +64,10 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
implements InvocationHandler, Editable, SessionTextInput.EditableClient {
private static final boolean DEBUG = false;
+ private static final boolean LOGGING = BuildConfig.NIGHTLY_BUILD;
private static final String LOGTAG = "GeckoEditable";
+ private static final String MOZLOGTAG = "IMEHandler";
+
private static final long DISMISS_VKB_DELAY_MS = 100;
// Filters to implement Editable's filtering functionality
@@ -577,7 +581,11 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
private void icOfferAction(final Action action) {
if (DEBUG) {
assertOnIcThread();
- Log.d(LOGTAG, "offer: Action(" + getConstantName(Action.class, "TYPE_", action.mType) + ")");
+ }
+ if (LOGGING) {
+ final StringBuilder sb = new StringBuilder("offer: Action(");
+ sb.append(getConstantName(Action.class, "TYPE_", action.mType)).append(")");
+ MozLog.d(MOZLOGTAG, sb.toString());
}
switch (action.mType) {
@@ -952,10 +960,10 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
throws RemoteException {
if (DEBUG) {
assertOnIcThread();
+ }
+ if (LOGGING) {
final StringBuilder sb = new StringBuilder("icSendComposition(");
- sb.append("\"")
- .append(text)
- .append("\"")
+ debugAppend(sb, text)
.append(", range = ")
.append(composingStart)
.append("-")
@@ -965,7 +973,7 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
.append("-")
.append(selEnd)
.append(")");
- Log.d(LOGTAG, sb.toString());
+ MozLog.d(MOZLOGTAG, sb.toString());
}
if (selEnd >= composingStart && selEnd <= composingEnd) {
@@ -1002,8 +1010,14 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
}
final CharacterStyle[] styleSpans = text.getSpans(rangeStart, rangeEnd, CharacterStyle.class);
- if (DEBUG) {
- Log.d(LOGTAG, " found " + styleSpans.length + " spans @ " + rangeStart + "-" + rangeEnd);
+ if (LOGGING) {
+ final StringBuilder sb = new StringBuilder(" found ");
+ sb.append(styleSpans.length)
+ .append(" spans @ ")
+ .append(rangeStart)
+ .append("-")
+ .append(rangeEnd);
+ MozLog.d(MOZLOGTAG, sb.toString());
}
if (styleSpans.length == 0) {
@@ -1063,17 +1077,16 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
rangeLineColor);
rangeStart = rangeEnd;
- if (DEBUG) {
- Log.d(
- LOGTAG,
- " added "
- + rangeType
- + " : "
- + Integer.toHexString(rangeStyles)
- + " : "
- + Integer.toHexString(rangeForeColor)
- + " : "
- + Integer.toHexString(rangeBackColor));
+ if (LOGGING) {
+ final StringBuilder sb = new StringBuilder(" added ");
+ sb.append(rangeType)
+ .append(" : ")
+ .append(Integer.toHexString(rangeStyles))
+ .append(" : ")
+ .append(Integer.toHexString(rangeForeColor))
+ .append(" : ")
+ .append(Integer.toHexString(rangeBackColor));
+ MozLog.d(MOZLOGTAG, sb.toString());
}
} while (rangeStart < composingEnd);
}
@@ -1119,7 +1132,11 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
private void sendKeyEvent(final @NonNull KeyEvent event, final int action, final int metaState) {
if (DEBUG) {
assertOnIcThread();
- Log.d(LOGTAG, "sendKeyEvent(" + event + ", " + action + ", " + metaState + ")");
+ }
+ if (LOGGING) {
+ final StringBuilder sb = new StringBuilder("sendKeyEvent(");
+ sb.append(event).append(", ").append(action).append(", ").append(metaState).append(")");
+ MozLog.d(MOZLOGTAG, sb.toString());
}
/*
We are actually sending two events to Gecko here,
@@ -1442,8 +1459,10 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
Log.w(LOGTAG, "Mismatched reply");
return;
}
- if (DEBUG) {
- Log.d(LOGTAG, "reply: Action(" + getConstantName(Action.class, "TYPE_", action.mType) + ")");
+ if (LOGGING) {
+ final StringBuilder sb = new StringBuilder("reply: Action(");
+ sb.append(getConstantName(Action.class, "TYPE_", action.mType)).append(")");
+ MozLog.d(MOZLOGTAG, sb.toString());
}
switch (action.mType) {
case Action.TYPE_REPLACE_TEXT:
@@ -2078,7 +2097,7 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
public void onSelectionChange(
final IBinder token, final int start, final int end, final boolean causedOnlyByComposition) {
// On Gecko or binder thread.
- if (DEBUG) {
+ if (LOGGING) {
final StringBuilder sb = new StringBuilder("onSelectionChange(");
sb.append(start)
.append(", ")
@@ -2086,7 +2105,7 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
.append(", ")
.append(causedOnlyByComposition)
.append(")");
- Log.d(LOGTAG, sb.toString());
+ MozLog.d(MOZLOGTAG, sb.toString());
}
if (!binderCheckToken(token, /* allowNull */ false)) {
@@ -2142,7 +2161,7 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
final int unboundedOldEnd,
final boolean causedOnlyByComposition) {
// On Gecko or binder thread.
- if (DEBUG) {
+ if (LOGGING) {
final StringBuilder sb = new StringBuilder("onTextChange(");
debugAppend(sb, text)
.append(", ")
@@ -2150,7 +2169,7 @@ import org.mozilla.geckoview.SessionTextInput.EditableListener.IMEState;
.append(", ")
.append(unboundedOldEnd)
.append(")");
- Log.d(LOGTAG, sb.toString());
+ MozLog.d(MOZLOGTAG, sb.toString());
}
if (!binderCheckToken(token, /* allowNull */ false)) {
diff --git a/widget/android/GeckoEditableSupport.cpp b/widget/android/GeckoEditableSupport.cpp
@@ -36,7 +36,7 @@
#include <android/log.h>
#ifdef NIGHTLY_BUILD
-static mozilla::LazyLogModule sGeckoEditableSupportLog("GeckoEditableSupport");
+static mozilla::LazyLogModule sGeckoEditableSupportLog("IMEHandler");
# define ALOGIME(...) \
MOZ_LOG(sGeckoEditableSupportLog, LogLevel::Debug, (__VA_ARGS__))
#else