Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: chrome/common/net/net_error_tracker.h

Issue 13270005: Display DNS probe results. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Refactor a bit again (DnsProbeRunner is now tied to a single DnsClient), other fixes Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef CHROME_COMMON_NET_NET_ERROR_TRACKER_H_
6 #define CHROME_COMMON_NET_NET_ERROR_TRACKER_H_
7
8 #include "base/bind.h"
9
10 class NetErrorTracker {
11 public:
12 enum FrameType {
13 FRAME_SUB,
14 FRAME_MAIN
15 };
16
17 enum PageType {
18 PAGE_NORMAL,
19 PAGE_ERROR
20 };
21
22 enum ErrorType {
23 ERROR_OTHER,
24 ERROR_DNS
25 };
26
27 enum DnsErrorPageState {
28 DNS_ERROR_PAGE_NONE,
29 DNS_ERROR_PAGE_PENDING,
30 DNS_ERROR_PAGE_LOADED
31 };
32
33 typedef base::Callback<void(DnsErrorPageState state)> Callback;
34
35 explicit NetErrorTracker(const Callback& callback);
36 ~NetErrorTracker();
37
38 void OnStartProvisionalLoad(FrameType frame, PageType page);
39 void OnCommitProvisionalLoad(FrameType frame);
40 void OnFailProvisionalLoad(FrameType frame, ErrorType error);
41 void OnFinishLoad(FrameType frame);
42
43 private:
44 enum LoadState {
45 LOAD_NONE,
46 LOAD_STARTED,
47 LOAD_COMMITTED,
48 LOAD_FAILED,
49 LOAD_FINISHED
50 };
51
52 void SetDnsErrorPageState(DnsErrorPageState state);
53
54 Callback callback_;
55
56 LoadState load_state_;
57 PageType load_type_;
58
59 ErrorType error_type_;
60
61 DnsErrorPageState dns_error_page_state_;
62
63 DISALLOW_COPY_AND_ASSIGN(NetErrorTracker);
64 };
65
66 #endif // CHROME_COMMON_NET_NET_ERROR_TRACKER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698