| Index: components/spellcheck/browser/android/java/src/org/chromium/components/spellcheck/SpellCheckerSessionBridge.java
|
| diff --git a/components/spellcheck/browser/android/java/src/org/chromium/components/spellcheck/SpellCheckerSessionBridge.java b/components/spellcheck/browser/android/java/src/org/chromium/components/spellcheck/SpellCheckerSessionBridge.java
|
| index 0804e1469b36a538356a0e28d92d93875eddc61e..177f12b8ee3be1be72872d605f4dd8b493ced21b 100644
|
| --- a/components/spellcheck/browser/android/java/src/org/chromium/components/spellcheck/SpellCheckerSessionBridge.java
|
| +++ b/components/spellcheck/browser/android/java/src/org/chromium/components/spellcheck/SpellCheckerSessionBridge.java
|
| @@ -5,6 +5,7 @@
|
| package org.chromium.components.spellcheck;
|
|
|
| import android.content.Context;
|
| +import android.os.SystemClock;
|
| import android.view.textservice.SentenceSuggestionsInfo;
|
| import android.view.textservice.SpellCheckerSession;
|
| import android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener;
|
| @@ -23,6 +24,8 @@ import java.util.ArrayList;
|
| public class SpellCheckerSessionBridge implements SpellCheckerSessionListener {
|
| private long mNativeSpellCheckerSessionBridge;
|
| private final SpellCheckerSession mSpellCheckerSession;
|
| + private long mStartMs;
|
| + private long mStopMs;
|
|
|
| /**
|
| * Constructs a SpellCheckerSessionBridge object as well as its SpellCheckerSession object.
|
| @@ -83,6 +86,7 @@ public class SpellCheckerSessionBridge implements SpellCheckerSessionListener {
|
| if (text.endsWith(".")) {
|
| text = text.substring(0, text.length() - 1);
|
| }
|
| + mStartMs = SystemClock.elapsedRealtime();
|
| mSpellCheckerSession.getSentenceSuggestions(new TextInfo[] {new TextInfo(text)}, 0);
|
| }
|
|
|
| @@ -92,6 +96,8 @@ public class SpellCheckerSessionBridge implements SpellCheckerSessionListener {
|
| */
|
| @Override
|
| public void onGetSentenceSuggestions(SentenceSuggestionsInfo[] results) {
|
| + mStopMs = SystemClock.elapsedRealtime();
|
| +
|
| if (mNativeSpellCheckerSessionBridge == 0) {
|
| return;
|
| }
|
| @@ -118,6 +124,7 @@ public class SpellCheckerSessionBridge implements SpellCheckerSessionListener {
|
| }
|
| nativeProcessSpellCheckResults(mNativeSpellCheckerSessionBridge,
|
| convertListToArray(offsets), convertListToArray(lengths));
|
| + nativeRecordLatencyUMA(mNativeSpellCheckerSessionBridge, mStopMs - mStartMs);
|
| }
|
|
|
| /**
|
| @@ -138,4 +145,6 @@ public class SpellCheckerSessionBridge implements SpellCheckerSessionListener {
|
|
|
| private native void nativeProcessSpellCheckResults(
|
| long nativeSpellCheckerSessionBridge, int[] offsets, int[] lengths);
|
| + private native void nativeRecordLatencyUMA(
|
| + long nativeSpellCheckerSessionBridge, long latencyMs);
|
| }
|
|
|