diff options
-rw-r--r-- | android_webview/javatests/src/org/chromium/android_webview/test/ClientOnReceivedErrorTest.java | 18 | ||||
-rw-r--r-- | android_webview/renderer/aw_content_renderer_client.cc | 5 |
2 files changed, 23 insertions, 0 deletions
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/ClientOnReceivedErrorTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/ClientOnReceivedErrorTest.java index c465e92..d9497e7 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/ClientOnReceivedErrorTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/ClientOnReceivedErrorTest.java @@ -5,6 +5,7 @@ package org.chromium.android_webview.test; import android.test.suitebuilder.annotation.MediumTest; +import android.webkit.WebSettings; import org.chromium.android_webview.AwContents; import org.chromium.android_webview.AndroidProtocolHandler; @@ -118,4 +119,21 @@ public class ClientOnReceivedErrorTest extends AwTestBase { assertEquals(url, onReceivedErrorHelper.getFailingUrl()); assertNotNull(onReceivedErrorHelper.getDescription()); } + + @MediumTest + @Feature({"AndroidWebView"}) + public void testCacheMiss() throws Throwable { + TestCallbackHelperContainer.OnReceivedErrorHelper onReceivedErrorHelper = + mContentsClient.getOnReceivedErrorHelper(); + final String url = "http://example.com/index.html"; + int onReceivedErrorCallCount = onReceivedErrorHelper.getCallCount(); + getAwSettingsOnUiThread(mAwContents).setCacheMode(WebSettings.LOAD_CACHE_ONLY); + loadUrlAsync(mAwContents, url); + + onReceivedErrorHelper.waitForCallback(onReceivedErrorCallCount); + assertEquals(ErrorCodeConversionHelper.ERROR_UNKNOWN, + onReceivedErrorHelper.getErrorCode()); + assertEquals(url, onReceivedErrorHelper.getFailingUrl()); + assertNotNull(onReceivedErrorHelper.getDescription()); + } } diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc index 02b1c54..990e9ea 100644 --- a/android_webview/renderer/aw_content_renderer_client.cc +++ b/android_webview/renderer/aw_content_renderer_client.cc @@ -13,6 +13,7 @@ #include "components/visitedlink/renderer/visitedlink_slave.h" #include "content/public/renderer/render_thread.h" #include "googleurl/src/gurl.h" +#include "net/base/net_errors.h" #include "third_party/WebKit/public/platform/WebString.h" #include "third_party/WebKit/public/platform/WebURL.h" #include "third_party/WebKit/public/platform/WebURLError.h" @@ -68,9 +69,13 @@ void AwContentRendererClient::GetNavigationErrorStrings( std::string contents; if (err.empty()) { contents = AwResource::GetNoDomainPageContent(); + if (error_description) + *error_description = ASCIIToUTF16(net::ErrorToString(error.reason)); } else { contents = AwResource::GetLoadErrorPageContent(); ReplaceSubstringsAfterOffset(&contents, 0, "%e", err); + if (error_description) + *error_description = error.localizedDescription; } ReplaceSubstringsAfterOffset(&contents, 0, "%s", |