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.
5 #include "chrome/browser/safe_browsing/incident_reporting/variations_seed_signature_analyzer.h"
9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/metrics/variations/variations_service.h"
11 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
12 #include "chrome/common/safe_browsing/csd.pb.h"
14 namespace safe_browsing
{
16 void RegisterVariationsSeedSignatureAnalysis() {
17 scoped_refptr
<SafeBrowsingService
> safe_browsing_service(
18 g_browser_process
->safe_browsing_service());
20 safe_browsing_service
->RegisterDelayedAnalysisCallback(
21 base::Bind(&VerifyVariationsSeedSignature
));
24 void VerifyVariationsSeedSignature(const AddIncidentCallback
& callback
) {
25 if (g_browser_process
->variations_service() == nullptr)
27 std::string invalid_signature
= g_browser_process
->variations_service()
28 ->GetInvalidVariationsSeedSignature();
29 if (!invalid_signature
.empty()) {
30 scoped_ptr
<ClientIncidentReport_IncidentData
> incident_data(
31 new ClientIncidentReport_IncidentData());
32 ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident
*
33 variations_seed_signature
=
34 incident_data
->mutable_variations_seed_signature();
35 variations_seed_signature
->set_variations_seed_signature(invalid_signature
);
36 callback
.Run(incident_data
.Pass());
40 } // namespace safe_browsing