| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "webkit/glue/alt_error_page_resource_fetcher.h" | 5 #include "webkit/glue/alt_error_page_resource_fetcher.h" |
| 6 | 6 |
| 7 #include "webkit/glue/resource_fetcher.h" | 7 #include "webkit/glue/resource_fetcher.h" |
| 8 | 8 |
| 9 using WebKit::WebURLError; | 9 using WebKit::WebURLError; |
| 10 using WebKit::WebURLResponse; | 10 using WebKit::WebURLResponse; |
| 11 | 11 |
| 12 namespace webkit_glue { | 12 namespace webkit_glue { |
| 13 | 13 |
| 14 // Number of seconds to wait for the alternate error page server. If it takes | 14 // Number of seconds to wait for the alternate error page server. If it takes |
| 15 // too long, just use the local error page. | 15 // too long, just use the local error page. |
| 16 static const int kDownloadTimeoutSec = 3; | 16 static const int kDownloadTimeoutSec = 3; |
| 17 | 17 |
| 18 AltErrorPageResourceFetcher::AltErrorPageResourceFetcher( | 18 AltErrorPageResourceFetcher::AltErrorPageResourceFetcher( |
| 19 const GURL& url, | 19 const GURL& url, |
| 20 WebFrame* frame, | 20 WebFrame* frame, |
| 21 const GURL& unreachable_url, | 21 const GURL& unreachable_url, |
| 22 Callback* callback) | 22 Callback* callback) |
| 23 : callback_(callback), | 23 : frame_(frame), |
| 24 callback_(callback), |
| 24 unreachable_url_(unreachable_url) { | 25 unreachable_url_(unreachable_url) { |
| 25 fetcher_.reset(new ResourceFetcherWithTimeout( | 26 fetcher_.reset(new ResourceFetcherWithTimeout( |
| 26 url, frame, kDownloadTimeoutSec, | 27 url, frame, kDownloadTimeoutSec, |
| 27 NewCallback(this, &AltErrorPageResourceFetcher::OnURLFetchComplete))); | 28 NewCallback(this, &AltErrorPageResourceFetcher::OnURLFetchComplete))); |
| 28 } | 29 } |
| 29 | 30 |
| 30 AltErrorPageResourceFetcher::~AltErrorPageResourceFetcher() { | 31 AltErrorPageResourceFetcher::~AltErrorPageResourceFetcher() { |
| 31 } | 32 } |
| 32 | 33 |
| 33 void AltErrorPageResourceFetcher::Cancel() { | 34 void AltErrorPageResourceFetcher::Cancel() { |
| 34 fetcher_->Cancel(); | 35 fetcher_->Cancel(); |
| 35 } | 36 } |
| 36 | 37 |
| 37 void AltErrorPageResourceFetcher::OnURLFetchComplete( | 38 void AltErrorPageResourceFetcher::OnURLFetchComplete( |
| 38 const WebURLResponse& response, | 39 const WebURLResponse& response, |
| 39 const std::string& data) { | 40 const std::string& data) { |
| 40 // A null response indicates a network error. | 41 // A null response indicates a network error. |
| 41 if (!response.isNull() && response.httpStatusCode() == 200) { | 42 if (!response.isNull() && response.httpStatusCode() == 200) { |
| 42 callback_->Run(unreachable_url_, data); | 43 callback_->Run(frame_, unreachable_url_, data); |
| 43 } else { | 44 } else { |
| 44 callback_->Run(unreachable_url_, std::string()); | 45 callback_->Run(frame_, unreachable_url_, std::string()); |
| 45 } | 46 } |
| 46 } | 47 } |
| 47 | 48 |
| 48 } // namespace webkit_glue | 49 } // namespace webkit_glue |
| OLD | NEW |