summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorasvitkine@chromium.org <asvitkine@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-29 18:03:22 +0000
committerasvitkine@chromium.org <asvitkine@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-29 18:03:22 +0000
commit50ae9f1c73aaa89c137ad74bf75798ee4b0059f7 (patch)
tree44687f9efda1114a9874381e35ee08019e3b11d4
parent67f73767318e1eb57ee8c036881166bd6629b1c1 (diff)
downloadchromium_src-50ae9f1c73aaa89c137ad74bf75798ee4b0059f7.zip
chromium_src-50ae9f1c73aaa89c137ad74bf75798ee4b0059f7.tar.gz
chromium_src-50ae9f1c73aaa89c137ad74bf75798ee4b0059f7.tar.bz2
Create a variations component, so that it can be re-used.
Moving this code out of chrome/ paves the way for server-controlled system field trials on ChromeOS. This allows building a new ChromeOS daemon binary that depends on the new variations target, without needing to depend on all of chrome/. This CL moves several files from chrome/common/metrics and chrome/browser/metrics into a separate component/variations target and updates all the include paths referencing these. It does not do additional cleanup, such as changing namespaces - this is left for a follow-up cleanup CL. BUG=266007 TEST=Existing unit tests. R=joi@chromium.org, jwd@chromium.org, sky@chromium.org Review URL: https://codereview.chromium.org/23097007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220339 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/DEPS1
-rw-r--r--chrome/browser/autocomplete/autocomplete_result_unittest.cc2
-rw-r--r--chrome/browser/autocomplete/search_provider_unittest.cc3
-rw-r--r--chrome/browser/extensions/api/metrics_private/metrics_apitest.cc2
-rw-r--r--chrome/browser/extensions/api/metrics_private/metrics_private_api.cc2
-rw-r--r--chrome/browser/history/most_visited_tiles_experiment_unittest.cc2
-rw-r--r--chrome/browser/metrics/metrics_service.cc2
-rw-r--r--chrome/browser/metrics/variations/variations_http_header_provider.cc1
-rw-r--r--chrome/browser/metrics/variations/variations_http_header_provider.h2
-rw-r--r--chrome/browser/metrics/variations/variations_service.cc4
-rw-r--r--chrome/browser/metrics/variations/variations_service.h4
-rw-r--r--chrome/browser/metrics/variations/variations_service_unittest.cc3
-rw-r--r--chrome/browser/omnibox/omnibox_field_trial.cc2
-rw-r--r--chrome/browser/omnibox/omnibox_field_trial_unittest.cc2
-rw-r--r--chrome/browser/search/search_unittest.cc2
-rw-r--r--chrome/browser/spellchecker/feedback_sender_unittest.cc2
-rw-r--r--chrome/browser/ui/bookmarks/bookmark_prompt_controller.cc2
-rw-r--r--chrome/chrome_browser.gypi17
-rw-r--r--chrome/chrome_browser_chromeos.gypi1
-rw-r--r--chrome/chrome_browser_ui.gypi1
-rw-r--r--chrome/chrome_common.gypi8
-rw-r--r--chrome/chrome_tests_unit.gypi4
-rw-r--r--chrome/common/metrics/caching_permuted_entropy_provider.h2
-rw-r--r--chrome/common/metrics/variations/variations_util.h2
-rw-r--r--chrome/common/metrics/variations/variations_util_unittest.cc2
-rw-r--r--chrome/renderer/autofill/form_autofill_browsertest.cc2
-rw-r--r--components/OWNERS4
-rw-r--r--components/components.gyp1
-rw-r--r--components/components_tests.gypi8
-rw-r--r--components/variations.gypi47
-rw-r--r--components/variations/OWNERS3
-rw-r--r--components/variations/entropy_provider.cc (renamed from chrome/common/metrics/entropy_provider.cc)4
-rw-r--r--components/variations/entropy_provider.h (renamed from chrome/common/metrics/entropy_provider.h)6
-rw-r--r--components/variations/entropy_provider_unittest.cc (renamed from chrome/common/metrics/entropy_provider_unittest.cc)4
-rw-r--r--components/variations/metrics_util.cc (renamed from chrome/common/metrics/metrics_util.cc)2
-rw-r--r--components/variations/metrics_util.h (renamed from chrome/common/metrics/metrics_util.h)6
-rw-r--r--components/variations/metrics_util_unittest.cc (renamed from chrome/common/metrics/metrics_util_unittest.cc)3
-rw-r--r--components/variations/proto/study.proto (renamed from chrome/browser/metrics/proto/study.proto)0
-rw-r--r--components/variations/proto/trials_seed.proto (renamed from chrome/browser/metrics/proto/trials_seed.proto)0
-rw-r--r--components/variations/variations_associated_data.cc (renamed from chrome/common/metrics/variations/variations_associated_data.cc)6
-rw-r--r--components/variations/variations_associated_data.h (renamed from chrome/common/metrics/variations/variations_associated_data.h)6
-rw-r--r--components/variations/variations_associated_data_unittest.cc (renamed from chrome/common/metrics/variations/variations_associated_data_unittest.cc)2
-rw-r--r--components/variations/variations_seed_processor.cc (renamed from chrome/browser/metrics/variations/variations_seed_processor.cc)5
-rw-r--r--components/variations/variations_seed_processor.h (renamed from chrome/browser/metrics/variations/variations_seed_processor.h)10
-rw-r--r--components/variations/variations_seed_processor_unittest.cc (renamed from chrome/browser/metrics/variations/variations_seed_processor_unittest.cc)4
45 files changed, 116 insertions, 82 deletions
diff --git a/chrome/DEPS b/chrome/DEPS
index 07ac7d3..252d584 100644
--- a/chrome/DEPS
+++ b/chrome/DEPS
@@ -30,6 +30,7 @@ include_rules = [
"+chrome/test",
"+components/json_schema",
"+components/sessions",
+ "+components/variations",
"+components/visitedlink/common",
"+content/public/common",
"+content/public/test",
diff --git a/chrome/browser/autocomplete/autocomplete_result_unittest.cc b/chrome/browser/autocomplete/autocomplete_result_unittest.cc
index e51c9da..babf1ae 100644
--- a/chrome/browser/autocomplete/autocomplete_result_unittest.cc
+++ b/chrome/browser/autocomplete/autocomplete_result_unittest.cc
@@ -17,9 +17,9 @@
#include "chrome/browser/search_engines/template_url_service.h"
#include "chrome/browser/search_engines/template_url_service_test_util.h"
#include "chrome/common/autocomplete_match_type.h"
-#include "chrome/common/metrics/entropy_provider.h"
#include "chrome/common/metrics/variations/variations_util.h"
#include "chrome/test/base/testing_profile.h"
+#include "components/variations/entropy_provider.h"
#include "testing/gtest/include/gtest/gtest.h"
class AutocompleteResultTest : public testing::Test {
diff --git a/chrome/browser/autocomplete/search_provider_unittest.cc b/chrome/browser/autocomplete/search_provider_unittest.cc
index 7df07d2..b575f5c 100644
--- a/chrome/browser/autocomplete/search_provider_unittest.cc
+++ b/chrome/browser/autocomplete/search_provider_unittest.cc
@@ -27,17 +27,16 @@
#include "chrome/browser/search_engines/template_url_service.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/common/chrome_switches.h"
-#include "chrome/common/metrics/entropy_provider.h"
#include "chrome/common/metrics/variations/variations_util.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile.h"
+#include "components/variations/entropy_provider.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "net/url_request/test_url_fetcher_factory.h"
#include "net/url_request/url_request_status.h"
#include "testing/gtest/include/gtest/gtest.h"
-
// SearchProviderTest ---------------------------------------------------------
// The following environment is configured for these tests:
diff --git a/chrome/browser/extensions/api/metrics_private/metrics_apitest.cc b/chrome/browser/extensions/api/metrics_private/metrics_apitest.cc
index d31559a..f87f7dd 100644
--- a/chrome/browser/extensions/api/metrics_private/metrics_apitest.cc
+++ b/chrome/browser/extensions/api/metrics_private/metrics_apitest.cc
@@ -8,7 +8,7 @@
#include "base/metrics/histogram.h"
#include "base/metrics/statistics_recorder.h"
#include "chrome/browser/extensions/extension_apitest.h"
-#include "chrome/common/metrics/variations/variations_associated_data.h"
+#include "components/variations/variations_associated_data.h"
#include "content/public/browser/user_metrics.h"
namespace {
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 8aa2b1b..fe4a350 100644
--- a/chrome/browser/extensions/api/metrics_private/metrics_private_api.cc
+++ b/chrome/browser/extensions/api/metrics_private/metrics_private_api.cc
@@ -12,8 +12,8 @@
#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 "components/variations/variations_associated_data.h"
#include "content/public/browser/user_metrics.h"
#if defined(OS_CHROMEOS)
diff --git a/chrome/browser/history/most_visited_tiles_experiment_unittest.cc b/chrome/browser/history/most_visited_tiles_experiment_unittest.cc
index cb66710..ccaee6f 100644
--- a/chrome/browser/history/most_visited_tiles_experiment_unittest.cc
+++ b/chrome/browser/history/most_visited_tiles_experiment_unittest.cc
@@ -14,7 +14,7 @@
#include "base/values.h"
#include "chrome/browser/history/history_types.h"
#include "chrome/common/instant_types.h"
-#include "chrome/common/metrics/entropy_provider.h"
+#include "components/variations/entropy_provider.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc
index dfbcbdf..b356a00 100644
--- a/chrome/browser/metrics/metrics_service.cc
+++ b/chrome/browser/metrics/metrics_service.cc
@@ -196,11 +196,11 @@
#include "chrome/common/chrome_result_codes.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/metrics/caching_permuted_entropy_provider.h"
-#include "chrome/common/metrics/entropy_provider.h"
#include "chrome/common/metrics/metrics_log_manager.h"
#include "chrome/common/net/test_server_locations.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/render_messages.h"
+#include "components/variations/entropy_provider.h"
#include "content/public/browser/child_process_data.h"
#include "content/public/browser/histogram_fetcher.h"
#include "content/public/browser/load_notification_details.h"
diff --git a/chrome/browser/metrics/variations/variations_http_header_provider.cc b/chrome/browser/metrics/variations/variations_http_header_provider.cc
index 7be3775..10f2173 100644
--- a/chrome/browser/metrics/variations/variations_http_header_provider.cc
+++ b/chrome/browser/metrics/variations/variations_http_header_provider.cc
@@ -10,7 +10,6 @@
#include "base/strings/string_util.h"
#include "chrome/browser/google/google_util.h"
#include "chrome/common/metrics/proto/chrome_experiments.pb.h"
-#include "chrome/common/metrics/variations/variations_associated_data.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#include "net/http/http_request_headers.h"
#include "url/gurl.h"
diff --git a/chrome/browser/metrics/variations/variations_http_header_provider.h b/chrome/browser/metrics/variations/variations_http_header_provider.h
index 06b8c69..b432572 100644
--- a/chrome/browser/metrics/variations/variations_http_header_provider.h
+++ b/chrome/browser/metrics/variations/variations_http_header_provider.h
@@ -12,7 +12,7 @@
#include "base/gtest_prod_util.h"
#include "base/metrics/field_trial.h"
#include "base/synchronization/lock.h"
-#include "chrome/common/metrics/variations/variations_associated_data.h"
+#include "components/variations/variations_associated_data.h"
namespace content {
class ResourceContext;
diff --git a/chrome/browser/metrics/variations/variations_service.cc b/chrome/browser/metrics/variations/variations_service.cc
index 973d009..63b579a 100644
--- a/chrome/browser/metrics/variations/variations_service.cc
+++ b/chrome/browser/metrics/variations/variations_service.cc
@@ -18,12 +18,12 @@
#include "base/strings/string_number_conversions.h"
#include "base/version.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/metrics/proto/trials_seed.pb.h"
-#include "chrome/browser/metrics/variations/variations_seed_processor.h"
#include "chrome/browser/net/network_time_tracker.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/metrics/variations/variations_util.h"
#include "chrome/common/pref_names.h"
+#include "components/variations/proto/trials_seed.pb.h"
+#include "components/variations/variations_seed_processor.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/common/url_fetcher.h"
#include "net/base/load_flags.h"
diff --git a/chrome/browser/metrics/variations/variations_service.h b/chrome/browser/metrics/variations/variations_service.h
index f87d333..973a8ba 100644
--- a/chrome/browser/metrics/variations/variations_service.h
+++ b/chrome/browser/metrics/variations/variations_service.h
@@ -12,8 +12,6 @@
#include "base/memory/scoped_ptr.h"
#include "base/metrics/field_trial.h"
#include "base/time/time.h"
-#include "chrome/browser/metrics/proto/study.pb.h"
-#include "chrome/browser/metrics/proto/trials_seed.pb.h"
#include "chrome/browser/metrics/variations/variations_request_scheduler.h"
#include "chrome/browser/web_resource/resource_request_allowed_notifier.h"
#include "chrome/common/chrome_version_info.h"
@@ -29,6 +27,8 @@ class PrefRegistrySimple;
namespace chrome_variations {
+class TrialsSeed;
+
// Used to setup field trials based on stored variations seed data, and fetch
// new seed data from the variations server.
class VariationsService
diff --git a/chrome/browser/metrics/variations/variations_service_unittest.cc b/chrome/browser/metrics/variations/variations_service_unittest.cc
index 8da383b..1f7990f 100644
--- a/chrome/browser/metrics/variations/variations_service_unittest.cc
+++ b/chrome/browser/metrics/variations/variations_service_unittest.cc
@@ -11,10 +11,11 @@
#include "base/sha1.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
-#include "chrome/browser/metrics/proto/study.pb.h"
#include "chrome/browser/web_resource/resource_request_allowed_notifier_test_util.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/testing_browser_process.h"
+#include "components/variations/proto/study.pb.h"
+#include "components/variations/proto/trials_seed.pb.h"
#include "content/public/test/test_browser_thread.h"
#include "net/base/url_util.h"
#include "net/http/http_response_headers.h"
diff --git a/chrome/browser/omnibox/omnibox_field_trial.cc b/chrome/browser/omnibox/omnibox_field_trial.cc
index 0376e73..7f53c60 100644
--- a/chrome/browser/omnibox/omnibox_field_trial.cc
+++ b/chrome/browser/omnibox/omnibox_field_trial.cc
@@ -13,9 +13,9 @@
#include "base/strings/stringprintf.h"
#include "chrome/browser/autocomplete/autocomplete_input.h"
#include "chrome/browser/search/search.h"
-#include "chrome/common/metrics/metrics_util.h"
#include "chrome/common/metrics/variations/variation_ids.h"
#include "chrome/common/metrics/variations/variations_util.h"
+#include "components/variations/metrics_util.h"
namespace {
diff --git a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
index adb43a8..82522b6 100644
--- a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
+++ b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
@@ -12,8 +12,8 @@
#include "chrome/browser/autocomplete/autocomplete_input.h"
#include "chrome/browser/search/search.h"
#include "chrome/common/chrome_switches.h"
-#include "chrome/common/metrics/entropy_provider.h"
#include "chrome/common/metrics/variations/variations_util.h"
+#include "components/variations/entropy_provider.h"
#include "testing/gtest/include/gtest/gtest.h"
class OmniboxFieldTrialTest : public testing::Test {
diff --git a/chrome/browser/search/search_unittest.cc b/chrome/browser/search/search_unittest.cc
index 35de837..a93532f 100644
--- a/chrome/browser/search/search_unittest.cc
+++ b/chrome/browser/search/search_unittest.cc
@@ -16,11 +16,11 @@
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/chrome_switches.h"
-#include "chrome/common/metrics/entropy_provider.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "chrome/test/base/browser_with_test_window_test.h"
#include "chrome/test/base/ui_test_utils.h"
+#include "components/variations/entropy_provider.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/site_instance.h"
diff --git a/chrome/browser/spellchecker/feedback_sender_unittest.cc b/chrome/browser/spellchecker/feedback_sender_unittest.cc
index 5c0b1db..ed6ac5be 100644
--- a/chrome/browser/spellchecker/feedback_sender_unittest.cc
+++ b/chrome/browser/spellchecker/feedback_sender_unittest.cc
@@ -15,11 +15,11 @@
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/common/chrome_switches.h"
-#include "chrome/common/metrics/entropy_provider.h"
#include "chrome/common/spellcheck_common.h"
#include "chrome/common/spellcheck_marker.h"
#include "chrome/common/spellcheck_result.h"
#include "chrome/test/base/testing_profile.h"
+#include "components/variations/entropy_provider.h"
#include "content/public/test/test_browser_thread.h"
#include "net/url_request/test_url_fetcher_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/ui/bookmarks/bookmark_prompt_controller.cc b/chrome/browser/ui/bookmarks/bookmark_prompt_controller.cc
index 386669d..4e76dcd 100644
--- a/chrome/browser/ui/bookmarks/bookmark_prompt_controller.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_prompt_controller.cc
@@ -22,8 +22,8 @@
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/chrome_version_info.h"
#include "chrome/common/metrics/variations/variation_ids.h"
-#include "chrome/common/metrics/variations/variations_associated_data.h"
#include "chrome/common/pref_names.h"
+#include "components/variations/variations_associated_data.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_types.h"
#include "content/public/browser/web_contents.h"
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index fc1dc02..6525ea2 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -26,7 +26,6 @@
'probe_message_proto',
'safe_browsing_proto',
'safe_browsing_report_proto',
- 'variations_seed_proto',
'../components/components.gyp:browser_context_keyed_service',
'../components/components.gyp:encryptor',
'../components/components.gyp:sessions',
@@ -1121,8 +1120,6 @@
'browser/metrics/variations/variations_request_scheduler.h',
'browser/metrics/variations/variations_request_scheduler_mobile.cc',
'browser/metrics/variations/variations_request_scheduler_mobile.h',
- 'browser/metrics/variations/variations_seed_processor.cc',
- 'browser/metrics/variations/variations_seed_processor.h',
'browser/metrics/variations/variations_service.cc',
'browser/metrics/variations/variations_service.h',
'browser/metro_viewer/chrome_metro_viewer_process_host_aurawin.cc',
@@ -3373,20 +3370,6 @@
'includes': [ '../build/protoc.gypi' ]
},
{
- # Protobuf compiler / generator for Chrome Variations seed.
- 'target_name': 'variations_seed_proto',
- 'type': 'static_library',
- 'sources': [
- 'browser/metrics/proto/trials_seed.proto',
- 'browser/metrics/proto/study.proto',
- ],
- 'variables': {
- 'proto_in_dir': 'browser/metrics/proto',
- 'proto_out_dir': 'chrome/browser/metrics/proto',
- },
- 'includes': [ '../build/protoc.gypi' ]
- },
- {
# Protobuf compiler / generator for Sync FileSystem protocol buffer.
'target_name': 'sync_file_system_proto',
'type': 'static_library',
diff --git a/chrome/chrome_browser_chromeos.gypi b/chrome/chrome_browser_chromeos.gypi
index 3f55faf..69a107d 100644
--- a/chrome/chrome_browser_chromeos.gypi
+++ b/chrome/chrome_browser_chromeos.gypi
@@ -43,7 +43,6 @@
'installer_util',
'safe_browsing_proto',
'safe_browsing_report_proto',
- 'variations_seed_proto',
'../breakpad/breakpad.gyp:breakpad_client',
'../build/linux/system.gyp:dbus',
'../chromeos/chromeos.gyp:chromeos',
diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi
index 3a2e4d6..f968ba1 100644
--- a/chrome/chrome_browser_ui.gypi
+++ b/chrome/chrome_browser_ui.gypi
@@ -29,7 +29,6 @@
'safe_browsing_proto',
'safe_browsing_report_proto',
'feedback_proto',
- 'variations_seed_proto',
'../components/components.gyp:auto_login_parser',
'../content/content.gyp:content_browser',
'../content/content.gyp:content_common',
diff --git a/chrome/chrome_common.gypi b/chrome/chrome_common.gypi
index 7730670..157d2e6 100644
--- a/chrome/chrome_common.gypi
+++ b/chrome/chrome_common.gypi
@@ -39,6 +39,7 @@
'<(DEPTH)/chrome/common_constants.gyp:common_constants',
'<(DEPTH)/components/components.gyp:json_schema',
'<(DEPTH)/components/components.gyp:policy_component',
+ '<(DEPTH)/components/components.gyp:variations',
'<(DEPTH)/components/components.gyp:visitedlink_common',
'<(DEPTH)/content/content.gyp:content_common',
'<(DEPTH)/net/net.gyp:net',
@@ -46,7 +47,6 @@
'<(DEPTH)/third_party/icu/icu.gyp:icui18n',
'<(DEPTH)/third_party/icu/icu.gyp:icuuc',
'<(DEPTH)/third_party/libxml/libxml.gyp:libxml',
- '<(DEPTH)/third_party/mt19937ar/mt19937ar.gyp:mt19937ar',
'<(DEPTH)/third_party/sqlite/sqlite.gyp:sqlite',
'<(DEPTH)/third_party/zlib/google/zip.gyp:zip',
'<(DEPTH)/ui/ui.gyp:ui_resources',
@@ -396,20 +396,14 @@
'common/media/webrtc_logging_messages.h',
'common/metrics/caching_permuted_entropy_provider.cc',
'common/metrics/caching_permuted_entropy_provider.h',
- 'common/metrics/entropy_provider.cc',
- 'common/metrics/entropy_provider.h',
'common/metrics/metrics_log_base.cc',
'common/metrics/metrics_log_base.h',
'common/metrics/metrics_log_manager.cc',
'common/metrics/metrics_log_manager.h',
'common/metrics/metrics_service_base.cc',
'common/metrics/metrics_service_base.h',
- 'common/metrics/metrics_util.cc',
- 'common/metrics/metrics_util.h',
'common/metrics/variations/uniformity_field_trials.cc',
'common/metrics/variations/uniformity_field_trials.h',
- 'common/metrics/variations/variations_associated_data.cc',
- 'common/metrics/variations/variations_associated_data.h',
'common/metrics/variations/variations_util.cc',
'common/metrics/variations/variations_util.h',
'common/multi_process_lock.h',
diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi
index d0d62db..8e1c70b 100644
--- a/chrome/chrome_tests_unit.gypi
+++ b/chrome/chrome_tests_unit.gypi
@@ -989,7 +989,6 @@
'browser/metrics/thread_watcher_unittest.cc',
'browser/metrics/time_ticks_experiment_unittest.cc',
'browser/metrics/variations/variations_http_header_provider_unittest.cc',
- 'browser/metrics/variations/variations_seed_processor_unittest.cc',
'browser/metrics/variations/variations_service_unittest.cc',
'browser/metrics/variations/variations_request_scheduler_unittest.cc',
'browser/nacl_host/nacl_file_host_unittest.cc',
@@ -1775,11 +1774,8 @@
'common/mac/objc_method_swizzle_unittest.mm',
'common/mac/objc_zombie_unittest.mm',
'common/metrics/caching_permuted_entropy_provider_unittest.cc',
- 'common/metrics/entropy_provider_unittest.cc',
'common/metrics/metrics_log_base_unittest.cc',
'common/metrics/metrics_log_manager_unittest.cc',
- 'common/metrics/metrics_util_unittest.cc',
- 'common/metrics/variations/variations_associated_data_unittest.cc',
'common/metrics/variations/variations_util_unittest.cc',
'common/multi_process_lock_unittest.cc',
'common/net/url_fixer_upper_unittest.cc',
diff --git a/chrome/common/metrics/caching_permuted_entropy_provider.h b/chrome/common/metrics/caching_permuted_entropy_provider.h
index 6416d91..8592830 100644
--- a/chrome/common/metrics/caching_permuted_entropy_provider.h
+++ b/chrome/common/metrics/caching_permuted_entropy_provider.h
@@ -8,8 +8,8 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "base/threading/thread_checker.h"
-#include "chrome/common/metrics/entropy_provider.h"
#include "chrome/common/metrics/proto/permuted_entropy_cache.pb.h"
+#include "components/variations/entropy_provider.h"
class PrefService;
class PrefRegistrySimple;
diff --git a/chrome/common/metrics/variations/variations_util.h b/chrome/common/metrics/variations/variations_util.h
index f6e29ed..cd0c787 100644
--- a/chrome/common/metrics/variations/variations_util.h
+++ b/chrome/common/metrics/variations/variations_util.h
@@ -9,7 +9,7 @@
#include "base/metrics/field_trial.h"
#include "base/strings/string16.h"
-#include "chrome/common/metrics/variations/variations_associated_data.h"
+#include "components/variations/variations_associated_data.h"
namespace chrome_variations {
diff --git a/chrome/common/metrics/variations/variations_util_unittest.cc b/chrome/common/metrics/variations/variations_util_unittest.cc
index e5845e5..1f9e140 100644
--- a/chrome/common/metrics/variations/variations_util_unittest.cc
+++ b/chrome/common/metrics/variations/variations_util_unittest.cc
@@ -11,7 +11,7 @@
#include "base/strings/string_split.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
-#include "chrome/common/metrics/metrics_util.h"
+#include "components/variations/metrics_util.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace chrome_variations {
diff --git a/chrome/renderer/autofill/form_autofill_browsertest.cc b/chrome/renderer/autofill/form_autofill_browsertest.cc
index 68fa4c7..aa9565e 100644
--- a/chrome/renderer/autofill/form_autofill_browsertest.cc
+++ b/chrome/renderer/autofill/form_autofill_browsertest.cc
@@ -10,12 +10,12 @@
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/common/metrics/entropy_provider.h"
#include "chrome/test/base/chrome_render_view_test.h"
#include "components/autofill/content/renderer/form_autofill_util.h"
#include "components/autofill/content/renderer/form_cache.h"
#include "components/autofill/core/common/form_data.h"
#include "components/autofill/core/common/web_element_descriptor.h"
+#include "components/variations/entropy_provider.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/WebKit/public/platform/WebString.h"
#include "third_party/WebKit/public/platform/WebVector.h"
diff --git a/components/OWNERS b/components/OWNERS
index ff02f9e..52618de 100644
--- a/components/OWNERS
+++ b/components/OWNERS
@@ -42,5 +42,9 @@ per-file user_prefs.gypi=bauerb@chromium.org
per-file user_prefs.gypi=mnissler@chromium.org
per-file user_prefs.gypi=pam@chromium.org
+per-file variations.gypi=asvitkine@chromium.org
+per-file variations.gypi=jwd@chromium.org
+per-file variations.gypi=stevet@chromium.org
+
per-file *.isolate=csharp@chromium.org
per-file *.isolate=maruel@chromium.org
diff --git a/components/components.gyp b/components/components.gyp
index 602650c..f3be9de 100644
--- a/components/components.gyp
+++ b/components/components.gyp
@@ -20,6 +20,7 @@
'policy.gypi',
'sessions.gypi',
'user_prefs.gypi',
+ 'variations.gypi',
'visitedlink.gypi',
'webdata.gypi',
'web_contents_delegate_android.gypi',
diff --git a/components/components_tests.gypi b/components/components_tests.gypi
index 61346d0..1cd55d2 100644
--- a/components/components_tests.gypi
+++ b/components/components_tests.gypi
@@ -19,6 +19,11 @@
'navigation_interception/intercept_navigation_resource_throttle_unittest.cc',
'sessions/serialized_navigation_entry_unittest.cc',
'test/run_all_unittests.cc',
+ # TODO(asvitkine): These should be tested on iOS too.
+ 'variations/entropy_provider_unittest.cc',
+ 'variations/metrics_util_unittest.cc',
+ 'variations/variations_associated_data_unittest.cc',
+ 'variations/variations_seed_processor_unittest.cc',
'visitedlink/test/visitedlink_unittest.cc',
'webdata/encryptor/encryptor_password_mac_unittest.cc',
'webdata/encryptor/encryptor_unittest.cc',
@@ -57,6 +62,9 @@
'sessions',
'sessions_test_support',
+ # Dependencies of variations
+ 'variations',
+
# Dependencies of visitedlink
'visitedlink_browser',
'visitedlink_renderer',
diff --git a/components/variations.gypi b/components/variations.gypi
new file mode 100644
index 0000000..5bf6b0e
--- /dev/null
+++ b/components/variations.gypi
@@ -0,0 +1,47 @@
+# Copyright (c) 2012 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.
+
+{
+ 'targets': [
+ {
+ 'target_name': 'variations',
+ 'type': 'static_library',
+ 'include_dirs': [
+ '..',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../third_party/mt19937ar/mt19937ar.gyp:mt19937ar',
+ 'variations_seed_proto',
+ ],
+ 'sources': [
+ 'variations/entropy_provider.cc',
+ 'variations/entropy_provider.h',
+ 'variations/metrics_util.cc',
+ 'variations/metrics_util.h',
+ 'variations/variations_associated_data.cc',
+ 'variations/variations_associated_data.h',
+ 'variations/variations_seed_processor.cc',
+ 'variations/variations_seed_processor.h',
+ ],
+ },
+ {
+ # Protobuf compiler / generator for Chrome Variations seed.
+ 'target_name': 'variations_seed_proto',
+ 'type': 'static_library',
+ 'include_dirs': [
+ '..',
+ ],
+ 'sources': [
+ 'variations/proto/trials_seed.proto',
+ 'variations/proto/study.proto',
+ ],
+ 'variables': {
+ 'proto_in_dir': 'variations/proto',
+ 'proto_out_dir': 'components/variations/proto',
+ },
+ 'includes': [ '../build/protoc.gypi' ]
+ },
+ ],
+}
diff --git a/components/variations/OWNERS b/components/variations/OWNERS
new file mode 100644
index 0000000..aadd23c
--- /dev/null
+++ b/components/variations/OWNERS
@@ -0,0 +1,3 @@
+asvitkine@chromium.org
+jwd@chromium.org
+stevet@chromium.org
diff --git a/chrome/common/metrics/entropy_provider.cc b/components/variations/entropy_provider.cc
index 385f418..a547cb1 100644
--- a/chrome/common/metrics/entropy_provider.cc
+++ b/components/variations/entropy_provider.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/common/metrics/entropy_provider.h"
+#include "components/variations/entropy_provider.h"
#include <algorithm>
#include <limits>
@@ -12,7 +12,7 @@
#include "base/rand_util.h"
#include "base/sha1.h"
#include "base/sys_byteorder.h"
-#include "chrome/common/metrics/metrics_util.h"
+#include "components/variations/metrics_util.h"
namespace metrics {
diff --git a/chrome/common/metrics/entropy_provider.h b/components/variations/entropy_provider.h
index 494c689..786ae28 100644
--- a/chrome/common/metrics/entropy_provider.h
+++ b/components/variations/entropy_provider.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_COMMON_METRICS_ENTROPY_PROVIDER_H_
-#define CHROME_COMMON_METRICS_ENTROPY_PROVIDER_H_
+#ifndef COMPONENTS_VARIATIONS_ENTROPY_PROVIDER_H_
+#define COMPONENTS_VARIATIONS_ENTROPY_PROVIDER_H_
#include <functional>
#include <string>
@@ -91,4 +91,4 @@ class PermutedEntropyProvider : public base::FieldTrial::EntropyProvider {
} // namespace metrics
-#endif // CHROME_COMMON_METRICS_ENTROPY_PROVIDER_H_
+#endif // COMPONENTS_VARIATIONS_ENTROPY_PROVIDER_H_
diff --git a/chrome/common/metrics/entropy_provider_unittest.cc b/components/variations/entropy_provider_unittest.cc
index 2503d00..4e9a637 100644
--- a/chrome/common/metrics/entropy_provider_unittest.cc
+++ b/components/variations/entropy_provider_unittest.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/common/metrics/entropy_provider.h"
+#include "components/variations/entropy_provider.h"
#include <cmath>
#include <limits>
@@ -13,7 +13,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/rand_util.h"
#include "base/strings/string_number_conversions.h"
-#include "chrome/common/metrics/metrics_util.h"
+#include "components/variations/metrics_util.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace metrics {
diff --git a/chrome/common/metrics/metrics_util.cc b/components/variations/metrics_util.cc
index 775501d..031c3d3 100644
--- a/chrome/common/metrics/metrics_util.cc
+++ b/components/variations/metrics_util.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/common/metrics/metrics_util.h"
+#include "components/variations/metrics_util.h"
#include "base/sha1.h"
#include "base/sys_byteorder.h"
diff --git a/chrome/common/metrics/metrics_util.h b/components/variations/metrics_util.h
index 306ed09..b331d4e 100644
--- a/chrome/common/metrics/metrics_util.h
+++ b/components/variations/metrics_util.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_COMMON_METRICS_METRICS_UTIL_H_
-#define CHROME_COMMON_METRICS_METRICS_UTIL_H_
+#ifndef COMPONENTS_VARIATIONS_METRICS_UTIL_H_
+#define COMPONENTS_VARIATIONS_METRICS_UTIL_H_
#include <string>
@@ -17,4 +17,4 @@ uint32 HashName(const std::string& name);
} // namespace metrics
-#endif // CHROME_COMMON_METRICS_METRICS_UTIL_H_
+#endif // COMPONENTS_VARIATIONS_METRICS_UTIL_H_
diff --git a/chrome/common/metrics/metrics_util_unittest.cc b/components/variations/metrics_util_unittest.cc
index 7c21dfd..4f32494 100644
--- a/chrome/common/metrics/metrics_util_unittest.cc
+++ b/components/variations/metrics_util_unittest.cc
@@ -2,7 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/common/metrics/metrics_util.h"
+#include "components/variations/metrics_util.h"
+
#include "testing/gtest/include/gtest/gtest.h"
namespace metrics {
diff --git a/chrome/browser/metrics/proto/study.proto b/components/variations/proto/study.proto
index fdaa41f..fdaa41f 100644
--- a/chrome/browser/metrics/proto/study.proto
+++ b/components/variations/proto/study.proto
diff --git a/chrome/browser/metrics/proto/trials_seed.proto b/components/variations/proto/trials_seed.proto
index 9e0249a..9e0249a 100644
--- a/chrome/browser/metrics/proto/trials_seed.proto
+++ b/components/variations/proto/trials_seed.proto
diff --git a/chrome/common/metrics/variations/variations_associated_data.cc b/components/variations/variations_associated_data.cc
index 9a1a56e..64a6d6e 100644
--- a/chrome/common/metrics/variations/variations_associated_data.cc
+++ b/components/variations/variations_associated_data.cc
@@ -2,14 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/common/metrics/variations/variations_associated_data.h"
+#include "components/variations/variations_associated_data.h"
#include <map>
+#include <utility>
#include <vector>
#include "base/memory/singleton.h"
-#include "chrome/common/metrics/metrics_util.h"
-#include "chrome/common/metrics/variations/variation_ids.h"
+#include "components/variations/metrics_util.h"
namespace chrome_variations {
diff --git a/chrome/common/metrics/variations/variations_associated_data.h b/components/variations/variations_associated_data.h
index 78d89b6..bfc4a8f 100644
--- a/chrome/common/metrics/variations/variations_associated_data.h
+++ b/components/variations/variations_associated_data.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_COMMON_METRICS_VARIATIONS_VARIATIONS_ASSOCIATED_DATA_H_
-#define CHROME_COMMON_METRICS_VARIATIONS_VARIATIONS_ASSOCIATED_DATA_H_
+#ifndef COMPONENTS_VARIATIONS_VARIATIONS_ASSOCIATED_DATA_H_
+#define COMPONENTS_VARIATIONS_VARIATIONS_ASSOCIATED_DATA_H_
#include <map>
#include <string>
@@ -152,4 +152,4 @@ void ClearAllVariationParams();
} // namespace chrome_variations
-#endif // CHROME_COMMON_METRICS_VARIATIONS_VARIATIONS_ASSOCIATED_DATA_H_
+#endif // COMPONENTS_VARIATIONS_VARIATIONS_ASSOCIATED_DATA_H_
diff --git a/chrome/common/metrics/variations/variations_associated_data_unittest.cc b/components/variations/variations_associated_data_unittest.cc
index b3832e6..d9d4b5d 100644
--- a/chrome/common/metrics/variations/variations_associated_data_unittest.cc
+++ b/components/variations/variations_associated_data_unittest.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/common/metrics/variations/variations_associated_data.h"
+#include "components/variations/variations_associated_data.h"
#include "base/metrics/field_trial.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/metrics/variations/variations_seed_processor.cc b/components/variations/variations_seed_processor.cc
index 3600a7e..c28d351 100644
--- a/chrome/browser/metrics/variations/variations_seed_processor.cc
+++ b/components/variations/variations_seed_processor.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/metrics/variations/variations_seed_processor.h"
+#include "components/variations/variations_seed_processor.h"
#include <map>
#include <set>
@@ -12,8 +12,7 @@
#include "base/metrics/field_trial.h"
#include "base/stl_util.h"
#include "base/version.h"
-#include "chrome/browser/metrics/proto/trials_seed.pb.h"
-#include "chrome/common/metrics/variations/variations_associated_data.h"
+#include "components/variations/variations_associated_data.h"
namespace chrome_variations {
diff --git a/chrome/browser/metrics/variations/variations_seed_processor.h b/components/variations/variations_seed_processor.h
index 074d1af..46dccfa 100644
--- a/chrome/browser/metrics/variations/variations_seed_processor.h
+++ b/components/variations/variations_seed_processor.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_SEED_PROCESSOR_H_
-#define CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_SEED_PROCESSOR_H_
+#ifndef COMPONENTS_VARIATIONS_VARIATIONS_SEED_PROCESSOR_H_
+#define COMPONENTS_VARIATIONS_VARIATIONS_SEED_PROCESSOR_H_
#include <string>
@@ -12,8 +12,8 @@
#include "base/metrics/field_trial.h"
#include "base/time/time.h"
#include "base/version.h"
-#include "chrome/browser/metrics/proto/study.pb.h"
-#include "chrome/browser/metrics/proto/trials_seed.pb.h"
+#include "components/variations/proto/study.pb.h"
+#include "components/variations/proto/trials_seed.pb.h"
namespace chrome_variations {
@@ -93,4 +93,4 @@ class VariationsSeedProcessor {
} // namespace chrome_variations
-#endif // CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_SEED_PROCESSOR_H_
+#endif // COMPONENTS_VARIATIONS_VARIATIONS_SEED_PROCESSOR_H_
diff --git a/chrome/browser/metrics/variations/variations_seed_processor_unittest.cc b/components/variations/variations_seed_processor_unittest.cc
index 1ab7c62..6a41ce2 100644
--- a/chrome/browser/metrics/variations/variations_seed_processor_unittest.cc
+++ b/components/variations/variations_seed_processor_unittest.cc
@@ -2,13 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/metrics/variations/variations_seed_processor.h"
+#include "components/variations/variations_seed_processor.h"
#include <vector>
#include "base/command_line.h"
#include "base/strings/string_split.h"
-#include "chrome/common/metrics/variations/variations_associated_data.h"
+#include "components/variations/variations_associated_data.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace chrome_variations {