Index: chrome/browser/extensions/api/metrics_private/metrics_private_api.cc |
diff --git a/chrome/browser/extensions/api/metrics_private/metrics_private_api.cc b/chrome/browser/extensions/api/metrics_private/metrics_private_api.cc |
index f65d80e80c3f05c015d4071833c830126fd8f2a4..935cc4656c5058284276fdeb48e73ab92ccdb0ad 100644 |
--- a/chrome/browser/extensions/api/metrics_private/metrics_private_api.cc |
+++ b/chrome/browser/extensions/api/metrics_private/metrics_private_api.cc |
@@ -12,6 +12,7 @@ |
#include "chrome/browser/browser_process.h" |
#include "chrome/common/extensions/api/metrics_private.h" |
#include "chrome/common/extensions/extension.h" |
+#include "chrome/common/metrics/variations/variations_associated_data.h" |
#include "chrome/common/pref_names.h" |
#include "content/public/browser/user_metrics.h" |
@@ -23,6 +24,7 @@ namespace extensions { |
namespace GetIsCrashReportingEnabled = |
api::metrics_private::GetIsCrashReportingEnabled; |
+namespace GetVariationParams = api::metrics_private::GetVariationParams; |
namespace GetFieldTrial = api::metrics_private::GetFieldTrial; |
namespace RecordUserAction = api::metrics_private::RecordUserAction; |
namespace RecordValue = api::metrics_private::RecordValue; |
@@ -76,6 +78,22 @@ bool MetricsPrivateGetFieldTrialFunction::RunImpl() { |
return true; |
} |
+bool MetricsPrivateGetVariationParamsFunction::RunImpl() { |
+ scoped_ptr<GetVariationParams::Params> params( |
+ GetVariationParams::Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params.get()); |
+ |
+ GetVariationParams::Results::Params result; |
+ if (!chrome_variations::GetVariationParams( |
+ params->name, &result.additional_properties)) { |
+ SetError("Variation parameters are unavailable."); |
+ return false; |
+ } |
+ |
+ SetResult(result.ToValue().release()); |
+ return true; |
+} |
+ |
bool MetricsPrivateRecordUserActionFunction::RunImpl() { |
scoped_ptr<RecordUserAction::Params> params( |
RecordUserAction::Params::Create(*args_)); |