blob: e53c7aa5ff133435090a06d540e120ac5823a19a [file] [log] [blame]
// 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/srt_field_trial_win.h"
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/string_util.h"
#include "components/variations/variations_associated_data.h"
namespace {
// Field trial strings.
const char kSRTPromptTrial[] = "SRTPromptFieldTrial";
const char kSRTCanaryGroup[] = "SRTCanary";
const char kSRTPromptOffGroup[] = "Off";
const char kSRTPromptSeedParam[] = "Seed";
const char kSRTElevationTrial[] = "SRTElevation";
const char kSRTElevationAsNeededGroup[] = "AsNeeded";
const char kSRTReporterTrial[] = "srt_reporter";
const char kSRTReporterOffGroup[] = "Off";
// The download links of the Software Removal Tool.
const char kMainSRTDownloadURL[] =
"https://dl.google.com/dl"
"/softwareremovaltool/win/chrome_cleanup_tool.exe?chrome-prompt=1";
const char kCanarySRTDownloadURL[] =
"https://dl.google.com/dl"
"/softwareremovaltool/win/c/chrome_cleanup_tool.exe?chrome-prompt=1";
} // namespace
namespace safe_browsing {
bool IsInSRTPromptFieldTrialGroups() {
return !base::StartsWith(base::FieldTrialList::FindFullName(kSRTPromptTrial),
kSRTPromptOffGroup, base::CompareCase::SENSITIVE);
}
bool SRTPromptNeedsElevationIcon() {
return !base::StartsWith(
base::FieldTrialList::FindFullName(kSRTElevationTrial),
kSRTElevationAsNeededGroup, base::CompareCase::SENSITIVE);
}
bool IsSwReporterEnabled() {
return !base::StartsWith(
base::FieldTrialList::FindFullName(kSRTReporterTrial),
kSRTReporterOffGroup, base::CompareCase::SENSITIVE);
}
const char* GetSRTDownloadURL() {
if (base::StartsWith(base::FieldTrialList::FindFullName(kSRTPromptTrial),
kSRTCanaryGroup, base::CompareCase::SENSITIVE)) {
return kCanarySRTDownloadURL;
}
return kMainSRTDownloadURL;
}
std::string GetIncomingSRTSeed() {
return variations::GetVariationParamValue(kSRTPromptTrial,
kSRTPromptSeedParam);
}
void RecordSRTPromptHistogram(SRTPromptHistogramValue value) {
UMA_HISTOGRAM_ENUMERATION("SoftwareReporter.PromptUsage", value,
SRT_PROMPT_MAX);
}
} // namespace safe_browsing