Allow only one bookmark to be added for multiple fast starring
[chromium-blink-merge.git] / components / error_page / common / net_error_info.h
blobf67c9b0c2f00da4ab66ab82adda7f3c83114f2f8
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.
5 #ifndef COMPONENTS_ERROR_PAGE_COMMON_NET_ERROR_INFO_H_
6 #define COMPONENTS_ERROR_PAGE_COMMON_NET_ERROR_INFO_H_
8 // TODO(hashimoto): Change this to namespace error_page.
9 namespace chrome_common_net {
11 // Network error page events. Used for UMA statistics.
12 enum NetworkErrorPageEvent {
13 NETWORK_ERROR_PAGE_SHOWN = 0, // Error pages shown.
15 NETWORK_ERROR_PAGE_RELOAD_BUTTON_SHOWN = 1, // Reload buttons shown.
16 NETWORK_ERROR_PAGE_RELOAD_BUTTON_CLICKED = 2, // Reload button clicked.
17 NETWORK_ERROR_PAGE_RELOAD_BUTTON_ERROR = 3, // Reload button clicked
18 // -> error.
20 // Same for the "Show saved copy" button.
21 NETWORK_ERROR_PAGE_SHOW_SAVED_COPY_BUTTON_SHOWN = 4,
22 NETWORK_ERROR_PAGE_SHOW_SAVED_COPY_BUTTON_CLICKED = 5,
23 NETWORK_ERROR_PAGE_SHOW_SAVED_COPY_BUTTON_ERROR = 6,
25 NETWORK_ERROR_PAGE_MORE_BUTTON_CLICKED = 7, // More button clicked.
27 NETWORK_ERROR_PAGE_BROWSER_INITIATED_RELOAD = 8, // Reload from browser.
29 // Keep track of which button the user chooses when both are shown.
30 NETWORK_ERROR_PAGE_BOTH_BUTTONS_SHOWN = 9,
31 NETWORK_ERROR_PAGE_BOTH_BUTTONS_RELOAD_CLICKED = 10,
32 NETWORK_ERROR_PAGE_BOTH_BUTTONS_SHOWN_SAVED_COPY_CLICKED = 11,
34 NETWORK_ERROR_EASTER_EGG_ACTIVATED = 12, // Easter egg activated.
36 // For "Google cached copy" label experiment button.
37 NETWORK_ERROR_PAGE_CACHED_COPY_BUTTON_SHOWN = 13,
38 NETWORK_ERROR_PAGE_CACHED_COPY_BUTTON_CLICKED = 14,
39 NETWORK_ERROR_PAGE_CACHED_PAGE_BUTTON_SHOWN = 15,
40 NETWORK_ERROR_PAGE_CACHED_PAGE_BUTTON_CLICKED = 16,
42 NETWORK_ERROR_DIAGNOSE_BUTTON_CLICKED = 17, // Diagnose button clicked.
44 NETWORK_ERROR_PAGE_EVENT_MAX,
47 // The status of a DNS probe.
49 // The DNS_PROBE_FINISHED_* values are used in histograms, so:
50 // 1. FINISHED_UNKNOWN must remain the first FINISHED_* value.
51 // 2. FINISHED_* values must not be rearranged relative to FINISHED_UNKNOWN.
52 // 3. New FINISHED_* values must be inserted at the end.
53 // 4. New non-FINISHED_* values cannot be inserted.
54 enum DnsProbeStatus {
55 // A DNS probe may be run for this error page. (This status is only used on
56 // the renderer side before it's received a status update from the browser.)
57 DNS_PROBE_POSSIBLE,
59 // A DNS probe will not be run for this error page. (This happens if the
60 // user has the "Use web service to resolve navigation errors" preference
61 // turned off, or if probes are disabled by the field trial.)
62 DNS_PROBE_NOT_RUN,
64 // A DNS probe has been started for this error page. The renderer should
65 // expect to receive another IPC with one of the FINISHED statuses once the
66 // probe has finished (as long as the error page is still loaded).
67 DNS_PROBE_STARTED,
69 // A DNS probe has finished with one of the following results:
71 // The probe was inconclusive.
72 DNS_PROBE_FINISHED_INCONCLUSIVE,
74 // There's no internet connection.
75 DNS_PROBE_FINISHED_NO_INTERNET,
77 // The DNS configuration is wrong, or the servers are down or broken.
78 DNS_PROBE_FINISHED_BAD_CONFIG,
80 // The DNS servers are working fine, so the domain must not exist.
81 DNS_PROBE_FINISHED_NXDOMAIN,
83 DNS_PROBE_MAX
86 // Returns a string representing |status|. It should be simply the name of
87 // the value as a string, but don't rely on that. This is presented to the
88 // user as part of the DNS error page (as the error code, at the bottom),
89 // and is also used in some verbose log messages.
91 // The function will NOTREACHED() and return an empty string if given an int
92 // that does not match a value in DnsProbeStatus (or if it is DNS_PROBE_MAX,
93 // which is not a real status).
94 const char* DnsProbeStatusToString(int status);
96 // Returns true if |status| is one of the DNS_PROBE_FINISHED_* statuses.
97 bool DnsProbeStatusIsFinished(DnsProbeStatus status);
99 // Record specific error page events.
100 void RecordEvent(NetworkErrorPageEvent event);
102 // The error domain used to pass DNS probe statuses to the localized error
103 // code.
104 extern const char kDnsProbeErrorDomain[];
106 } // namespace chrome_common_net
108 #endif // COMPONENTS_ERROR_PAGE_COMMON_NET_ERROR_INFO_H_