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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_ERROR_PAGE_COMMON_NET_ERROR_INFO_H_
#define COMPONENTS_ERROR_PAGE_COMMON_NET_ERROR_INFO_H_
namespace error_page {
// Network error page events. Used for UMA statistics and its values must be
// mirrored in NetErrorPageEvents in enums.xml.
enum NetworkErrorPageEvent {
NETWORK_ERROR_PAGE_SHOWN = 0, // Error pages shown.
NETWORK_ERROR_PAGE_RELOAD_BUTTON_SHOWN = 1, // Reload buttons shown.
NETWORK_ERROR_PAGE_RELOAD_BUTTON_CLICKED = 2, // Reload button clicked.
NETWORK_ERROR_PAGE_RELOAD_BUTTON_ERROR = 3, // Reload button clicked
// -> error.
// Obsolete values used for the "Show saved copy" button.
// NETWORK_ERROR_PAGE_SHOW_SAVED_COPY_BUTTON_SHOWN = 4,
// NETWORK_ERROR_PAGE_SHOW_SAVED_COPY_BUTTON_CLICKED = 5,
// NETWORK_ERROR_PAGE_SHOW_SAVED_COPY_BUTTON_ERROR = 6,
NETWORK_ERROR_PAGE_MORE_BUTTON_CLICKED = 7, // More button clicked.
// Obsolete:
// NETWORK_ERROR_PAGE_BROWSER_INITIATED_RELOAD = 8, // Reload from browser.
// Obsolete values used for when "Show saved copy" and "Reload" buttons were
// both shown.
//
// NETWORK_ERROR_PAGE_BOTH_BUTTONS_SHOWN = 9,
// NETWORK_ERROR_PAGE_BOTH_BUTTONS_RELOAD_CLICKED = 10,
// NETWORK_ERROR_PAGE_BOTH_BUTTONS_SHOWN_SAVED_COPY_CLICKED = 11,
NETWORK_ERROR_EASTER_EGG_ACTIVATED = 12, // Easter egg activated.
// Obsolete. No longer experimenting with the label.
// NETWORK_ERROR_PAGE_CACHED_COPY_BUTTON_SHOWN = 13,
// NETWORK_ERROR_PAGE_CACHED_COPY_BUTTON_CLICKED = 14,
// NETWORK_ERROR_PAGE_CACHED_PAGE_BUTTON_SHOWN = 15,
// NETWORK_ERROR_PAGE_CACHED_PAGE_BUTTON_CLICKED = 16,
NETWORK_ERROR_DIAGNOSE_BUTTON_CLICKED = 17, // Diagnose button clicked.
// For the button to show all offline pages.
// Obsolete. No longer showing this.
// NETWORK_ERROR_PAGE_SHOW_OFFLINE_PAGES_BUTTON_SHOWN = 18,
// NETWORK_ERROR_PAGE_SHOW_OFFLINE_PAGES_BUTTON_CLICKED = 19,
// For the button to show offline copy.
// Obsolete. No longer showing this.
// NETWORK_ERROR_PAGE_SHOW_OFFLINE_COPY_BUTTON_SHOWN = 20,
// NETWORK_ERROR_PAGE_SHOW_OFFLINE_COPY_BUTTON_CLICKED = 21,
NETWORK_ERROR_PAGE_DOWNLOAD_BUTTON_SHOWN = 22,
NETWORK_ERROR_PAGE_DOWNLOAD_BUTTON_CLICKED = 23,
// Values for suggested content on the net-error page:
// A list containing at least one item of offline content suggestions was
// shown in the expanded/shown state.
NETWORK_ERROR_PAGE_OFFLINE_SUGGESTIONS_SHOWN = 24,
// An item from the offline content suggestions list was clicked.
NETWORK_ERROR_PAGE_OFFLINE_SUGGESTION_CLICKED = 25,
// A link that opens the downloads page was clicked.
NETWORK_ERROR_PAGE_OFFLINE_DOWNLOADS_PAGE_CLICKED = 26,
// A summary of available offline content was shown.
NETWORK_ERROR_PAGE_OFFLINE_CONTENT_SUMMARY_SHOWN = 27,
// A list containing at least one item of offline content suggestions was
// shown in the collapsed/hidden state.
NETWORK_ERROR_PAGE_OFFLINE_SUGGESTIONS_SHOWN_COLLAPSED = 28,
// The error page was shown because the device is offline (this is the dino
// page).
NETWORK_ERROR_PAGE_OFFLINE_ERROR_SHOWN = 29,
// "Sign in to network" button clicked.
NETWORK_ERROR_PORTAL_SIGNIN_BUTTON_CLICKED = 30,
NETWORK_ERROR_PAGE_EVENT_MAX,
};
// The status of a DNS probe.
//
// The DNS_PROBE_FINISHED_* values are used in histograms, so:
// 1. FINISHED_UNKNOWN must remain the first FINISHED_* value.
// 2. FINISHED_* values must not be rearranged relative to FINISHED_UNKNOWN.
// 3. New FINISHED_* values must be inserted at the end.
// 4. New non-FINISHED_* values cannot be inserted.
enum DnsProbeStatus {
// A DNS probe may be run for this error page. (This status is only used on
// the renderer side before it's received a status update from the browser.)
DNS_PROBE_POSSIBLE,
// A DNS probe will not be run for this error page. (This happens if the
// user has the "Use web service to resolve navigation errors" preference
// turned off, or if probes are disabled by the field trial.)
DNS_PROBE_NOT_RUN,
// A DNS probe has been started for this error page. The renderer should
// expect to receive another IPC with one of the FINISHED statuses once the
// probe has finished (as long as the error page is still loaded).
DNS_PROBE_STARTED,
// A DNS probe has finished with one of the following results:
// The probe was inconclusive.
DNS_PROBE_FINISHED_INCONCLUSIVE,
// There's no internet connection.
DNS_PROBE_FINISHED_NO_INTERNET,
// The DNS configuration is wrong, or the servers are down or broken.
DNS_PROBE_FINISHED_BAD_CONFIG,
// The DNS servers are working fine, so the domain must not exist.
DNS_PROBE_FINISHED_NXDOMAIN,
// The secure DNS configuration is wrong, or the servers are down or broken.
DNS_PROBE_FINISHED_BAD_SECURE_CONFIG,
DNS_PROBE_MAX
};
// Returns a string representing |status|. It should be simply the name of
// the value as a string, but don't rely on that. This is presented to the
// user as part of the DNS error page (as the error code, at the bottom),
// and is also used in some verbose log messages.
//
// The function will NOTREACHED() and return an empty string if given an int
// that does not match a value in DnsProbeStatus (or if it is DNS_PROBE_MAX,
// which is not a real status).
const char* DnsProbeStatusToString(int status);
// Returns true if |status| is one of the DNS_PROBE_FINISHED_* statuses.
bool DnsProbeStatusIsFinished(DnsProbeStatus status);
// Record specific error page events.
void RecordEvent(NetworkErrorPageEvent event);
} // namespace error_page
#endif // COMPONENTS_ERROR_PAGE_COMMON_NET_ERROR_INFO_H_
|