Commit 5b7ca8b4 authored by Bo Liu's avatar Bo Liu Committed by Commit Bot

weblayer: Record Session.TotalDuration

Simple copy of chrome on android's implementation, using the
equivalent activity lifecycle callbacks. All done in java.

Bug: 1143945
Change-Id: Icae399db1c64c5cb872de18f2673270625d7679e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2510371Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Commit-Queue: Bo <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822779}
parent cec7306c
...@@ -8,12 +8,14 @@ import android.app.Activity; ...@@ -8,12 +8,14 @@ import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemClock;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.components.browser_ui.styles.R; import org.chromium.components.browser_ui.styles.R;
import org.chromium.components.embedder_support.application.ClassLoaderContextWrapperFactory; import org.chromium.components.embedder_support.application.ClassLoaderContextWrapperFactory;
import org.chromium.weblayer_private.interfaces.BrowserFragmentArgs; import org.chromium.weblayer_private.interfaces.BrowserFragmentArgs;
...@@ -27,6 +29,9 @@ import org.chromium.weblayer_private.interfaces.StrictModeWorkaround; ...@@ -27,6 +29,9 @@ import org.chromium.weblayer_private.interfaces.StrictModeWorkaround;
* Implementation of RemoteFragmentImpl which forwards logic to BrowserImpl. * Implementation of RemoteFragmentImpl which forwards logic to BrowserImpl.
*/ */
public class BrowserFragmentImpl extends RemoteFragmentImpl { public class BrowserFragmentImpl extends RemoteFragmentImpl {
private static int sResumedCount;
private static long sSessionStartTimeMs;
private final ProfileImpl mProfile; private final ProfileImpl mProfile;
private final String mPersistenceId; private final String mPersistenceId;
...@@ -137,12 +142,19 @@ public class BrowserFragmentImpl extends RemoteFragmentImpl { ...@@ -137,12 +142,19 @@ public class BrowserFragmentImpl extends RemoteFragmentImpl {
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
sResumedCount++;
if (sResumedCount == 1) sSessionStartTimeMs = SystemClock.uptimeMillis();
mBrowser.onFragmentResume(); mBrowser.onFragmentResume();
} }
@Override @Override
public void onPause() { public void onPause() {
super.onPause(); super.onPause();
sResumedCount--;
if (sResumedCount == 0) {
long deltaMs = SystemClock.uptimeMillis() - sSessionStartTimeMs;
RecordHistogram.recordLongTimesHistogram("Session.TotalDuration", deltaMs);
}
mBrowser.onFragmentPause(); mBrowser.onFragmentPause();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment