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

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

Issue 2139243003: customtabs: Send time to first contentful paint to the caller. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 4 years, 5 months 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
index d29d305fbe93421ee8de7a180eb26cd7ae8f3524..3a47d2d33f77136237c3c085f6341eef0f45c420 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
@@ -44,6 +44,7 @@ import org.chromium.chrome.browser.compositor.layouts.LayoutManagerDocument;
import org.chromium.chrome.browser.datausage.DataUseTabUIManager;
import org.chromium.chrome.browser.document.ChromeLauncherActivity;
import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl;
+import org.chromium.chrome.browser.metrics.PageLoadMetrics;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.pageinfo.WebsiteSettingsPopup;
import org.chromium.chrome.browser.rappor.RapporServiceBridge;
@@ -97,15 +98,40 @@ public class CustomTabActivity extends ChromeActivity {
private String mPrerenderedUrl;
private boolean mHasPrerendered;
- // Only the normal tab model is observed because there is no icognito tabmodel in Custom Tabs.
+ private static class PageLoadMetricsObserver implements PageLoadMetrics.Observer {
+ private final CustomTabsConnection mConnection;
+ private final CustomTabsSessionToken mSession;
+ private final WebContents mWebContents;
+
+ public PageLoadMetricsObserver(CustomTabsConnection connection,
+ CustomTabsSessionToken session, WebContents webContents) {
+ mConnection = connection;
+ mSession = session;
+ mWebContents = webContents;
+ }
+
+ @Override
+ public void onFirstContentfulPaint(WebContents webContents, long firstContentfulPaintMs) {
+ if (webContents != mWebContents) return;
+
+ mConnection.notifyPageLoadMetric(
+ mSession, PageLoadMetrics.FIRST_CONTENTFUL_PAINT, firstContentfulPaintMs);
+ }
+ }
+
+ private PageLoadMetricsObserver mMetricsObserver;
+
+ // Only the normal tab model is observed because there is no incognito tabmodel in Custom Tabs.
private TabModelObserver mTabModelObserver = new EmptyTabModelObserver() {
@Override
public void didAddTab(Tab tab, TabLaunchType type) {
+ PageLoadMetrics.addObserver(mMetricsObserver);
tab.addObserver(mTabObserver);
}
@Override
public void didCloseTab(int tabId, boolean incognito) {
+ PageLoadMetrics.removeObserver(mMetricsObserver);
// Finish the activity after we intent out.
if (getTabModelSelector().getCurrentModel().getCount() == 0) finish();
}
@@ -393,6 +419,9 @@ public class CustomTabActivity extends ChromeActivity {
tab.getTabRedirectHandler().updateIntent(getIntent());
tab.getView().requestFocus();
mTabObserver = new CustomTabObserver(getApplication(), mSession);
+
+ mMetricsObserver = new PageLoadMetricsObserver(
+ CustomTabsConnection.getInstance(getApplication()), mSession, webContents);
tab.addObserver(mTabObserver);
return tab;
}
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698