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

Unified Diff: android_webview/java/src/org/chromium/android_webview/AwContents.java

Issue 1001003004: [Android WebView] Implement a better OnReceivedError callback (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Restored empty line Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/java/src/org/chromium/android_webview/AwContents.java
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index 8fa1b3393a2464daae33f58101e1dbe52930fc9e..b888cb2c2f8679aa288a9bf096764bddc6def2f6 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -62,6 +62,7 @@ import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.navigation_controller.LoadURLType;
import org.chromium.content_public.browser.navigation_controller.UserAgentOverrideOption;
import org.chromium.content_public.common.Referrer;
+import org.chromium.net.NetError;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
@@ -419,6 +420,25 @@ public class AwContents implements SmartClipProvider,
}
@Override
+ public void onReceivedError(AwContentsClient.AwWebResourceRequest request,
+ AwContentsClient.AwWebResourceError error) {
+ String unreachableWebDataUrl = AwContentsStatics.getUnreachableWebDataUrl();
sgurun-gerrit only 2015/03/17 00:30:04 maybe put a comment in getUnreachableWebDataUrl()
mnaganov (inactive) 2015/03/17 15:29:09 Good point. This may cause a race between two call
+ boolean isErrorUrl =
+ unreachableWebDataUrl != null && unreachableWebDataUrl.equals(request.url);
sgurun-gerrit only 2015/03/17 00:30:04 nit: is the indentation 8 chars here?
mnaganov (inactive) 2015/03/17 15:29:09 Hm. Yes -- it should be 8 as its a long line wrap,
+ if (!isErrorUrl && error.errorCode != NetError.ERR_ABORTED) {
+ // NetError.ERR_ABORTED error code is generated for the following reasons:
+ // - WebView.stopLoading is called,
+ // - the navigation is intercepted by the embedder via shouldOverrideUrlLoading.
+ //
+ // Android WebView does not notify the embedder of these situations using
+ // this error code with the WebViewClient.onReceivedError callback.
+ error.errorCode = ErrorCodeConversionHelper.convertErrorCode(error.errorCode);
+ mContentsClient.getCallbackHelper().postOnReceivedError(request, error);
+ }
+ // AwWebContentsObserver.didFailLoad will send onPageFinished to the embedder.
+ }
+
+ @Override
public void onReceivedHttpError(AwContentsClient.AwWebResourceRequest request,
AwWebResourceResponse response) {
mContentsClient.getCallbackHelper().postOnReceivedHttpError(request, response);

Powered by Google App Engine
This is Rietveld 408576698