OLD | NEW |
---|---|
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "chrome/renderer/net/net_error_helper.h" | 5 #include "chrome/renderer/net/net_error_helper.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
205 // The fetcher may only be deleted after |data| is passed to |core_|. Move | 205 // The fetcher may only be deleted after |data| is passed to |core_|. Move |
206 // it to a temporary to prevent any potential re-entrancy issues. | 206 // it to a temporary to prevent any potential re-entrancy issues. |
207 scoped_ptr<content::ResourceFetcher> fetcher( | 207 scoped_ptr<content::ResourceFetcher> fetcher( |
208 alt_error_page_fetcher_.release()); | 208 alt_error_page_fetcher_.release()); |
209 if (!response.isNull() && response.httpStatusCode() == 200) { | 209 if (!response.isNull() && response.httpStatusCode() == 200) { |
210 core_.OnAlternateErrorPageFetched(data); | 210 core_.OnAlternateErrorPageFetched(data); |
211 } else { | 211 } else { |
212 core_.OnAlternateErrorPageFetched(""); | 212 core_.OnAlternateErrorPageFetched(""); |
213 } | 213 } |
214 } | 214 } |
215 | |
216 // MockableOneShotTimer implementation in terms of base::OneShotTimer | |
Randy Smith (Not in Mondays)
2014/01/30 20:14:47
This feels like it should be in its own file, not
Elly Fong-Jones
2014/02/05 21:12:37
Done.
| |
217 | |
218 template<class Receiver> | |
219 class MockableOneShotTimerImpl | |
220 : public NetErrorHelperCore::MockableOneShotTimer { | |
221 public: | |
222 MockableOneShotTimerImpl(); | |
223 virtual ~MockableOneShotTimerImpl(); | |
224 virtual void Start(const tracked_objects::Location& posted_from, | |
225 base::TimeDelta delay, const base::Closure& user_task); | |
226 virtual void Stop(); | |
227 virtual bool IsRunning() const; | |
228 private: | |
229 base::OneShotTimer<Receiver> timer_; | |
230 }; | |
231 | |
232 template<class Receiver> | |
233 MockableOneShotTimerImpl<Receiver>::MockableOneShotTimerImpl() {} | |
234 template<class Receiver> | |
235 MockableOneShotTimerImpl<Receiver>::~MockableOneShotTimerImpl() {} | |
236 template<class Receiver> | |
237 void MockableOneShotTimerImpl<Receiver>::Start( | |
238 const tracked_objects::Location& posted_from, base::TimeDelta delay, | |
239 const base::Closure& user_task) { | |
240 timer_.Start(posted_from, delay, user_task); | |
241 } | |
242 | |
243 template<class Receiver> | |
244 void MockableOneShotTimerImpl<Receiver>::Stop() { | |
245 timer_.Stop(); | |
246 } | |
247 | |
248 template<class Receiver> | |
249 bool MockableOneShotTimerImpl<Receiver>::IsRunning() const { | |
250 return timer_.IsRunning(); | |
251 } | |
252 | |
253 NetErrorHelperCore::MockableOneShotTimer* NetErrorHelper::NewMockableOneShotTime r() { | |
Randy Smith (Not in Mondays)
2014/01/30 20:14:47
nit: Line too long?
Elly Fong-Jones
2014/02/05 21:12:37
Done.
| |
254 return new MockableOneShotTimerImpl<NetErrorHelperCore>(); | |
255 } | |
256 | |
257 void NetErrorHelper::FetchAutoReloadPage(const GURL& url) { | |
258 render_frame()->GetWebFrame()->loadRequest(blink::WebURLRequest(url)); | |
259 } | |
260 | |
261 void NetErrorHelper::CancelFetchAutoReloadPage() { | |
262 // TODO(ellyjones): is this necessary? We can only get here via OnStop(), | |
263 // which already implies stopLoading(). | |
264 // render_frame()->GetWebFrame()->stopLoading(); | |
265 } | |
OLD | NEW |