summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--android_webview/javatests/src/org/chromium/android_webview/test/ClientOnReceivedErrorTest.java18
-rw-r--r--android_webview/renderer/aw_content_renderer_client.cc5
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",