summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/alt_error_page_resource_fetcher.cc6
-rw-r--r--webkit/glue/alt_error_page_resource_fetcher.h12
2 files changed, 14 insertions, 4 deletions
diff --git a/webkit/glue/alt_error_page_resource_fetcher.cc b/webkit/glue/alt_error_page_resource_fetcher.cc
index d98e069..1fe8242 100644
--- a/webkit/glue/alt_error_page_resource_fetcher.cc
+++ b/webkit/glue/alt_error_page_resource_fetcher.cc
@@ -22,10 +22,12 @@ static const int kDownloadTimeoutSec = 3;
AltErrorPageResourceFetcher::AltErrorPageResourceFetcher(
const GURL& url,
WebFrame* frame,
+ const WebURLRequest& original_request,
const WebURLError& original_error,
const Callback& callback)
: frame_(frame),
callback_(callback),
+ original_request_(original_request),
original_error_(original_error) {
fetcher_.reset(new ResourceFetcherWithTimeout(
url, frame, WebURLRequest::TargetIsMainFrame, kDownloadTimeoutSec,
@@ -45,9 +47,9 @@ void AltErrorPageResourceFetcher::OnURLFetchComplete(
const std::string& data) {
// A null response indicates a network error.
if (!response.isNull() && response.httpStatusCode() == 200) {
- callback_.Run(frame_, original_error_, data);
+ callback_.Run(frame_, original_request_, original_error_, data);
} else {
- callback_.Run(frame_, original_error_, std::string());
+ callback_.Run(frame_, original_request_, original_error_, std::string());
}
}
diff --git a/webkit/glue/alt_error_page_resource_fetcher.h b/webkit/glue/alt_error_page_resource_fetcher.h
index 6cce034..00a4b93 100644
--- a/webkit/glue/alt_error_page_resource_fetcher.h
+++ b/webkit/glue/alt_error_page_resource_fetcher.h
@@ -9,6 +9,7 @@
#include "base/memory/scoped_ptr.h"
#include "googleurl/src/gurl.h"
#include "third_party/WebKit/Source/Platform/chromium/public/WebURLError.h"
+#include "third_party/WebKit/Source/Platform/chromium/public/WebURLRequest.h"
#include "webkit/glue/webkit_glue_export.h"
namespace WebKit {
@@ -26,12 +27,15 @@ class AltErrorPageResourceFetcher {
// This will be called when the alternative error page has been fetched,
// successfully or not. If there is a failure, the third parameter (the
// data) will be empty.
- typedef base::Callback<void(WebKit::WebFrame*, const WebKit::WebURLError&,
- const std::string&)> Callback;
+ typedef base::Callback<void(WebKit::WebFrame*,
+ const WebKit::WebURLRequest&,
+ const WebKit::WebURLError&,
+ const std::string&)> Callback;
WEBKIT_GLUE_EXPORT AltErrorPageResourceFetcher(
const GURL& url,
WebKit::WebFrame* frame,
+ const WebKit::WebURLRequest& original_request,
const WebKit::WebURLError& original_error,
const Callback& callback);
WEBKIT_GLUE_EXPORT ~AltErrorPageResourceFetcher();
@@ -49,6 +53,10 @@ class AltErrorPageResourceFetcher {
WebKit::WebFrame* frame_;
Callback callback_;
+ // The original request. If loading the alternate error page fails, it's
+ // needed to generate the error page.
+ WebKit::WebURLRequest original_request_;
+
// The error associated with this load. If there's an error talking with the
// alt error page server, we need this to complete the original load.
WebKit::WebURLError original_error_;