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

Unified Diff: blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java

Issue 1962393004: Added a debug info UI for Blimp (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Kevin's comments Created 4 years, 7 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: blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java
diff --git a/blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java b/blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java
index d16cbc2703d2178dfc79b1e6ca870fb61721f499..e5c17656459fe9e2210c0d4e84f847bd1958497b 100644
--- a/blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java
+++ b/blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java
@@ -47,12 +47,29 @@ public class BlimpClientSession {
* and their explanations.
*/
void onDisconnected(String reason);
+
+ /**
+ * Called to update the debug UI about network statistics for the current web page.
+ * @param received Number of bytes received.
+ * @param sent Number of bytes sent.
+ * @param commit Number of commits completed.
+ */
+ void updateDebugInfo(int received, int sent, int commits);
}
private final String mAssignerUrl;
private final List<ConnectionObserver> mObservers;
private long mNativeBlimpClientSessionAndroidPtr;
+ // Flag indicating whether debug metrics are currently being displayed.
+ private boolean mStatisticsEnabled = false;
+ private int mSentOffset;
+ private int mReceivedOffset;
Kevin M 2016/05/20 01:02:02 Offset => Base?
shaktisahu 2016/05/22 22:36:55 Done.
+ private int mCommitsOffset;
+ private int mSent;
+ private int mReceived;
+ private int mCommits;
+
public BlimpClientSession(String assignerUrl) {
mAssignerUrl = assignerUrl;
mObservers = new ArrayList<ConnectionObserver>();
@@ -162,7 +179,58 @@ public class BlimpClientSession {
return mNativeBlimpClientSessionAndroidPtr;
}
+ /**
+ * Makes a JNI call to pull the debug metrics which are asynchronously returned on callback
+ * function updateDebugStats.
+ */
+ public void getDebugStats() {
+ if (mNativeBlimpClientSessionAndroidPtr == 0) return;
+ nativeGetDebugInfo(mNativeBlimpClientSessionAndroidPtr);
+ }
+
+ /**
+ * Updates the debug metrics on the UI. Since metrics can be turned on/off any time from the UI,
+ * a snapshot of the metrics is kept the first time it is enabled and on subsequent calls this
+ * offset is subtracted from the new values to show only the difference.
+ * @param received Bytes received.
+ * @param sent Bytes sent.
+ * @param commits Commits completed.
+ */
+ @CalledByNative
+ private void updateDebugStats(int received, int sent, int commits) {
+ mReceived = received;
+ mSent = sent;
+ mCommits = commits;
+ if (!mStatisticsEnabled) {
+ mReceivedOffset = received;
Kevin M 2016/05/20 01:02:02 We should probably push the offset and resetting f
shaktisahu 2016/05/22 22:36:55 Yes, I am moving it to BlimpRendererActivity to be
+ mSentOffset = sent;
+ mCommitsOffset = commits;
+ mStatisticsEnabled = true;
+ }
+ for (ConnectionObserver observer : mObservers) {
+ observer.updateDebugInfo(
+ mReceived - mReceivedOffset, mSent - mSentOffset, mCommits - mCommitsOffset);
+ }
+ }
+
+ /**
+ * Resets the metrics. Currently used for displaying per navigation metrics.
+ */
+ public void resetDebugStats() {
+ mReceivedOffset = mReceived;
+ mSentOffset = mSent;
+ mCommitsOffset = mCommits;
+ }
+
+ /**
+ * Indicates that debug UI showing stats is not visible anymore.
+ */
+ public void disableDebugStats() {
+ mStatisticsEnabled = false;
Kevin M 2016/05/20 01:02:02 What's the use case for statisticsEnabled? If we a
shaktisahu 2016/05/22 22:36:55 Actually this is a flag to the base value of the m
+ }
+
private native long nativeInit(String assignerUrl);
private native void nativeConnect(long nativeBlimpClientSessionAndroid, String token);
private native void nativeDestroy(long nativeBlimpClientSessionAndroid);
+ private native void nativeGetDebugInfo(long nativeBlimpClientSessionAndroid);
}

Powered by Google App Engine
This is Rietveld 408576698