Commit faaa0f8c authored by bttk's avatar bttk Committed by Commit Bot

metrics: Refactor CachedMetrics in android_webview/

Bug: 1046181
Change-Id: I0c269a5991701027702fd5011586d66de6192273
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2017912
Commit-Queue: bttk <bttk@chromium.org>
Reviewed-by: default avatarBo <boliu@chromium.org>
Reviewed-by: default avatarEnder <ender@google.com>
Cr-Commit-Position: refs/heads/master@{#743423}
parent 3a05759a
...@@ -66,8 +66,7 @@ import org.chromium.android_webview.gfx.AwDrawFnImpl; ...@@ -66,8 +66,7 @@ import org.chromium.android_webview.gfx.AwDrawFnImpl;
import org.chromium.android_webview.renderer_priority.RendererPriority; import org.chromium.android_webview.renderer_priority.RendererPriority;
import org.chromium.base.BuildInfo; import org.chromium.base.BuildInfo;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.CachedMetrics.TimesHistogramSample;
import org.chromium.base.metrics.ScopedSysTraceEvent; import org.chromium.base.metrics.ScopedSysTraceEvent;
import org.chromium.base.task.PostTask; import org.chromium.base.task.PostTask;
import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillProvider;
...@@ -243,8 +242,9 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -243,8 +242,9 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
int COUNT = 78; int COUNT = 78;
} }
private static final EnumeratedHistogramSample sWebViewApiCallSample = private static void recordWebViewApiCall(@ApiCall int sample) {
new EnumeratedHistogramSample("WebView.ApiCall", ApiCall.COUNT); RecordHistogram.recordEnumeratedHistogram("WebView.ApiCall", sample, ApiCall.COUNT);
}
// This does not touch any global / non-threadsafe state, but note that // This does not touch any global / non-threadsafe state, but note that
// init is ofter called right after and is NOT threadsafe. // init is ofter called right after and is NOT threadsafe.
...@@ -365,10 +365,15 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -365,10 +365,15 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
// If initialization hasn't been deferred, record a startup time histogram entry. // If initialization hasn't been deferred, record a startup time histogram entry.
if (mFactory.hasStarted()) { if (mFactory.hasStarted()) {
TimesHistogramSample histogram = new TimesHistogramSample( if (isFirstWebViewInit) {
"Android.WebView.Startup.CreationTime.Stage2.ProviderInit." RecordHistogram.recordTimesHistogram(
+ (isFirstWebViewInit ? "Cold" : "Warm")); "Android.WebView.Startup.CreationTime.Stage2.ProviderInit.Cold",
histogram.record(SystemClock.elapsedRealtime() - startTime); SystemClock.elapsedRealtime() - startTime);
} else {
RecordHistogram.recordTimesHistogram(
"Android.WebView.Startup.CreationTime.Stage2.ProviderInit.Warm",
SystemClock.elapsedRealtime() - startTime);
}
} }
} }
...@@ -456,7 +461,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -456,7 +461,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.SET_HORIZONTAL_SCROLLBAR_OVERLAY); recordWebViewApiCall(ApiCall.SET_HORIZONTAL_SCROLLBAR_OVERLAY);
mAwContents.setHorizontalScrollbarOverlay(overlay); mAwContents.setHorizontalScrollbarOverlay(overlay);
} }
...@@ -471,7 +476,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -471,7 +476,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.SET_VERTICAL_SCROLLBAR_OVERLAY); recordWebViewApiCall(ApiCall.SET_VERTICAL_SCROLLBAR_OVERLAY);
mAwContents.setVerticalScrollbarOverlay(overlay); mAwContents.setVerticalScrollbarOverlay(overlay);
} }
...@@ -487,7 +492,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -487,7 +492,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.OVERLAY_HORIZONTAL_SCROLLBAR); recordWebViewApiCall(ApiCall.OVERLAY_HORIZONTAL_SCROLLBAR);
return mAwContents.overlayHorizontalScrollbar(); return mAwContents.overlayHorizontalScrollbar();
} }
...@@ -503,7 +508,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -503,7 +508,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.OVERLAY_VERTICAL_SCROLLBAR); recordWebViewApiCall(ApiCall.OVERLAY_VERTICAL_SCROLLBAR);
return mAwContents.overlayVerticalScrollbar(); return mAwContents.overlayVerticalScrollbar();
} }
...@@ -525,7 +530,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -525,7 +530,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.GET_CERTIFICATE); recordWebViewApiCall(ApiCall.GET_CERTIFICATE);
return mAwContents.getCertificate(); return mAwContents.getCertificate();
} }
...@@ -551,7 +556,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -551,7 +556,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.SET_HTTP_AUTH_USERNAME_PASSWORD); recordWebViewApiCall(ApiCall.SET_HTTP_AUTH_USERNAME_PASSWORD);
((WebViewDatabaseAdapter) mFactory.getWebViewDatabase(mContext)) ((WebViewDatabaseAdapter) mFactory.getWebViewDatabase(mContext))
.setHttpAuthUsernamePassword(host, realm, username, password); .setHttpAuthUsernamePassword(host, realm, username, password);
} }
...@@ -568,7 +573,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -568,7 +573,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.GET_HTTP_AUTH_USERNAME_PASSWORD); recordWebViewApiCall(ApiCall.GET_HTTP_AUTH_USERNAME_PASSWORD);
return ((WebViewDatabaseAdapter) mFactory.getWebViewDatabase(mContext)) return ((WebViewDatabaseAdapter) mFactory.getWebViewDatabase(mContext))
.getHttpAuthUsernamePassword(host, realm); .getHttpAuthUsernamePassword(host, realm);
} }
...@@ -608,7 +613,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -608,7 +613,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.SET_NETWORK_AVAILABLE); recordWebViewApiCall(ApiCall.SET_NETWORK_AVAILABLE);
mAwContents.setNetworkAvailable(networkUp); mAwContents.setNetworkAvailable(networkUp);
} }
...@@ -625,7 +630,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -625,7 +630,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.SAVE_STATE); recordWebViewApiCall(ApiCall.SAVE_STATE);
if (outState == null) return null; if (outState == null) return null;
if (!mAwContents.saveState(outState)) return null; if (!mAwContents.saveState(outState)) return null;
return copyBackForwardList(); return copyBackForwardList();
...@@ -656,7 +661,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -656,7 +661,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.RESTORE_STATE); recordWebViewApiCall(ApiCall.RESTORE_STATE);
if (inState == null) return null; if (inState == null) return null;
if (!mAwContents.restoreState(inState)) return null; if (!mAwContents.restoreState(inState)) return null;
return copyBackForwardList(); return copyBackForwardList();
...@@ -705,13 +710,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -705,13 +710,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
mFactory.addTask(new Runnable() { mFactory.addTask(new Runnable() {
@Override @Override
public void run() { public void run() {
sWebViewApiCallSample.record(ApiCall.POST_URL); recordWebViewApiCall(ApiCall.POST_URL);
mAwContents.postUrl(url, postData); mAwContents.postUrl(url, postData);
} }
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.POST_URL); recordWebViewApiCall(ApiCall.POST_URL);
mAwContents.postUrl(url, postData); mAwContents.postUrl(url, postData);
} }
...@@ -724,13 +729,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -724,13 +729,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
mFactory.addTask(new Runnable() { mFactory.addTask(new Runnable() {
@Override @Override
public void run() { public void run() {
sWebViewApiCallSample.record(ApiCall.LOAD_DATA); recordWebViewApiCall(ApiCall.LOAD_DATA);
mAwContents.loadData(data, mimeType, encoding); mAwContents.loadData(data, mimeType, encoding);
} }
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.LOAD_DATA); recordWebViewApiCall(ApiCall.LOAD_DATA);
mAwContents.loadData(data, mimeType, encoding); mAwContents.loadData(data, mimeType, encoding);
} }
...@@ -744,13 +749,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -744,13 +749,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
mFactory.addTask(new Runnable() { mFactory.addTask(new Runnable() {
@Override @Override
public void run() { public void run() {
sWebViewApiCallSample.record(ApiCall.LOAD_DATA_WITH_BASE_URL); recordWebViewApiCall(ApiCall.LOAD_DATA_WITH_BASE_URL);
mAwContents.loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl); mAwContents.loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl);
} }
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.LOAD_DATA_WITH_BASE_URL); recordWebViewApiCall(ApiCall.LOAD_DATA_WITH_BASE_URL);
mAwContents.loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl); mAwContents.loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl);
} }
...@@ -762,13 +767,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -762,13 +767,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
mFactory.addTask(new Runnable() { mFactory.addTask(new Runnable() {
@Override @Override
public void run() { public void run() {
sWebViewApiCallSample.record(ApiCall.EVALUATE_JAVASCRIPT); recordWebViewApiCall(ApiCall.EVALUATE_JAVASCRIPT);
mAwContents.evaluateJavaScript( mAwContents.evaluateJavaScript(
script, CallbackConverter.fromValueCallback(resultCallback)); script, CallbackConverter.fromValueCallback(resultCallback));
} }
}); });
} else { } else {
sWebViewApiCallSample.record(ApiCall.EVALUATE_JAVASCRIPT); recordWebViewApiCall(ApiCall.EVALUATE_JAVASCRIPT);
checkThread(); checkThread();
mAwContents.evaluateJavaScript( mAwContents.evaluateJavaScript(
script, CallbackConverter.fromValueCallback(resultCallback)); script, CallbackConverter.fromValueCallback(resultCallback));
...@@ -808,7 +813,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -808,7 +813,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
return; return;
} }
sWebViewApiCallSample.record(ApiCall.STOP_LOADING); recordWebViewApiCall(ApiCall.STOP_LOADING);
mAwContents.stopLoading(); mAwContents.stopLoading();
} }
...@@ -823,7 +828,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -823,7 +828,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.RELOAD); recordWebViewApiCall(ApiCall.RELOAD);
mAwContents.reload(); mAwContents.reload();
} }
...@@ -839,7 +844,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -839,7 +844,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.CAN_GO_BACK); recordWebViewApiCall(ApiCall.CAN_GO_BACK);
return mAwContents.canGoBack(); return mAwContents.canGoBack();
} }
...@@ -854,7 +859,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -854,7 +859,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.GO_BACK); recordWebViewApiCall(ApiCall.GO_BACK);
mAwContents.goBack(); mAwContents.goBack();
} }
...@@ -870,7 +875,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -870,7 +875,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.CAN_GO_FORWARD); recordWebViewApiCall(ApiCall.CAN_GO_FORWARD);
return mAwContents.canGoForward(); return mAwContents.canGoForward();
} }
...@@ -885,7 +890,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -885,7 +890,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.GO_FORWARD); recordWebViewApiCall(ApiCall.GO_FORWARD);
mAwContents.goForward(); mAwContents.goForward();
} }
...@@ -901,7 +906,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -901,7 +906,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.CAN_GO_BACK_OR_FORWARD); recordWebViewApiCall(ApiCall.CAN_GO_BACK_OR_FORWARD);
return mAwContents.canGoBackOrForward(steps); return mAwContents.canGoBackOrForward(steps);
} }
...@@ -916,14 +921,14 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -916,14 +921,14 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.GO_BACK_OR_FORWARD); recordWebViewApiCall(ApiCall.GO_BACK_OR_FORWARD);
mAwContents.goBackOrForward(steps); mAwContents.goBackOrForward(steps);
} }
@Override @Override
public boolean isPrivateBrowsingEnabled() { public boolean isPrivateBrowsingEnabled() {
// Not supported in this WebView implementation. // Not supported in this WebView implementation.
sWebViewApiCallSample.record(ApiCall.IS_PRIVATE_BROWSING_ENABLED); recordWebViewApiCall(ApiCall.IS_PRIVATE_BROWSING_ENABLED);
return false; return false;
} }
...@@ -939,7 +944,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -939,7 +944,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.PAGE_UP); recordWebViewApiCall(ApiCall.PAGE_UP);
return mAwContents.pageUp(top); return mAwContents.pageUp(top);
} }
...@@ -955,7 +960,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -955,7 +960,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.PAGE_DOWN); recordWebViewApiCall(ApiCall.PAGE_DOWN);
return mAwContents.pageDown(bottom); return mAwContents.pageDown(bottom);
} }
...@@ -963,7 +968,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -963,7 +968,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@TargetApi(Build.VERSION_CODES.M) @TargetApi(Build.VERSION_CODES.M)
public void insertVisualStateCallback( public void insertVisualStateCallback(
final long requestId, final VisualStateCallback callback) { final long requestId, final VisualStateCallback callback) {
sWebViewApiCallSample.record(ApiCall.INSERT_VISUAL_STATE_CALLBACK); recordWebViewApiCall(ApiCall.INSERT_VISUAL_STATE_CALLBACK);
mSharedWebViewChromium.insertVisualStateCallback( mSharedWebViewChromium.insertVisualStateCallback(
requestId, callback == null ? null : new AwContents.VisualStateCallback() { requestId, callback == null ? null : new AwContents.VisualStateCallback() {
@Override @Override
...@@ -984,7 +989,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -984,7 +989,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.CLEAR_VIEW); recordWebViewApiCall(ApiCall.CLEAR_VIEW);
mAwContents.clearView(); mAwContents.clearView();
} }
...@@ -1000,13 +1005,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1000,13 +1005,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.CAPTURE_PICTURE); recordWebViewApiCall(ApiCall.CAPTURE_PICTURE);
return mAwContents.capturePicture(); return mAwContents.capturePicture();
} }
@Override @Override
public float getScale() { public float getScale() {
sWebViewApiCallSample.record(ApiCall.GET_SCALE); recordWebViewApiCall(ApiCall.GET_SCALE);
// No checkThread() as it is mostly thread safe (workaround for b/10652991). // No checkThread() as it is mostly thread safe (workaround for b/10652991).
mFactory.startYourEngines(true); mFactory.startYourEngines(true);
return mAwContents.getScale(); return mAwContents.getScale();
...@@ -1014,7 +1019,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1014,7 +1019,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public void setInitialScale(final int scaleInPercent) { public void setInitialScale(final int scaleInPercent) {
sWebViewApiCallSample.record(ApiCall.SET_INITIAL_SCALE); recordWebViewApiCall(ApiCall.SET_INITIAL_SCALE);
// No checkThread() as it is thread safe // No checkThread() as it is thread safe
mWebSettings.getAwSettings().setInitialPageScale(scaleInPercent); mWebSettings.getAwSettings().setInitialPageScale(scaleInPercent);
} }
...@@ -1030,7 +1035,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1030,7 +1035,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.INVOKE_ZOOM_PICKER); recordWebViewApiCall(ApiCall.INVOKE_ZOOM_PICKER);
mAwContents.invokeZoomPicker(); mAwContents.invokeZoomPicker();
} }
...@@ -1047,7 +1052,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1047,7 +1052,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.GET_HIT_TEST_RESULT); recordWebViewApiCall(ApiCall.GET_HIT_TEST_RESULT);
AwContents.HitTestData data = mAwContents.getLastHitTestResult(); AwContents.HitTestData data = mAwContents.getLastHitTestResult();
mHitTestResult.setType(data.hitTestResultType); mHitTestResult.setType(data.hitTestResultType);
mHitTestResult.setExtra(data.hitTestResultExtraData); mHitTestResult.setExtra(data.hitTestResultExtraData);
...@@ -1065,7 +1070,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1065,7 +1070,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.REQUEST_FOCUS_NODE_HREF); recordWebViewApiCall(ApiCall.REQUEST_FOCUS_NODE_HREF);
mAwContents.requestFocusNodeHref(hrefMsg); mAwContents.requestFocusNodeHref(hrefMsg);
} }
...@@ -1080,7 +1085,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1080,7 +1085,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.REQUEST_IMAGE_REF); recordWebViewApiCall(ApiCall.REQUEST_IMAGE_REF);
mAwContents.requestImageRef(msg); mAwContents.requestImageRef(msg);
} }
...@@ -1096,7 +1101,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1096,7 +1101,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.GET_URL); recordWebViewApiCall(ApiCall.GET_URL);
GURL url = mAwContents.getUrl(); GURL url = mAwContents.getUrl();
return url == null ? null : url.getSpec(); return url == null ? null : url.getSpec();
} }
...@@ -1113,7 +1118,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1113,7 +1118,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.GET_ORIGINAL_URL); recordWebViewApiCall(ApiCall.GET_ORIGINAL_URL);
return mAwContents.getOriginalUrl(); return mAwContents.getOriginalUrl();
} }
...@@ -1129,7 +1134,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1129,7 +1134,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.GET_TITLE); recordWebViewApiCall(ApiCall.GET_TITLE);
return mAwContents.getTitle(); return mAwContents.getTitle();
} }
...@@ -1145,7 +1150,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1145,7 +1150,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.GET_FAVICON); recordWebViewApiCall(ApiCall.GET_FAVICON);
return mAwContents.getFavicon(); return mAwContents.getFavicon();
} }
...@@ -1157,7 +1162,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1157,7 +1162,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public int getProgress() { public int getProgress() {
sWebViewApiCallSample.record(ApiCall.GET_PROGRESS); recordWebViewApiCall(ApiCall.GET_PROGRESS);
if (mAwContents == null) return 100; if (mAwContents == null) return 100;
// No checkThread() because the value is cached java side (workaround for b/10533304). // No checkThread() because the value is cached java side (workaround for b/10533304).
return mAwContents.getMostRecentProgress(); return mAwContents.getMostRecentProgress();
...@@ -1165,7 +1170,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1165,7 +1170,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public int getContentHeight() { public int getContentHeight() {
sWebViewApiCallSample.record(ApiCall.GET_CONTENT_HEIGHT); recordWebViewApiCall(ApiCall.GET_CONTENT_HEIGHT);
if (mAwContents == null) return 0; if (mAwContents == null) return 0;
// No checkThread() as it is mostly thread safe (workaround for b/10594869). // No checkThread() as it is mostly thread safe (workaround for b/10594869).
return mAwContents.getContentHeightCss(); return mAwContents.getContentHeightCss();
...@@ -1173,7 +1178,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1173,7 +1178,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public int getContentWidth() { public int getContentWidth() {
sWebViewApiCallSample.record(ApiCall.GET_CONTENT_WIDTH); recordWebViewApiCall(ApiCall.GET_CONTENT_WIDTH);
if (mAwContents == null) return 0; if (mAwContents == null) return 0;
// No checkThread() as it is mostly thread safe (workaround for b/10594869). // No checkThread() as it is mostly thread safe (workaround for b/10594869).
return mAwContents.getContentWidthCss(); return mAwContents.getContentWidthCss();
...@@ -1190,7 +1195,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1190,7 +1195,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.PAUSE_TIMERS); recordWebViewApiCall(ApiCall.PAUSE_TIMERS);
mAwContents.pauseTimers(); mAwContents.pauseTimers();
} }
...@@ -1205,7 +1210,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1205,7 +1210,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.RESUME_TIMERS); recordWebViewApiCall(ApiCall.RESUME_TIMERS);
mAwContents.resumeTimers(); mAwContents.resumeTimers();
} }
...@@ -1220,7 +1225,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1220,7 +1225,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.ON_PAUSE); recordWebViewApiCall(ApiCall.ON_PAUSE);
mAwContents.onPause(); mAwContents.onPause();
} }
...@@ -1235,7 +1240,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1235,7 +1240,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.ON_RESUME); recordWebViewApiCall(ApiCall.ON_RESUME);
mAwContents.onResume(); mAwContents.onResume();
} }
...@@ -1251,7 +1256,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1251,7 +1256,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.IS_PAUSED); recordWebViewApiCall(ApiCall.IS_PAUSED);
return mAwContents.isPaused(); return mAwContents.isPaused();
} }
...@@ -1271,7 +1276,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1271,7 +1276,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.CLEAR_CACHE); recordWebViewApiCall(ApiCall.CLEAR_CACHE);
mAwContents.clearCache(includeDiskFiles); mAwContents.clearCache(includeDiskFiles);
} }
...@@ -1289,7 +1294,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1289,7 +1294,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.CLEAR_FORM_DATA); recordWebViewApiCall(ApiCall.CLEAR_FORM_DATA);
mAwContents.hideAutofillPopup(); mAwContents.hideAutofillPopup();
} }
...@@ -1304,7 +1309,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1304,7 +1309,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.CLEAR_HISTORY); recordWebViewApiCall(ApiCall.CLEAR_HISTORY);
mAwContents.clearHistory(); mAwContents.clearHistory();
} }
...@@ -1319,7 +1324,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1319,7 +1324,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.CLEAR_SSL_PREFERENCES); recordWebViewApiCall(ApiCall.CLEAR_SSL_PREFERENCES);
mAwContents.clearSslPreferences(); mAwContents.clearSslPreferences();
} }
...@@ -1336,7 +1341,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1336,7 +1341,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return ret; return ret;
} }
sWebViewApiCallSample.record(ApiCall.COPY_BACK_FORWARD_LIST); recordWebViewApiCall(ApiCall.COPY_BACK_FORWARD_LIST);
// mAwContents.getNavigationHistory() can be null here if mAwContents has been destroyed, // mAwContents.getNavigationHistory() can be null here if mAwContents has been destroyed,
// and we do not handle passing null to the WebBackForwardListChromium constructor. // and we do not handle passing null to the WebBackForwardListChromium constructor.
NavigationHistory navHistory = mAwContents.getNavigationHistory(); NavigationHistory navHistory = mAwContents.getNavigationHistory();
...@@ -1346,7 +1351,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1346,7 +1351,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public void setFindListener(WebView.FindListener listener) { public void setFindListener(WebView.FindListener listener) {
sWebViewApiCallSample.record(ApiCall.SET_FIND_LISTENER); recordWebViewApiCall(ApiCall.SET_FIND_LISTENER);
mContentsClientAdapter.setFindListener(listener); mContentsClientAdapter.setFindListener(listener);
} }
...@@ -1361,7 +1366,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1361,7 +1366,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.FIND_NEXT); recordWebViewApiCall(ApiCall.FIND_NEXT);
mAwContents.findNext(forwards); mAwContents.findNext(forwards);
} }
...@@ -1387,7 +1392,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1387,7 +1392,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public boolean showFindDialog(final String text, final boolean showIme) { public boolean showFindDialog(final String text, final boolean showIme) {
sWebViewApiCallSample.record(ApiCall.SHOW_FIND_DIALOG); recordWebViewApiCall(ApiCall.SHOW_FIND_DIALOG);
mFactory.startYourEngines(false); mFactory.startYourEngines(false);
if (checkNeedsPost()) { if (checkNeedsPost()) {
return false; return false;
...@@ -1426,7 +1431,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1426,7 +1431,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.NOTIFY_FIND_DIALOG_DISMISSED); recordWebViewApiCall(ApiCall.NOTIFY_FIND_DIALOG_DISMISSED);
clearMatches(); clearMatches();
} }
...@@ -1441,7 +1446,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1441,7 +1446,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.CLEAR_MATCHES); recordWebViewApiCall(ApiCall.CLEAR_MATCHES);
mAwContents.clearMatches(); mAwContents.clearMatches();
} }
...@@ -1456,20 +1461,20 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1456,20 +1461,20 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.DOCUMENT_HAS_IMAGES); recordWebViewApiCall(ApiCall.DOCUMENT_HAS_IMAGES);
mAwContents.documentHasImages(response); mAwContents.documentHasImages(response);
} }
@Override @Override
public void setWebViewClient(WebViewClient client) { public void setWebViewClient(WebViewClient client) {
sWebViewApiCallSample.record(ApiCall.SET_WEBVIEW_CLIENT); recordWebViewApiCall(ApiCall.SET_WEBVIEW_CLIENT);
mSharedWebViewChromium.setWebViewClient(client); mSharedWebViewChromium.setWebViewClient(client);
mContentsClientAdapter.setWebViewClient(mSharedWebViewChromium.getWebViewClient()); mContentsClientAdapter.setWebViewClient(mSharedWebViewChromium.getWebViewClient());
} }
@Override @Override
public WebViewClient getWebViewClient() { public WebViewClient getWebViewClient() {
sWebViewApiCallSample.record(ApiCall.GET_WEBVIEW_CLIENT); recordWebViewApiCall(ApiCall.GET_WEBVIEW_CLIENT);
return mSharedWebViewChromium.getWebViewClient(); return mSharedWebViewChromium.getWebViewClient();
} }
...@@ -1504,13 +1509,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1504,13 +1509,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public void setDownloadListener(DownloadListener listener) { public void setDownloadListener(DownloadListener listener) {
sWebViewApiCallSample.record(ApiCall.SET_DOWNLOAD_LISTENER); recordWebViewApiCall(ApiCall.SET_DOWNLOAD_LISTENER);
mContentsClientAdapter.setDownloadListener(listener); mContentsClientAdapter.setDownloadListener(listener);
} }
@Override @Override
public void setWebChromeClient(WebChromeClient client) { public void setWebChromeClient(WebChromeClient client) {
sWebViewApiCallSample.record(ApiCall.SET_WEBCHROME_CLIENT); recordWebViewApiCall(ApiCall.SET_WEBCHROME_CLIENT);
mWebSettings.getAwSettings().setFullscreenSupported(doesSupportFullscreen(client)); mWebSettings.getAwSettings().setFullscreenSupported(doesSupportFullscreen(client));
mSharedWebViewChromium.setWebChromeClient(client); mSharedWebViewChromium.setWebChromeClient(client);
mContentsClientAdapter.setWebChromeClient(mSharedWebViewChromium.getWebChromeClient()); mContentsClientAdapter.setWebChromeClient(mSharedWebViewChromium.getWebChromeClient());
...@@ -1518,7 +1523,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1518,7 +1523,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public WebChromeClient getWebChromeClient() { public WebChromeClient getWebChromeClient() {
sWebViewApiCallSample.record(ApiCall.GET_WEBCHROME_CLIENT); recordWebViewApiCall(ApiCall.GET_WEBCHROME_CLIENT);
return mSharedWebViewChromium.getWebChromeClient(); return mSharedWebViewChromium.getWebChromeClient();
} }
...@@ -1529,7 +1534,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1529,7 +1534,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
* and {@link WebChromeClient#onHideCustomView()} are required. * and {@link WebChromeClient#onHideCustomView()} are required.
*/ */
private boolean doesSupportFullscreen(WebChromeClient client) { private boolean doesSupportFullscreen(WebChromeClient client) {
sWebViewApiCallSample.record(ApiCall.DOES_SUPPORT_FULLSCREEN); recordWebViewApiCall(ApiCall.DOES_SUPPORT_FULLSCREEN);
if (client == null) { if (client == null) {
return false; return false;
} }
...@@ -1572,7 +1577,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1572,7 +1577,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.SET_PICTURE_LISTENER); recordWebViewApiCall(ApiCall.SET_PICTURE_LISTENER);
boolean invalidateOnly = mAppTargetSdkVersion >= Build.VERSION_CODES.JELLY_BEAN_MR2; boolean invalidateOnly = mAppTargetSdkVersion >= Build.VERSION_CODES.JELLY_BEAN_MR2;
mContentsClientAdapter.setPictureListener(listener, invalidateOnly); mContentsClientAdapter.setPictureListener(listener, invalidateOnly);
mAwContents.enableOnNewPicture(listener != null, invalidateOnly); mAwContents.enableOnNewPicture(listener != null, invalidateOnly);
...@@ -1589,7 +1594,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1589,7 +1594,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.ADD_JAVASCRIPT_INTERFACE); recordWebViewApiCall(ApiCall.ADD_JAVASCRIPT_INTERFACE);
mAwContents.addJavascriptInterface(obj, interfaceName); mAwContents.addJavascriptInterface(obj, interfaceName);
} }
...@@ -1604,13 +1609,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1604,13 +1609,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.REMOVE_JAVASCRIPT_INTERFACE); recordWebViewApiCall(ApiCall.REMOVE_JAVASCRIPT_INTERFACE);
mAwContents.removeJavascriptInterface(interfaceName); mAwContents.removeJavascriptInterface(interfaceName);
} }
@Override @Override
public WebMessagePort[] createWebMessageChannel() { public WebMessagePort[] createWebMessageChannel() {
sWebViewApiCallSample.record(ApiCall.CREATE_WEBMESSAGE_CHANNEL); recordWebViewApiCall(ApiCall.CREATE_WEBMESSAGE_CHANNEL);
return WebMessagePortAdapter.fromMessagePorts( return WebMessagePortAdapter.fromMessagePorts(
mSharedWebViewChromium.createWebMessageChannel()); mSharedWebViewChromium.createWebMessageChannel());
} }
...@@ -1618,14 +1623,14 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1618,14 +1623,14 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
@TargetApi(Build.VERSION_CODES.M) @TargetApi(Build.VERSION_CODES.M)
public void postMessageToMainFrame(final WebMessage message, final Uri targetOrigin) { public void postMessageToMainFrame(final WebMessage message, final Uri targetOrigin) {
sWebViewApiCallSample.record(ApiCall.POST_MESSAGE_TO_MAIN_FRAME); recordWebViewApiCall(ApiCall.POST_MESSAGE_TO_MAIN_FRAME);
mSharedWebViewChromium.postMessageToMainFrame(message.getData(), targetOrigin.toString(), mSharedWebViewChromium.postMessageToMainFrame(message.getData(), targetOrigin.toString(),
WebMessagePortAdapter.toMessagePorts(message.getPorts())); WebMessagePortAdapter.toMessagePorts(message.getPorts()));
} }
@Override @Override
public WebSettings getSettings() { public WebSettings getSettings() {
sWebViewApiCallSample.record(ApiCall.GET_SETTINGS); recordWebViewApiCall(ApiCall.GET_SETTINGS);
return mWebSettings; return mWebSettings;
} }
...@@ -1663,7 +1668,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1663,7 +1668,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public boolean canZoomIn() { public boolean canZoomIn() {
sWebViewApiCallSample.record(ApiCall.CAN_ZOOM_IN); recordWebViewApiCall(ApiCall.CAN_ZOOM_IN);
if (checkNeedsPost()) { if (checkNeedsPost()) {
return false; return false;
} }
...@@ -1672,7 +1677,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1672,7 +1677,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public boolean canZoomOut() { public boolean canZoomOut() {
sWebViewApiCallSample.record(ApiCall.CAN_ZOOM_OUT); recordWebViewApiCall(ApiCall.CAN_ZOOM_OUT);
if (checkNeedsPost()) { if (checkNeedsPost()) {
return false; return false;
} }
...@@ -1773,13 +1778,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1773,13 +1778,13 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public void setTextClassifier(TextClassifier textClassifier) { public void setTextClassifier(TextClassifier textClassifier) {
sWebViewApiCallSample.record(ApiCall.SET_TEXT_CLASSIFIER); recordWebViewApiCall(ApiCall.SET_TEXT_CLASSIFIER);
mAwContents.setTextClassifier(textClassifier); mAwContents.setTextClassifier(textClassifier);
} }
@Override @Override
public TextClassifier getTextClassifier() { public TextClassifier getTextClassifier() {
sWebViewApiCallSample.record(ApiCall.GET_TEXT_CLASSIFIER); recordWebViewApiCall(ApiCall.GET_TEXT_CLASSIFIER);
return mAwContents.getTextClassifier(); return mAwContents.getTextClassifier();
} }
...@@ -1794,7 +1799,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1794,7 +1799,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
} }
}); });
} }
sWebViewApiCallSample.record(ApiCall.AUTOFILL); recordWebViewApiCall(ApiCall.AUTOFILL);
mAwContents.autofill(values); mAwContents.autofill(values);
} }
...@@ -1810,7 +1815,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1810,7 +1815,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
}); });
return; return;
} }
sWebViewApiCallSample.record(ApiCall.ON_PROVIDE_AUTOFILL_VIRTUAL_STRUCTURE); recordWebViewApiCall(ApiCall.ON_PROVIDE_AUTOFILL_VIRTUAL_STRUCTURE);
mAwContents.onProvideAutoFillVirtualStructure(structure, flags); mAwContents.onProvideAutoFillVirtualStructure(structure, flags);
} }
...@@ -2520,7 +2525,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -2520,7 +2525,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public PrintDocumentAdapter createPrintDocumentAdapter(String documentName) { public PrintDocumentAdapter createPrintDocumentAdapter(String documentName) {
sWebViewApiCallSample.record(ApiCall.CREATE_PRINT_DOCUMENT_ADAPTER); recordWebViewApiCall(ApiCall.CREATE_PRINT_DOCUMENT_ADAPTER);
checkThread(); checkThread();
return new AwPrintDocumentAdapter(mAwContents.getPdfExporter(), documentName); return new AwPrintDocumentAdapter(mAwContents.getPdfExporter(), documentName);
} }
...@@ -2617,7 +2622,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -2617,7 +2622,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
// Implements SmartClipProvider // Implements SmartClipProvider
@Override @Override
public void extractSmartClipData(int x, int y, int width, int height) { public void extractSmartClipData(int x, int y, int width, int height) {
sWebViewApiCallSample.record(ApiCall.EXTRACT_SMART_CLIP_DATA); recordWebViewApiCall(ApiCall.EXTRACT_SMART_CLIP_DATA);
checkThread(); checkThread();
mAwContents.extractSmartClipData(x, y, width, height); mAwContents.extractSmartClipData(x, y, width, height);
} }
...@@ -2625,7 +2630,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -2625,7 +2630,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
// Implements SmartClipProvider // Implements SmartClipProvider
@Override @Override
public void setSmartClipResultHandler(final Handler resultHandler) { public void setSmartClipResultHandler(final Handler resultHandler) {
sWebViewApiCallSample.record(ApiCall.SET_SMART_CLIP_RESULT_HANDLER); recordWebViewApiCall(ApiCall.SET_SMART_CLIP_RESULT_HANDLER);
checkThread(); checkThread();
mAwContents.setSmartClipResultHandler(resultHandler); mAwContents.setSmartClipResultHandler(resultHandler);
} }
......
...@@ -50,9 +50,6 @@ import org.chromium.base.PathService; ...@@ -50,9 +50,6 @@ import org.chromium.base.PathService;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.TraceEvent; import org.chromium.base.TraceEvent;
import org.chromium.base.library_loader.LibraryLoader; import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.base.metrics.CachedMetrics;
import org.chromium.base.metrics.CachedMetrics.BooleanHistogramSample;
import org.chromium.base.metrics.CachedMetrics.Count100HistogramSample;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.ScopedSysTraceEvent; import org.chromium.base.metrics.ScopedSysTraceEvent;
import org.chromium.base.task.PostTask; import org.chromium.base.task.PostTask;
...@@ -183,9 +180,8 @@ public class WebViewChromiumAwInit { ...@@ -183,9 +180,8 @@ public class WebViewChromiumAwInit {
String webViewPackageName = AwBrowserProcess.getWebViewPackageName(); String webViewPackageName = AwBrowserProcess.getWebViewPackageName();
boolean isDeveloperModeEnabled = boolean isDeveloperModeEnabled =
DeveloperModeUtils.isDeveloperModeEnabled(webViewPackageName); DeveloperModeUtils.isDeveloperModeEnabled(webViewPackageName);
final BooleanHistogramSample developerModeSample = RecordHistogram.recordBooleanHistogram(
new BooleanHistogramSample("Android.WebView.DevUi.DeveloperModeEnabled"); "Android.WebView.DevUi.DeveloperModeEnabled", isDeveloperModeEnabled);
developerModeSample.record(isDeveloperModeEnabled);
if (isDeveloperModeEnabled) { if (isDeveloperModeEnabled) {
long start = SystemClock.elapsedRealtime(); long start = SystemClock.elapsedRealtime();
try { try {
...@@ -195,9 +191,8 @@ public class WebViewChromiumAwInit { ...@@ -195,9 +191,8 @@ public class WebViewChromiumAwInit {
DeveloperModeUtils.getFlagOverrides(webViewPackageName); DeveloperModeUtils.getFlagOverrides(webViewPackageName);
helper.applyFlagOverrides(flagOverrides); helper.applyFlagOverrides(flagOverrides);
final Count100HistogramSample flagOverrideSample = RecordHistogram.recordCount100Histogram(
new Count100HistogramSample("Android.WebView.DevUi.ToggledFlagCount"); "Android.WebView.DevUi.ToggledFlagCount", flagOverrides.size());
flagOverrideSample.record(flagOverrides.size());
} finally { } finally {
long end = SystemClock.elapsedRealtime(); long end = SystemClock.elapsedRealtime();
RecordHistogram.recordTimesHistogram( RecordHistogram.recordTimesHistogram(
...@@ -223,10 +218,6 @@ public class WebViewChromiumAwInit { ...@@ -223,10 +218,6 @@ public class WebViewChromiumAwInit {
mStarted = true; mStarted = true;
// Make sure to record any cached metrics, now that we know that the native
// library has been loaded and initialized.
CachedMetrics.commitCachedMetrics();
RecordHistogram.recordSparseHistogram("Android.WebView.TargetSdkVersion", RecordHistogram.recordSparseHistogram("Android.WebView.TargetSdkVersion",
context.getApplicationInfo().targetSdkVersion); context.getApplicationInfo().targetSdkVersion);
......
...@@ -48,7 +48,7 @@ import org.chromium.base.ThreadUtils; ...@@ -48,7 +48,7 @@ import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.VerifiesOnN; import org.chromium.base.annotations.VerifiesOnN;
import org.chromium.base.annotations.VerifiesOnP; import org.chromium.base.annotations.VerifiesOnP;
import org.chromium.base.library_loader.NativeLibraries; import org.chromium.base.library_loader.NativeLibraries;
import org.chromium.base.metrics.CachedMetrics.TimesHistogramSample; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.ScopedSysTraceEvent; import org.chromium.base.metrics.ScopedSysTraceEvent;
import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillProvider;
import org.chromium.components.autofill.AutofillProviderImpl; import org.chromium.components.autofill.AutofillProviderImpl;
...@@ -339,9 +339,9 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { ...@@ -339,9 +339,9 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
setSingleton(this); setSingleton(this);
} }
TimesHistogramSample histogram = RecordHistogram.recordTimesHistogram(
new TimesHistogramSample("Android.WebView.Startup.CreationTime.Stage1.FactoryInit"); "Android.WebView.Startup.CreationTime.Stage1.FactoryInit",
histogram.record(SystemClock.elapsedRealtime() - startTime); SystemClock.elapsedRealtime() - startTime);
} }
/* package */ static void checkStorageIsNotDeviceProtected(Context context) { /* package */ static void checkStorageIsNotDeviceProtected(Context context) {
......
...@@ -15,7 +15,7 @@ import org.chromium.base.ContextUtils; ...@@ -15,7 +15,7 @@ import org.chromium.base.ContextUtils;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.PathUtils; import org.chromium.base.PathUtils;
import org.chromium.base.StrictModeContext; import org.chromium.base.StrictModeContext;
import org.chromium.base.metrics.CachedMetrics.LinearCountHistogramSample; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.ScopedSysTraceEvent; import org.chromium.base.metrics.ScopedSysTraceEvent;
import java.io.File; import java.io.File;
...@@ -33,8 +33,6 @@ abstract class AwDataDirLock { ...@@ -33,8 +33,6 @@ abstract class AwDataDirLock {
private static final String EXCLUSIVE_LOCK_FILE = "webview_data.lock"; private static final String EXCLUSIVE_LOCK_FILE = "webview_data.lock";
private static final int LOCK_RETRIES = 5; private static final int LOCK_RETRIES = 5;
private static final int LOCK_SLEEP_MS = 100; private static final int LOCK_SLEEP_MS = 100;
private static final String LOCK_ATTEMPTS_HISTOGRAM_NAME =
"Android.WebView.Startup.DataDirLockAttempts";
private static RandomAccessFile sLockFile; private static RandomAccessFile sLockFile;
private static FileLock sExclusiveFileLock; private static FileLock sExclusiveFileLock;
...@@ -111,9 +109,8 @@ abstract class AwDataDirLock { ...@@ -111,9 +109,8 @@ abstract class AwDataDirLock {
// We log values from [0, LOCK_RETRIES]. Histogram samples are expected to be [0, max). // We log values from [0, LOCK_RETRIES]. Histogram samples are expected to be [0, max).
// 0 just goes to the underflow bucket, so min=1 and max=LOCK_RETRIES+1. // 0 just goes to the underflow bucket, so min=1 and max=LOCK_RETRIES+1.
// To get bucket width 1, buckets must be max-min+2 // To get bucket width 1, buckets must be max-min+2
LinearCountHistogramSample histogram = new LinearCountHistogramSample( RecordHistogram.recordLinearCountHistogram("Android.WebView.Startup.DataDirLockAttempts",
LOCK_ATTEMPTS_HISTOGRAM_NAME, 1, LOCK_RETRIES + 1, LOCK_RETRIES + 2); attempts, 1, LOCK_RETRIES + 1, LOCK_RETRIES + 2);
histogram.record(attempts);
} }
private static String getLockFailureReason(final RandomAccessFile file) { private static String getLockFailureReason(final RandomAccessFile file) {
......
...@@ -26,9 +26,6 @@ import org.chromium.android_webview.common.variations.VariationsServiceMetricsHe ...@@ -26,9 +26,6 @@ import org.chromium.android_webview.common.variations.VariationsServiceMetricsHe
import org.chromium.android_webview.common.variations.VariationsUtils; import org.chromium.android_webview.common.variations.VariationsUtils;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.metrics.CachedMetrics.CustomCountHistogramSample;
import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
import org.chromium.base.metrics.CachedMetrics.TimesHistogramSample;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.components.variations.LoadSeedResult; import org.chromium.components.variations.LoadSeedResult;
import org.chromium.components.variations.firstrun.VariationsSeedFetcher.SeedInfo; import org.chromium.components.variations.firstrun.VariationsSeedFetcher.SeedInfo;
...@@ -122,30 +119,26 @@ public class VariationsSeedLoader { ...@@ -122,30 +119,26 @@ public class VariationsSeedLoader {
int NUM_ENTRIES = 4; int NUM_ENTRIES = 4;
} }
private static void recordLoadSeedResult(int result) { private static void recordLoadSeedResult(@LoadSeedResult int result) {
EnumeratedHistogramSample histogram = new EnumeratedHistogramSample( RecordHistogram.recordEnumeratedHistogram(
SEED_LOAD_RESULT_HISTOGRAM_NAME, LoadSeedResult.ENUM_SIZE); SEED_LOAD_RESULT_HISTOGRAM_NAME, result, LoadSeedResult.ENUM_SIZE);
histogram.record(result);
} }
private static void recordSeedLoadBlockingTime(long timeMs) { private static void recordSeedLoadBlockingTime(long timeMs) {
TimesHistogramSample histogram = RecordHistogram.recordTimesHistogram(SEED_LOAD_BLOCKING_TIME_HISTOGRAM_NAME, timeMs);
new TimesHistogramSample(SEED_LOAD_BLOCKING_TIME_HISTOGRAM_NAME);
histogram.record(timeMs);
} }
private static void recordSeedRequestState(@AppSeedRequestState int state) { private static void recordSeedRequestState(@AppSeedRequestState int state) {
EnumeratedHistogramSample histogram = new EnumeratedHistogramSample( RecordHistogram.recordEnumeratedHistogram(
APP_SEED_REQUEST_STATE_HISTOGRAM_NAME, AppSeedRequestState.NUM_ENTRIES); APP_SEED_REQUEST_STATE_HISTOGRAM_NAME, state, AppSeedRequestState.NUM_ENTRIES);
histogram.record(state);
} }
private static void recordAppSeedFreshness(long freshnessMinutes) { private static void recordAppSeedFreshness(long freshnessMinutes) {
// Bucket parameters should match Variations.SeedFreshness. // Bucket parameters should match Variations.SeedFreshness.
// See variations::RecordSeedFreshness. // See variations::RecordSeedFreshness.
CustomCountHistogramSample histogram = new CustomCountHistogramSample( RecordHistogram.recordCustomCountHistogram(APP_SEED_FRESHNESS_HISTOGRAM_NAME,
APP_SEED_FRESHNESS_HISTOGRAM_NAME, 1, (int) TimeUnit.DAYS.toMinutes(30), 50); (int) freshnessMinutes, /*min=*/1, /*max=*/(int) TimeUnit.DAYS.toMinutes(30),
histogram.record((int) freshnessMinutes); /*numBuckets=*/50);
} }
private static boolean shouldThrottleRequests(long now) { private static boolean shouldThrottleRequests(long now) {
......
...@@ -18,7 +18,7 @@ import com.android.webview.chromium.WebViewChromiumAwInit; ...@@ -18,7 +18,7 @@ import com.android.webview.chromium.WebViewChromiumAwInit;
import com.android.webview.chromium.WebkitToSharedGlueConverter; import com.android.webview.chromium.WebkitToSharedGlueConverter;
import org.chromium.android_webview.AwDebug; import org.chromium.android_webview.AwDebug;
import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.support_lib_boundary.StaticsBoundaryInterface; import org.chromium.support_lib_boundary.StaticsBoundaryInterface;
import org.chromium.support_lib_boundary.WebViewProviderFactoryBoundaryInterface; import org.chromium.support_lib_boundary.WebViewProviderFactoryBoundaryInterface;
import org.chromium.support_lib_boundary.util.BoundaryInterfaceReflectionUtil; import org.chromium.support_lib_boundary.util.BoundaryInterfaceReflectionUtil;
...@@ -192,11 +192,9 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary ...@@ -192,11 +192,9 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary
} }
// clang-format on // clang-format on
private static final EnumeratedHistogramSample sApiCallSample =
new EnumeratedHistogramSample("Android.WebView.AndroidX.ApiCall", ApiCall.COUNT);
public static void recordApiCall(@ApiCall int apiCall) { public static void recordApiCall(@ApiCall int apiCall) {
sApiCallSample.record(apiCall); RecordHistogram.recordEnumeratedHistogram(
"Android.WebView.AndroidX.ApiCall", apiCall, ApiCall.COUNT);
} }
// Initialization guarded by mAwInit.getLock() // Initialization guarded by mAwInit.getLock()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment