Sync ReportingInfo UMA proto from upstream.

Change-Id: Ie7743ea5679ad2724d23d4ee30c4853c1ac71250
Reviewed-on: https://chromium-review.googlesource.com/696134
Reviewed-by: Brian White <bcwhite@chromium.org>
Commit-Queue: Steven Holte <holte@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#506176}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e94d484908fa0f9472c580e7fb9c4ec9c9c1bf78
diff --git a/proto/BUILD.gn b/proto/BUILD.gn
index 0041cdc..70ac7a2 100644
--- a/proto/BUILD.gn
+++ b/proto/BUILD.gn
@@ -18,6 +18,7 @@
     "perf_data.proto",
     "perf_stat.proto",
     "printer_event.proto",
+    "reporting_info.proto",
     "sampled_profile.proto",
     "system_profile.proto",
     "translate_event.proto",
diff --git a/proto/chrome_user_metrics_extension.proto b/proto/chrome_user_metrics_extension.proto
index 970ca2b..f24f52d 100644
--- a/proto/chrome_user_metrics_extension.proto
+++ b/proto/chrome_user_metrics_extension.proto
@@ -12,17 +12,19 @@
 package metrics;
 
 import "cast_logs.proto";
+import "extension_install.proto";
 import "histogram_event.proto";
 import "memory_leak_report.proto";
 import "omnibox_event.proto";
 import "perf_data.proto";
 import "printer_event.proto";
+import "reporting_info.proto";
 import "sampled_profile.proto";
 import "system_profile.proto";
 import "translate_event.proto";
 import "user_action_event.proto";
 
-// Next tag: 17
+// Next tag: 18
 message ChromeUserMetricsExtension {
   // The product (i.e. end user application) for a given UMA log.
   enum Product {
@@ -81,4 +83,8 @@
 
   // Memory leak reports generated since the last UMA upload.
   repeated MemoryLeakReportProto memory_leak_report = 13;
+
+  // The ReportingInfo message sent in the X-Chrome-UMA-ReportingInfo header.
+  // Copied in by the receiving server.
+  optional ReportingInfo reporting_info = 17;
 }
diff --git a/proto/extension_install.proto b/proto/extension_install.proto
index 07498c2..755daca 100644
--- a/proto/extension_install.proto
+++ b/proto/extension_install.proto
@@ -1,18 +1,18 @@
 // Copyright 2017 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.
-//
-// Stores information about an extension installed on a user's machine.
 
 syntax = "proto2";
 
 option optimize_for = LITE_RUNTIME;
+
 option java_outer_classname = "ExtensionInstallProtos";
 option java_package = "org.chromium.components.metrics";
 
 package metrics;
 
-// Next tag: 16.
+// Stores information about an extension installed on a user's machine.
+// Next tag: 17.
 message ExtensionInstallProto {
   // The type of extension item this is.
   enum Type {
diff --git a/proto/reporting_info.proto b/proto/reporting_info.proto
new file mode 100644
index 0000000..5a15e31
--- /dev/null
+++ b/proto/reporting_info.proto
@@ -0,0 +1,19 @@
+// Copyright 2017 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.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package metrics;
+
+// Extra information attached to reports by client at upload time.
+// Next tag: 3
+message ReportingInfo {
+  // Number of times upload of the current report has been attempted.
+  optional int32 attempt_count = 1;
+
+  // The HTTP response/error code of the last upload attempt.
+  optional int32 last_response_code = 2;
+}