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

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: Rebase + comments 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 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);

Powered by Google App Engine
This is Rietveld 408576698