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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java

Issue 2472163003: [CustomTabs] Report the navigation start as absolute time (Closed)
Patch Set: Compute time offset Created 4 years, 1 month 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: 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);

Powered by Google App Engine
This is Rietveld 408576698