Chromium Code Reviews| 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 8a586b14d79574446bd4eed4ac43f8c9d10a8883..1e9d96e99496c506062026cabdef509c9d3a343b 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; |
| @@ -680,12 +683,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; |
|
Bernhard Bauer
2016/11/18 11:53:44
This offset will be ever so slightly different eve
droger
2016/11/18 13:43:39
In practice yes, and the offset will also be 0, be
Bernhard Bauer
2016/11/18 14:07:00
Almost 0, because we call the two methods one afte
droger
2016/11/18 15:14:09
Right, but I don't understand the point you're try
|
| + |
| Bundle args = new Bundle(); |
| + args.putLong(PageLoadMetrics.NAVIGATION_START, (navigationStartTick - offsetTick) / 1000); |
| args.putLong(metricName, offsetMs); |
| try { |
| callback.extraCallback(PAGE_LOAD_METRICS_CALLBACK, args); |