| Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
| index 0b235af88a79661c00e1e37ae0e860939c802d01..c33886060342debc75215f4a5fd4ab24bbee9674 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
| @@ -19,6 +19,7 @@ import android.os.Build;
|
| import android.os.Bundle;
|
| import android.os.Process;
|
| import android.os.StrictMode;
|
| +import android.os.SystemClock;
|
| import android.support.customtabs.CustomTabsCallback;
|
| import android.support.customtabs.CustomTabsIntent;
|
| import android.support.customtabs.CustomTabsService;
|
| @@ -30,6 +31,7 @@ import org.chromium.base.CommandLine;
|
| import org.chromium.base.Log;
|
| import org.chromium.base.SysUtils;
|
| import org.chromium.base.ThreadUtils;
|
| +import org.chromium.base.TimeUtils;
|
| import org.chromium.base.VisibleForTesting;
|
| import org.chromium.base.annotations.SuppressFBWarnings;
|
| import org.chromium.base.library_loader.ProcessInitException;
|
| @@ -41,6 +43,7 @@ import org.chromium.chrome.browser.IntentHandler;
|
| import org.chromium.chrome.browser.WarmupManager;
|
| import org.chromium.chrome.browser.device.DeviceClassManager;
|
| import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
|
| +import org.chromium.chrome.browser.metrics.PageLoadMetrics;
|
| import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
| import org.chromium.chrome.browser.preferences.PrefServiceBridge;
|
| import org.chromium.chrome.browser.prerender.ExternalPrerenderHandler;
|
| @@ -667,12 +670,21 @@ public class CustomTabsConnection {
|
| *
|
| * @param session Session identifier.
|
| * @param metricName Name of the page load metric.
|
| + * @param navigationStartTick Absolute navigation start time, as TimeTicks.
|
| * @param offsetMs Offset in ms from navigationStart.
|
| */
|
| - boolean notifyPageLoadMetric(CustomTabsSessionToken session, String metricName, long offsetMs) {
|
| + boolean notifyPageLoadMetric(CustomTabsSessionToken session, String metricName,
|
| + long navigationStartTick, long offsetMs) {
|
| CustomTabsCallback callback = mClientManager.getCallbackForSession(session);
|
| if (callback == null) return false;
|
| +
|
| + // Convert navigationstart from time ticks to uptimeMillis.
|
| + long nativeNowUs = TimeUtils.nativeGetTimeTicksNowUs();
|
| + long javaNowUs = SystemClock.uptimeMillis() * 1000;
|
| + long offsetTick = nativeNowUs - javaNowUs;
|
| +
|
| Bundle args = new Bundle();
|
| + args.putLong(PageLoadMetrics.NAVIGATION_START, (navigationStartTick - offsetTick) / 1000);
|
| args.putLong(metricName, offsetMs);
|
| try {
|
| callback.extraCallback(PAGE_LOAD_METRICS_CALLBACK, args);
|
|
|