Home | History | Annotate | Download | only in domain_reliability
      1 // Copyright 2014 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 COMPONENTS_DOMAIN_RELIABILITY_BEACON_H_
      6 #define COMPONENTS_DOMAIN_RELIABILITY_BEACON_H_
      7 
      8 #include <string>
      9 
     10 #include "base/time/time.h"
     11 #include "components/domain_reliability/domain_reliability_export.h"
     12 
     13 namespace base {
     14 class Value;
     15 }  // namespace base
     16 
     17 namespace domain_reliability {
     18 
     19 // The per-request data that is uploaded to the Domain Reliability collector.
     20 struct DOMAIN_RELIABILITY_EXPORT DomainReliabilityBeacon {
     21  public:
     22   DomainReliabilityBeacon();
     23   ~DomainReliabilityBeacon();
     24 
     25   // Converts the Beacon to JSON format for uploading. Calculates the age
     26   // relative to an upload time of |upload_time|.
     27   base::Value* ToValue(base::TimeTicks upload_time) const;
     28 
     29   // Status string (e.g. "ok", "dns.nxdomain", "http.403").
     30   std::string status;
     31   // Net error code.  Encoded as a string in the final JSON.
     32   int chrome_error;
     33   // IP address of the server the request went to.
     34   std::string server_ip;
     35   // HTTP response code returned by the server, or -1 if none was received.
     36   int http_response_code;
     37   // Elapsed time between starting and completing the request.
     38   base::TimeDelta elapsed;
     39   // Start time of the request.  Encoded as the request age in the final JSON.
     40   base::TimeTicks start_time;
     41 
     42   // Okay to copy and assign.
     43 };
     44 
     45 }  // namespace domain_reliability
     46 
     47 #endif  // COMPONENTS_DOMAIN_RELIABILITY_BEACON_H_
     48