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

Unified Diff: android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java

Issue 795053007: Replace TraceEvent.begin()/end() with explicit names (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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 | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java
index 0c97d694aeef62f73c53967b5b1834cf8aed1767..413c66a02ff59a2cefbc94e5152cc5431cdb134f 100644
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java
@@ -242,12 +242,15 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void getVisitedHistory(ValueCallback<String[]> callback) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "getVisitedHistory");
- mWebChromeClient.getVisitedHistory(callback);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.getVisitedHistory");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "getVisitedHistory");
+ mWebChromeClient.getVisitedHistory(callback);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.getVisitedHistory");
}
- TraceEvent.end();
}
/**
@@ -255,10 +258,13 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void doUpdateVisitedHistory(String url, boolean isReload) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "doUpdateVisitedHistory=" + url + " reload=" + isReload);
- mWebViewClient.doUpdateVisitedHistory(mWebView, url, isReload);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.doUpdateVisitedHistory");
+ if (TRACE) Log.d(TAG, "doUpdateVisitedHistory=" + url + " reload=" + isReload);
+ mWebViewClient.doUpdateVisitedHistory(mWebView, url, isReload);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.doUpdateVisitedHistory");
+ }
}
/**
@@ -266,12 +272,15 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onProgressChanged(int progress) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onProgressChanged=" + progress);
- mWebChromeClient.onProgressChanged(mWebView, progress);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onProgressChanged");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onProgressChanged=" + progress);
+ mWebChromeClient.onProgressChanged(mWebView, progress);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onProgressChanged");
}
- TraceEvent.end();
}
private static class WebResourceRequestImpl implements WebResourceRequest {
@@ -312,24 +321,27 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public AwWebResourceResponse shouldInterceptRequest(ShouldInterceptRequestParams params) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "shouldInterceptRequest=" + params.url);
- WebResourceResponse response =
- mWebViewClient.shouldInterceptRequest(mWebView, new WebResourceRequestImpl(params));
- TraceEvent.end();
- if (response == null) return null;
-
- // AwWebResourceResponse should support null headers. b/16332774.
- Map<String, String> responseHeaders = response.getResponseHeaders();
- if (responseHeaders == null) responseHeaders = new HashMap<String, String>();
-
- return new AwWebResourceResponse(
- response.getMimeType(),
- response.getEncoding(),
- response.getData(),
- response.getStatusCode(),
- response.getReasonPhrase(),
- responseHeaders);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.shouldInterceptRequest");
+ if (TRACE) Log.d(TAG, "shouldInterceptRequest=" + params.url);
+ WebResourceResponse response = mWebViewClient.shouldInterceptRequest(mWebView,
+ new WebResourceRequestImpl(params));
+ if (response == null) return null;
+
+ // AwWebResourceResponse should support null headers. b/16332774.
+ Map<String, String> responseHeaders = response.getResponseHeaders();
+ if (responseHeaders == null) responseHeaders = new HashMap<String, String>();
+
+ return new AwWebResourceResponse(
+ response.getMimeType(),
+ response.getEncoding(),
+ response.getData(),
+ response.getStatusCode(),
+ response.getReasonPhrase(),
+ responseHeaders);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.shouldInterceptRequest");
+ }
}
/**
@@ -337,11 +349,14 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public boolean shouldOverrideUrlLoading(String url) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "shouldOverrideUrlLoading=" + url);
- boolean result = mWebViewClient.shouldOverrideUrlLoading(mWebView, url);
- TraceEvent.end();
- return result;
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.shouldOverrideUrlLoading");
+ if (TRACE) Log.d(TAG, "shouldOverrideUrlLoading=" + url);
+ boolean result = mWebViewClient.shouldOverrideUrlLoading(mWebView, url);
+ return result;
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.shouldOverrideUrlLoading");
+ }
}
/**
@@ -349,10 +364,13 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onUnhandledKeyEvent(KeyEvent event) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onUnhandledKeyEvent");
- mWebViewClient.onUnhandledKeyEvent(mWebView, event);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onUnhandledKeyEvent");
+ if (TRACE) Log.d(TAG, "onUnhandledKeyEvent");
+ mWebViewClient.onUnhandledKeyEvent(mWebView, event);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onUnhandledKeyEvent");
+ }
}
/**
@@ -360,20 +378,23 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
- TraceEvent.begin();
- boolean result;
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onConsoleMessage: " + consoleMessage.message());
- result = mWebChromeClient.onConsoleMessage(consoleMessage);
- String message = consoleMessage.message();
- if (result && message != null && message.startsWith("[blocked]")) {
- Log.e(TAG, "Blocked URL: " + message);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onConsoleMessage");
+ boolean result;
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onConsoleMessage: " + consoleMessage.message());
+ result = mWebChromeClient.onConsoleMessage(consoleMessage);
+ String message = consoleMessage.message();
+ if (result && message != null && message.startsWith("[blocked]")) {
+ Log.e(TAG, "Blocked URL: " + message);
+ }
+ } else {
+ result = false;
}
- } else {
- result = false;
+ return result;
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onConsoleMessage");
}
- TraceEvent.end();
- return result;
}
/**
@@ -382,11 +403,14 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
@Override
public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches,
boolean isDoneCounting) {
- if (mFindListener == null) return;
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onFindResultReceived");
- mFindListener.onFindResultReceived(activeMatchOrdinal, numberOfMatches, isDoneCounting);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onFindResultReceived");
+ if (mFindListener == null) return;
+ if (TRACE) Log.d(TAG, "onFindResultReceived");
+ mFindListener.onFindResultReceived(activeMatchOrdinal, numberOfMatches, isDoneCounting);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onFindResultReceived");
+ }
}
/**
@@ -394,35 +418,44 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onNewPicture(Picture picture) {
- if (mPictureListener == null) return;
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onNewPicture");
- mPictureListener.onNewPicture(mWebView, picture);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onNewPicture");
+ if (mPictureListener == null) return;
+ if (TRACE) Log.d(TAG, "onNewPicture");
+ mPictureListener.onNewPicture(mWebView, picture);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onNewPicture");
+ }
}
@Override
public void onLoadResource(String url) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onLoadResource=" + url);
- mWebViewClient.onLoadResource(mWebView, url);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onLoadResource");
+ if (TRACE) Log.d(TAG, "onLoadResource=" + url);
+ mWebViewClient.onLoadResource(mWebView, url);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onLoadResource");
+ }
}
@Override
public boolean onCreateWindow(boolean isDialog, boolean isUserGesture) {
- Message m = mUiThreadHandler.obtainMessage(
- NEW_WEBVIEW_CREATED, mWebView.new WebViewTransport());
- TraceEvent.begin();
- boolean result;
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onCreateWindow");
- result = mWebChromeClient.onCreateWindow(mWebView, isDialog, isUserGesture, m);
- } else {
- result = false;
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onCreateWindow");
+ Message m = mUiThreadHandler.obtainMessage(
+ NEW_WEBVIEW_CREATED, mWebView.new WebViewTransport());
+ boolean result;
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onCreateWindow");
+ result = mWebChromeClient.onCreateWindow(mWebView, isDialog, isUserGesture, m);
+ } else {
+ result = false;
+ }
+ return result;
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onCreateWindow");
}
- TraceEvent.end();
- return result;
}
/**
@@ -430,12 +463,15 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onCloseWindow() {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onCloseWindow");
- mWebChromeClient.onCloseWindow(mWebView);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onCloseWindow");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onCloseWindow");
+ mWebChromeClient.onCloseWindow(mWebView);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onCloseWindow");
}
- TraceEvent.end();
}
/**
@@ -443,12 +479,15 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onRequestFocus() {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onRequestFocus");
- mWebChromeClient.onRequestFocus(mWebView);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onRequestFocus");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onRequestFocus");
+ mWebChromeClient.onRequestFocus(mWebView);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onRequestFocus");
}
- TraceEvent.end();
}
/**
@@ -456,12 +495,15 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onReceivedTouchIconUrl(String url, boolean precomposed) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onReceivedTouchIconUrl=" + url);
- mWebChromeClient.onReceivedTouchIconUrl(mWebView, url, precomposed);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onReceivedTouchIconUrl");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onReceivedTouchIconUrl=" + url);
+ mWebChromeClient.onReceivedTouchIconUrl(mWebView, url, precomposed);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onReceivedTouchIconUrl");
}
- TraceEvent.end();
}
/**
@@ -469,12 +511,15 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onReceivedIcon(Bitmap bitmap) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onReceivedIcon");
- mWebChromeClient.onReceivedIcon(mWebView, bitmap);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onReceivedIcon");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onReceivedIcon");
+ mWebChromeClient.onReceivedIcon(mWebView, bitmap);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onReceivedIcon");
}
- TraceEvent.end();
}
/**
@@ -482,10 +527,13 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onPageStarted(String url) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onPageStarted=" + url);
- mWebViewClient.onPageStarted(mWebView, url, mWebView.getFavicon());
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onPageStarted");
+ if (TRACE) Log.d(TAG, "onPageStarted=" + url);
+ mWebViewClient.onPageStarted(mWebView, url, mWebView.getFavicon());
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onPageStarted");
+ }
}
/**
@@ -493,35 +541,38 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onPageFinished(String url) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onPageFinished=" + url);
- mWebViewClient.onPageFinished(mWebView, url);
- TraceEvent.end();
-
- // See b/8208948
- // This fakes an onNewPicture callback after onPageFinished to allow
- // CTS tests to run in an un-flaky manner. This is required as the
- // path for sending Picture updates in Chromium are decoupled from the
- // page loading callbacks, i.e. the Chrome compositor may draw our
- // content and send the Picture before onPageStarted or onPageFinished
- // are invoked. The CTS harness discards any pictures it receives before
- // onPageStarted is invoked, so in the case we get the Picture before that and
- // no further updates after onPageStarted, we'll fail the test by timing
- // out waiting for a Picture.
- // To ensure backwards compatibility, we need to defer sending Picture updates
- // until onPageFinished has been invoked. This work is being done
- // upstream, and we can revert this hack when it lands.
- if (mPictureListener != null) {
- ThreadUtils.postOnUiThreadDelayed(new Runnable() {
- @Override
- public void run() {
- UnimplementedWebViewApi.invoke();
- if (mPictureListener != null) {
- if (TRACE) Log.d(TAG, "onPageFinished-fake");
- mPictureListener.onNewPicture(mWebView, new Picture());
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onPageFinished");
+ if (TRACE) Log.d(TAG, "onPageFinished=" + url);
+ mWebViewClient.onPageFinished(mWebView, url);
+
+ // See b/8208948
+ // This fakes an onNewPicture callback after onPageFinished to allow
+ // CTS tests to run in an un-flaky manner. This is required as the
+ // path for sending Picture updates in Chromium are decoupled from the
+ // page loading callbacks, i.e. the Chrome compositor may draw our
+ // content and send the Picture before onPageStarted or onPageFinished
+ // are invoked. The CTS harness discards any pictures it receives before
+ // onPageStarted is invoked, so in the case we get the Picture before that and
+ // no further updates after onPageStarted, we'll fail the test by timing
+ // out waiting for a Picture.
+ // To ensure backwards compatibility, we need to defer sending Picture updates
+ // until onPageFinished has been invoked. This work is being done
+ // upstream, and we can revert this hack when it lands.
+ if (mPictureListener != null) {
+ ThreadUtils.postOnUiThreadDelayed(new Runnable() {
+ @Override
+ public void run() {
+ UnimplementedWebViewApi.invoke();
+ if (mPictureListener != null) {
+ if (TRACE) Log.d(TAG, "onPageFinished-fake");
+ mPictureListener.onNewPicture(mWebView, new Picture());
+ }
}
- }
- }, 100);
+ }, 100);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onPageFinished");
}
}
@@ -530,16 +581,19 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onReceivedError(int errorCode, String description, String failingUrl) {
- if (description == null || description.isEmpty()) {
- // ErrorStrings is @hidden, so we can't do this in AwContents.
- // Normally the net/ layer will set a valid description, but for synthesized callbacks
- // (like in the case for intercepted requests) AwContents will pass in null.
- description = mWebViewDelegate.getErrorString(mContext, errorCode);
- }
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onReceivedError=" + failingUrl);
- mWebViewClient.onReceivedError(mWebView, errorCode, description, failingUrl);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onReceivedError");
+ if (description == null || description.isEmpty()) {
+ // ErrorStrings is @hidden, so we can't do this in AwContents. Normally the net/
+ // layer will set a valid description, but for synthesized callbacks (like in the
+ // case for intercepted requests) AwContents will pass in null.
+ description = mWebViewDelegate.getErrorString(mContext, errorCode);
+ }
+ if (TRACE) Log.d(TAG, "onReceivedError=" + failingUrl);
+ mWebViewClient.onReceivedError(mWebView, errorCode, description, failingUrl);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onReceivedError");
+ }
}
/**
@@ -547,12 +601,15 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public void onReceivedTitle(String title) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onReceivedTitle");
- mWebChromeClient.onReceivedTitle(mWebView, title);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onReceivedTitle");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onReceivedTitle");
+ mWebChromeClient.onReceivedTitle(mWebView, title);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onReceivedTitle");
}
- TraceEvent.end();
}
/**
@@ -560,17 +617,21 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
@Override
public boolean shouldOverrideKeyEvent(KeyEvent event) {
- // The check below is reflecting Clank's behavior and is a workaround for http://b/7697782.
- // 1. The check for system key should be made in AwContents or ContentViewCore, before
- // shouldOverrideKeyEvent() is called at all.
- // 2. shouldOverrideKeyEvent() should be called in onKeyDown/onKeyUp, not from
- // dispatchKeyEvent().
- if (!ContentViewClient.shouldPropagateKey(event.getKeyCode())) return true;
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "shouldOverrideKeyEvent");
- boolean result = mWebViewClient.shouldOverrideKeyEvent(mWebView, event);
- TraceEvent.end();
- return result;
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.shouldOverrideKeyEvent");
+ // The check below is reflecting Clank's behavior and is a workaround for
+ // http://b/7697782.
+ // 1. The check for system key should be made in AwContents or ContentViewCore, before
+ // shouldOverrideKeyEvent() is called at all.
+ // 2. shouldOverrideKeyEvent() should be called in onKeyDown/onKeyUp, not from
+ // dispatchKeyEvent().
+ if (!ContentViewClient.shouldPropagateKey(event.getKeyCode())) return true;
+ if (TRACE) Log.d(TAG, "shouldOverrideKeyEvent");
+ boolean result = mWebViewClient.shouldOverrideKeyEvent(mWebView, event);
+ return result;
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.shouldOverrideKeyEvent");
+ }
}
/**
@@ -579,69 +640,84 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
*/
// TODO: Delete this method when removed from base class.
public void onStartContentIntent(Context context, String contentUrl) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "shouldOverrideUrlLoading=" + contentUrl);
- mWebViewClient.shouldOverrideUrlLoading(mWebView, contentUrl);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onStartContentIntent");
+ if (TRACE) Log.d(TAG, "shouldOverrideUrlLoading=" + contentUrl);
+ mWebViewClient.shouldOverrideUrlLoading(mWebView, contentUrl);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onStartContentIntent");
+ }
}
@Override
public void onGeolocationPermissionsShowPrompt(String origin,
GeolocationPermissions.Callback callback) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onGeolocationPermissionsShowPrompt");
- mWebChromeClient.onGeolocationPermissionsShowPrompt(origin, callback);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onGeolocationPermissionsShowPrompt");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onGeolocationPermissionsShowPrompt");
+ mWebChromeClient.onGeolocationPermissionsShowPrompt(origin, callback);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onGeolocationPermissionsShowPrompt");
}
- TraceEvent.end();
}
@Override
public void onGeolocationPermissionsHidePrompt() {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onGeolocationPermissionsHidePrompt");
- mWebChromeClient.onGeolocationPermissionsHidePrompt();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onGeolocationPermissionsHidePrompt");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onGeolocationPermissionsHidePrompt");
+ mWebChromeClient.onGeolocationPermissionsHidePrompt();
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onGeolocationPermissionsHidePrompt");
}
- TraceEvent.end();
}
@Override
public void onPermissionRequest(AwPermissionRequest permissionRequest) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onPermissionRequest");
- if (mOngoingPermissionRequests == null) {
- mOngoingPermissionRequests = new WeakHashMap<AwPermissionRequest,
- WeakReference<PermissionRequestAdapter>>();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onPermissionRequest");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onPermissionRequest");
+ if (mOngoingPermissionRequests == null) {
+ mOngoingPermissionRequests = new WeakHashMap<AwPermissionRequest,
+ WeakReference<PermissionRequestAdapter>>();
+ }
+ PermissionRequestAdapter adapter = new PermissionRequestAdapter(permissionRequest);
+ mOngoingPermissionRequests.put(
+ permissionRequest, new WeakReference<PermissionRequestAdapter>(adapter));
+ mWebChromeClient.onPermissionRequest(adapter);
+ } else {
+ // By default, we deny the permission.
+ permissionRequest.deny();
}
- PermissionRequestAdapter adapter = new PermissionRequestAdapter(permissionRequest);
- mOngoingPermissionRequests.put(
- permissionRequest, new WeakReference<PermissionRequestAdapter>(adapter));
- mWebChromeClient.onPermissionRequest(adapter);
- } else {
- // By default, we deny the permission.
- permissionRequest.deny();
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onPermissionRequest");
}
- TraceEvent.end();
}
@Override
public void onPermissionRequestCanceled(AwPermissionRequest permissionRequest) {
- TraceEvent.begin();
- if (mWebChromeClient != null && mOngoingPermissionRequests != null) {
- if (TRACE) Log.d(TAG, "onPermissionRequestCanceled");
- WeakReference<PermissionRequestAdapter> weakRef =
- mOngoingPermissionRequests.get(permissionRequest);
- // We don't hold strong reference to PermissionRequestAdpater and don't expect the
- // user only holds weak reference to it either, if so, user has no way to call
- // grant()/deny(), and no need to be notified the cancellation of request.
- if (weakRef != null) {
- PermissionRequestAdapter adapter = weakRef.get();
- if (adapter != null) mWebChromeClient.onPermissionRequestCanceled(adapter);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onPermissionRequestCanceled");
+ if (mWebChromeClient != null && mOngoingPermissionRequests != null) {
+ if (TRACE) Log.d(TAG, "onPermissionRequestCanceled");
+ WeakReference<PermissionRequestAdapter> weakRef =
+ mOngoingPermissionRequests.get(permissionRequest);
+ // We don't hold strong reference to PermissionRequestAdpater and don't expect the
+ // user only holds weak reference to it either, if so, user has no way to call
+ // grant()/deny(), and no need to be notified the cancellation of request.
+ if (weakRef != null) {
+ PermissionRequestAdapter adapter = weakRef.get();
+ if (adapter != null) mWebChromeClient.onPermissionRequestCanceled(adapter);
+ }
}
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onPermissionRequestCanceled");
}
- TraceEvent.end();
}
private static class JsPromptResultReceiverAdapter implements JsResult.ResultReceiver {
@@ -683,98 +759,116 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
@Override
public void handleJsAlert(String url, String message, JsResultReceiver receiver) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- final JsPromptResult res =
- new JsPromptResultReceiverAdapter(receiver).getPromptResult();
- if (TRACE) Log.d(TAG, "onJsAlert");
- if (!mWebChromeClient.onJsAlert(mWebView, url, message, res)) {
- new JsDialogHelper(res, JsDialogHelper.ALERT, null, message, url)
- .showDialog(mContext);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.handleJsAlert");
+ if (mWebChromeClient != null) {
+ final JsPromptResult res =
+ new JsPromptResultReceiverAdapter(receiver).getPromptResult();
+ if (TRACE) Log.d(TAG, "onJsAlert");
+ if (!mWebChromeClient.onJsAlert(mWebView, url, message, res)) {
+ new JsDialogHelper(res, JsDialogHelper.ALERT, null, message, url)
+ .showDialog(mContext);
+ }
+ } else {
+ receiver.cancel();
}
- } else {
- receiver.cancel();
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.handleJsAlert");
}
- TraceEvent.end();
}
@Override
public void handleJsBeforeUnload(String url, String message, JsResultReceiver receiver) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- final JsPromptResult res =
- new JsPromptResultReceiverAdapter(receiver).getPromptResult();
- if (TRACE) Log.d(TAG, "onJsBeforeUnload");
- if (!mWebChromeClient.onJsBeforeUnload(mWebView, url, message, res)) {
- new JsDialogHelper(res, JsDialogHelper.UNLOAD, null, message, url)
- .showDialog(mContext);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.handleJsBeforeUnload");
+ if (mWebChromeClient != null) {
+ final JsPromptResult res =
+ new JsPromptResultReceiverAdapter(receiver).getPromptResult();
+ if (TRACE) Log.d(TAG, "onJsBeforeUnload");
+ if (!mWebChromeClient.onJsBeforeUnload(mWebView, url, message, res)) {
+ new JsDialogHelper(res, JsDialogHelper.UNLOAD, null, message, url)
+ .showDialog(mContext);
+ }
+ } else {
+ receiver.cancel();
}
- } else {
- receiver.cancel();
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.handleJsBeforeUnload");
}
- TraceEvent.end();
}
@Override
public void handleJsConfirm(String url, String message, JsResultReceiver receiver) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- final JsPromptResult res =
- new JsPromptResultReceiverAdapter(receiver).getPromptResult();
- if (TRACE) Log.d(TAG, "onJsConfirm");
- if (!mWebChromeClient.onJsConfirm(mWebView, url, message, res)) {
- new JsDialogHelper(res, JsDialogHelper.CONFIRM, null, message, url)
- .showDialog(mContext);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.handleJsConfirm");
+ if (mWebChromeClient != null) {
+ final JsPromptResult res =
+ new JsPromptResultReceiverAdapter(receiver).getPromptResult();
+ if (TRACE) Log.d(TAG, "onJsConfirm");
+ if (!mWebChromeClient.onJsConfirm(mWebView, url, message, res)) {
+ new JsDialogHelper(res, JsDialogHelper.CONFIRM, null, message, url)
+ .showDialog(mContext);
+ }
+ } else {
+ receiver.cancel();
}
- } else {
- receiver.cancel();
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.handleJsConfirm");
}
- TraceEvent.end();
}
@Override
public void handleJsPrompt(String url, String message, String defaultValue,
JsPromptResultReceiver receiver) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- final JsPromptResult res =
- new JsPromptResultReceiverAdapter(receiver).getPromptResult();
- if (TRACE) Log.d(TAG, "onJsPrompt");
- if (!mWebChromeClient.onJsPrompt(mWebView, url, message, defaultValue, res)) {
- new JsDialogHelper(res, JsDialogHelper.PROMPT, defaultValue, message, url)
- .showDialog(mContext);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.handleJsPrompt");
+ if (mWebChromeClient != null) {
+ final JsPromptResult res =
+ new JsPromptResultReceiverAdapter(receiver).getPromptResult();
+ if (TRACE) Log.d(TAG, "onJsPrompt");
+ if (!mWebChromeClient.onJsPrompt(mWebView, url, message, defaultValue, res)) {
+ new JsDialogHelper(res, JsDialogHelper.PROMPT, defaultValue, message, url)
+ .showDialog(mContext);
+ }
+ } else {
+ receiver.cancel();
}
- } else {
- receiver.cancel();
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.handleJsPrompt");
}
- TraceEvent.end();
}
@Override
public void onReceivedHttpAuthRequest(AwHttpAuthHandler handler, String host, String realm) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onReceivedHttpAuthRequest=" + host);
- mWebViewClient.onReceivedHttpAuthRequest(
- mWebView, new AwHttpAuthHandlerAdapter(handler), host, realm);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onReceivedHttpAuthRequest");
+ if (TRACE) Log.d(TAG, "onReceivedHttpAuthRequest=" + host);
+ mWebViewClient.onReceivedHttpAuthRequest(
+ mWebView, new AwHttpAuthHandlerAdapter(handler), host, realm);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onReceivedHttpAuthRequest");
+ }
}
@Override
public void onReceivedSslError(final ValueCallback<Boolean> callback, SslError error) {
- SslErrorHandler handler = new SslErrorHandler() {
- @Override
- public void proceed() {
- callback.onReceiveValue(true);
- }
- @Override
- public void cancel() {
- callback.onReceiveValue(false);
- }
- };
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onReceivedSslError");
- mWebViewClient.onReceivedSslError(mWebView, handler, error);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onReceivedSslError");
+ SslErrorHandler handler = new SslErrorHandler() {
+ @Override
+ public void proceed() {
+ callback.onReceiveValue(true);
+ }
+ @Override
+ public void cancel() {
+ callback.onReceiveValue(false);
+ }
+ };
+ if (TRACE) Log.d(TAG, "onReceivedSslError");
+ mWebViewClient.onReceivedSslError(mWebView, handler, error);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onReceivedSslError");
+ }
}
private static class ClientCertRequestImpl extends ClientCertRequest {
@@ -837,27 +931,36 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
AwContentsClientBridge.ClientCertificateRequestCallback callback, String[] keyTypes,
Principal[] principals, String host, int port) {
if (TRACE) Log.d(TAG, "onReceivedClientCertRequest");
- TraceEvent.begin();
- final ClientCertRequestImpl request =
- new ClientCertRequestImpl(callback, keyTypes, principals, host, port);
- mWebViewClient.onReceivedClientCertRequest(mWebView, request);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onReceivedClientCertRequest");
+ final ClientCertRequestImpl request =
+ new ClientCertRequestImpl(callback, keyTypes, principals, host, port);
+ mWebViewClient.onReceivedClientCertRequest(mWebView, request);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onReceivedClientCertRequest");
+ }
}
@Override
public void onReceivedLoginRequest(String realm, String account, String args) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onReceivedLoginRequest=" + realm);
- mWebViewClient.onReceivedLoginRequest(mWebView, realm, account, args);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onReceivedLoginRequest");
+ if (TRACE) Log.d(TAG, "onReceivedLoginRequest=" + realm);
+ mWebViewClient.onReceivedLoginRequest(mWebView, realm, account, args);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onReceivedLoginRequest");
+ }
}
@Override
public void onFormResubmission(Message dontResend, Message resend) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onFormResubmission");
- mWebViewClient.onFormResubmission(mWebView, dontResend, resend);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onFormResubmission");
+ if (TRACE) Log.d(TAG, "onFormResubmission");
+ mWebViewClient.onFormResubmission(mWebView, dontResend, resend);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onFormResubmission");
+ }
}
@Override
@@ -867,140 +970,166 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
String contentDisposition,
String mimeType,
long contentLength) {
- if (mDownloadListener != null) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, "onDownloadStart");
- mDownloadListener.onDownloadStart(
- url, userAgent, contentDisposition, mimeType, contentLength);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onDownloadStart");
+ if (mDownloadListener != null) {
+ if (TRACE) Log.d(TAG, "onDownloadStart");
+ mDownloadListener.onDownloadStart(
+ url, userAgent, contentDisposition, mimeType, contentLength);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onDownloadStart");
}
}
@Override
public void showFileChooser(final ValueCallback<String[]> uploadFileCallback,
final AwContentsClient.FileChooserParams fileChooserParams) {
- if (mWebChromeClient == null) {
- uploadFileCallback.onReceiveValue(null);
- return;
- }
- TraceEvent.begin();
- FileChooserParamsAdapter adapter =
- new FileChooserParamsAdapter(fileChooserParams, mContext);
- if (TRACE) Log.d(TAG, "showFileChooser");
- ValueCallback<Uri[]> callbackAdapter = new ValueCallback<Uri[]>() {
- private boolean mCompleted;
- @Override
- public void onReceiveValue(Uri[] uriList) {
- if (mCompleted) {
- throw new IllegalStateException("showFileChooser result was already called");
- }
- mCompleted = true;
- String s[] = null;
- if (uriList != null) {
- s = new String[uriList.length];
- for (int i = 0; i < uriList.length; i++) {
- s[i] = uriList[i].toString();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.showFileChooser");
+ if (mWebChromeClient == null) {
+ uploadFileCallback.onReceiveValue(null);
+ return;
+ }
+ FileChooserParamsAdapter adapter =
+ new FileChooserParamsAdapter(fileChooserParams, mContext);
+ if (TRACE) Log.d(TAG, "showFileChooser");
+ ValueCallback<Uri[]> callbackAdapter = new ValueCallback<Uri[]>() {
+ private boolean mCompleted;
+ @Override
+ public void onReceiveValue(Uri[] uriList) {
+ if (mCompleted) {
+ throw new IllegalStateException(
+ "showFileChooser result was already called");
+ }
+ mCompleted = true;
+ String s[] = null;
+ if (uriList != null) {
+ s = new String[uriList.length];
+ for (int i = 0; i < uriList.length; i++) {
+ s[i] = uriList[i].toString();
+ }
}
+ uploadFileCallback.onReceiveValue(s);
}
- uploadFileCallback.onReceiveValue(s);
- }
- };
+ };
- // Invoke the new callback introduced in Lollipop. If the app handles
- // it, we're done here.
- if (mWebChromeClient.onShowFileChooser(mWebView, callbackAdapter, adapter)) {
- return;
- }
+ // Invoke the new callback introduced in Lollipop. If the app handles
+ // it, we're done here.
+ if (mWebChromeClient.onShowFileChooser(mWebView, callbackAdapter, adapter)) {
+ return;
+ }
- // If the app did not handle it and we are running on Lollipop or newer, then
- // abort.
- if (mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.LOLLIPOP) {
- uploadFileCallback.onReceiveValue(null);
- return;
- }
+ // If the app did not handle it and we are running on Lollipop or newer, then
+ // abort.
+ if (mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.LOLLIPOP) {
+ uploadFileCallback.onReceiveValue(null);
+ return;
+ }
- // Otherwise, for older apps, attempt to invoke the legacy (hidden) API for
- // backwards compatibility.
- ValueCallback<Uri> innerCallback = new ValueCallback<Uri>() {
- private boolean mCompleted;
- @Override
- public void onReceiveValue(Uri uri) {
- if (mCompleted) {
- throw new IllegalStateException("showFileChooser result was already called");
+ // Otherwise, for older apps, attempt to invoke the legacy (hidden) API for
+ // backwards compatibility.
+ ValueCallback<Uri> innerCallback = new ValueCallback<Uri>() {
+ private boolean mCompleted;
+ @Override
+ public void onReceiveValue(Uri uri) {
+ if (mCompleted) {
+ throw new IllegalStateException(
+ "showFileChooser result was already called");
+ }
+ mCompleted = true;
+ uploadFileCallback.onReceiveValue(
+ uri == null ? null : new String[] {uri.toString()});
}
- mCompleted = true;
- uploadFileCallback.onReceiveValue(
- uri == null ? null : new String[] {uri.toString()});
- }
- };
- if (TRACE) Log.d(TAG, "openFileChooser");
- mWebChromeClient.openFileChooser(
- innerCallback, fileChooserParams.acceptTypes, fileChooserParams.capture ? "*" : "");
- TraceEvent.end();
+ };
+ if (TRACE) Log.d(TAG, "openFileChooser");
+ mWebChromeClient.openFileChooser(
+ innerCallback,
+ fileChooserParams.acceptTypes,
+ fileChooserParams.capture ? "*" : "");
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.showFileChooser");
+ }
}
@Override
public void onScaleChangedScaled(float oldScale, float newScale) {
- TraceEvent.begin();
- if (TRACE) Log.d(TAG, " onScaleChangedScaled");
- mWebViewClient.onScaleChanged(mWebView, oldScale, newScale);
- TraceEvent.end();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onScaleChangedScaled");
+ if (TRACE) Log.d(TAG, " onScaleChangedScaled");
+ mWebViewClient.onScaleChanged(mWebView, oldScale, newScale);
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onScaleChangedScaled");
+ }
}
@Override
public void onShowCustomView(View view, CustomViewCallback cb) {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onShowCustomView");
- mWebChromeClient.onShowCustomView(view, cb);
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onShowCustomView");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onShowCustomView");
+ mWebChromeClient.onShowCustomView(view, cb);
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onShowCustomView");
}
- TraceEvent.end();
}
@Override
public void onHideCustomView() {
- TraceEvent.begin();
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "onHideCustomView");
- mWebChromeClient.onHideCustomView();
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.onHideCustomView");
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "onHideCustomView");
+ mWebChromeClient.onHideCustomView();
+ }
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.onHideCustomView");
}
- TraceEvent.end();
}
@Override
protected View getVideoLoadingProgressView() {
- TraceEvent.begin();
- View result;
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "getVideoLoadingProgressView");
- result = mWebChromeClient.getVideoLoadingProgressView();
- } else {
- result = null;
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.getVideoLoadingProgressView");
+ View result;
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "getVideoLoadingProgressView");
+ result = mWebChromeClient.getVideoLoadingProgressView();
+ } else {
+ result = null;
+ }
+ return result;
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.getVideoLoadingProgressView");
}
- TraceEvent.end();
- return result;
}
@Override
public Bitmap getDefaultVideoPoster() {
- TraceEvent.begin();
- Bitmap result = null;
- if (mWebChromeClient != null) {
- if (TRACE) Log.d(TAG, "getDefaultVideoPoster");
- result = mWebChromeClient.getDefaultVideoPoster();
- }
- if (result == null) {
- // The ic_media_video_poster icon is transparent so we need to draw it on a gray
- // background.
- Bitmap poster = BitmapFactory.decodeResource(
- mContext.getResources(), R.drawable.ic_media_video_poster);
- result = Bitmap.createBitmap(poster.getWidth(), poster.getHeight(), poster.getConfig());
- result.eraseColor(Color.GRAY);
- Canvas canvas = new Canvas(result);
- canvas.drawBitmap(poster, 0f, 0f, null);
- }
- TraceEvent.end();
- return result;
+ try {
+ TraceEvent.begin("WebViewContentsClientAdapter.getDefaultVideoPoster");
+ Bitmap result = null;
+ if (mWebChromeClient != null) {
+ if (TRACE) Log.d(TAG, "getDefaultVideoPoster");
+ result = mWebChromeClient.getDefaultVideoPoster();
+ }
+ if (result == null) {
+ // The ic_media_video_poster icon is transparent so we need to draw it on a gray
+ // background.
+ Bitmap poster = BitmapFactory.decodeResource(
+ mContext.getResources(), R.drawable.ic_media_video_poster);
+ result = Bitmap.createBitmap(
+ poster.getWidth(), poster.getHeight(), poster.getConfig());
+ result.eraseColor(Color.GRAY);
+ Canvas canvas = new Canvas(result);
+ canvas.drawBitmap(poster, 0f, 0f, null);
+ }
+ return result;
+ } finally {
+ TraceEvent.end("WebViewContentsClientAdapter.getDefaultVideoPoster");
+ }
}
// TODO: Move to upstream.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698