summaryrefslogtreecommitdiffstats
path: root/webkit/glue/alt_error_page_resource_fetcher.h
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/glue/alt_error_page_resource_fetcher.h')
-rw-r--r--webkit/glue/alt_error_page_resource_fetcher.h54
1 files changed, 32 insertions, 22 deletions
diff --git a/webkit/glue/alt_error_page_resource_fetcher.h b/webkit/glue/alt_error_page_resource_fetcher.h
index 0ca357b..3d50972 100644
--- a/webkit/glue/alt_error_page_resource_fetcher.h
+++ b/webkit/glue/alt_error_page_resource_fetcher.h
@@ -1,49 +1,59 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef WEBKIT_GLUE_ALT_ERROR_PAGE_RESOURCE_FETCHER_H__
-#define WEBKIT_GLUE_ALT_ERROR_PAGE_RESOURCE_FETCHER_H__
-
-#include <string>
+#ifndef WEBKIT_GLUE_ALT_ERROR_PAGE_RESOURCE_FETCHER_H_
+#define WEBKIT_GLUE_ALT_ERROR_PAGE_RESOURCE_FETCHER_H_
#include "base/scoped_ptr.h"
-#include "webkit/api/public/WebURLError.h"
-#include "webkit/api/public/WebURLRequest.h"
-#include "webkit/glue/resource_fetcher.h"
+#include "base/task.h"
+#include "googleurl/src/gurl.h"
-class ResourceFetcherWithTimeout;
-class WebFrameImpl;
-class WebView;
+class WebFrame;
+
+namespace WebKit {
+class WebURLResponse;
+}
namespace webkit_glue {
+class ResourceFetcherWithTimeout;
+
// Used for downloading alternate dns error pages. Once downloading is done
// (or fails), the webview delegate is notified.
class AltErrorPageResourceFetcher {
public:
- AltErrorPageResourceFetcher(WebView* web_view,
- WebFrame* web_frame,
- const WebKit::WebURLError& web_error,
- const GURL& url);
+ // This will be called when the alternative error page has been fetched,
+ // successfully or not. If there is a failure, the second parameter (the
+ // data) will be empty.
+ typedef Callback2<const GURL&, const std::string&>::Type Callback;
+
+ AltErrorPageResourceFetcher(const GURL& url,
+ WebFrame* frame,
+ const GURL& unreachable_url,
+ Callback* callback);
~AltErrorPageResourceFetcher();
+ // Stop any pending loads.
+ void Cancel();
+
private:
void OnURLFetchComplete(const WebKit::WebURLResponse& response,
const std::string& data);
- // References to our owners
- WebView* web_view_;
- WebFrame* web_frame_;
- WebKit::WebURLError web_error_;
- WebKit::WebURLRequest failed_request_;
-
// Does the actual fetching.
scoped_ptr<ResourceFetcherWithTimeout> fetcher_;
+ scoped_ptr<Callback> callback_;
+
+ // The "unreachable url" associated with this load. If there's an error
+ // talking with the alt 404 page server, we need this to complete the
+ // original load.
+ GURL unreachable_url_;
+
DISALLOW_COPY_AND_ASSIGN(AltErrorPageResourceFetcher);
};
} // namespace webkit_glue
-#endif // WEBKIT_GLUE_ALT_ERROR_PAGE_RESOURCE_FETCHER_H__
+#endif // WEBKIT_GLUE_ALT_ERROR_PAGE_RESOURCE_FETCHER_H_