Index: chrome/browser/safe_browsing/incident_reporting/resource_request_incident.cc |
diff --git a/chrome/browser/safe_browsing/incident_reporting/resource_request_incident.cc b/chrome/browser/safe_browsing/incident_reporting/resource_request_incident.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..03b80fa126b1ffd916779d88c05c0985236ecbbc |
--- /dev/null |
+++ b/chrome/browser/safe_browsing/incident_reporting/resource_request_incident.cc |
@@ -0,0 +1,45 @@ |
+// Copyright 2015 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. |
+ |
+#include "chrome/browser/safe_browsing/incident_reporting/resource_request_incident.h" |
+ |
+#include "base/logging.h" |
+#include "chrome/browser/safe_browsing/incident_reporting/incident_handler_util.h" |
+#include "chrome/common/safe_browsing/csd.pb.h" |
+ |
+namespace safe_browsing { |
+ |
+ResourceRequestIncident::ResourceRequestIncident( |
+ scoped_ptr<ClientIncidentReport_IncidentData_ResourceRequestIncident> |
+ script_request_incident) { |
+ DCHECK(script_request_incident); |
+ DCHECK(script_request_incident->has_digest()); |
+ payload()->set_allocated_resource_request(script_request_incident.release()); |
+} |
+ |
+ResourceRequestIncident::~ResourceRequestIncident() { |
+} |
+ |
+IncidentType ResourceRequestIncident::GetType() const { |
+ return IncidentType::RESOURCE_REQUEST; |
+} |
+ |
+std::string ResourceRequestIncident::GetKey() const { |
+ // Use a static key per resource request type in addition to a fixed digest |
+ // below to ensure that only one incident per user (and incident type) is |
+ // reported. |
+ return payload()->resource_request().type() == |
+ ClientIncidentReport_IncidentData_ResourceRequestIncident:: |
+ TYPE_SCRIPT |
+ ? "script_request_incident" |
+ : "domain_request_incident"; |
+} |
+ |
+uint32_t ResourceRequestIncident::ComputeDigest() const { |
+ // Return a constant in addition to a fixed key per resource request type |
+ // above to ensure that only one incident per user is reported. |
+ return 42; |
+} |
+ |
+} // namespace safe_browsing |