blob: 530abcbeab11255d84a4749a800411d74c838d55 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
// Copyright (c) 2013 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 CHROME_COMMON_NET_NET_ERROR_TRACKER_H_
#define CHROME_COMMON_NET_NET_ERROR_TRACKER_H_
#include "base/bind.h"
class NetErrorTracker {
public:
enum FrameType {
FRAME_SUB,
FRAME_MAIN
};
enum PageType {
PAGE_NORMAL,
PAGE_ERROR
};
enum ErrorType {
ERROR_OTHER,
ERROR_DNS
};
enum DnsErrorPageState {
DNS_ERROR_PAGE_NONE,
DNS_ERROR_PAGE_PENDING,
DNS_ERROR_PAGE_LOADED
};
typedef base::Callback<void(DnsErrorPageState state)> Callback;
explicit NetErrorTracker(const Callback& callback);
~NetErrorTracker();
void OnStartProvisionalLoad(FrameType frame, PageType page);
void OnCommitProvisionalLoad(FrameType frame);
void OnFailProvisionalLoad(FrameType frame, ErrorType error);
void OnFinishLoad(FrameType frame);
private:
enum LoadState {
LOAD_NONE,
LOAD_STARTED,
LOAD_COMMITTED,
LOAD_FAILED,
LOAD_FINISHED
};
void SetDnsErrorPageState(DnsErrorPageState state);
Callback callback_;
LoadState load_state_;
PageType load_type_;
ErrorType error_type_;
DnsErrorPageState dns_error_page_state_;
DISALLOW_COPY_AND_ASSIGN(NetErrorTracker);
};
#endif // CHROME_COMMON_NET_NET_ERROR_TRACKER_H_
|