Omnibox: Create Bundled Field Trial; Convert SearchHistory trial to it
commit78e5e43ae2332937468d4245a17f2f47dfa0ecc9
authormpearson@chromium.org <mpearson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Sat, 3 Aug 2013 02:10:10 +0000 (3 02:10 +0000)
committermpearson@chromium.org <mpearson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Sat, 3 Aug 2013 02:10:10 +0000 (3 02:10 +0000)
tree5a309e19a1c09a7484bfeba69f6f8a6d4baa0b37
parent575cce6c6b8ce8f5c2dff9dc9ad51a7f302765a1
Omnibox: Create Bundled Field Trial; Convert SearchHistory trial to it

Create one field trial that's intended to rule over all omnibox field
trials.  They allows our trials to run correlated.  For example, suppose
we have two trials A (with 50-50 groups a1 and a2) and B (with 50-50
groups b1 b2).  Currently this yields four conditions users can be in
25% a1-b1, 25% a1-b2, 25% a2-b1, 25% a2-b2.

This would be great, but what if we want to compare a1-b1 and a1-b2 and
a2-b1 but think a2-b2 makes no sense.  There's no way to do it with the
current independent field trial framework.

This change creates one field trial that supposed to include all omnibox
field trials that we want to run.

This change converts the SearchHistory field trial to this bundled
field trial.

Obviously, this trials-can-be-dependent property isn't useful until we
add more experiments to this bundled field trial.  I'll do that in
another changelist.

This change also gives this new bundled trial the ability to condition
certain experiment on page context.  In particular, depending on what
the user is viewing when using the omnibox, the different experiments
can be active.  For example, an omnibox on the new tab page can have
different experiments than the omnibox on an arbitrary web page.

Tested using my own variations server with an appropriate config
with various experiment params.

BUG=264062,264065,263823

Review URL: https://chromiumcodereview.appspot.com/20777006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215457 0039d316-1c4b-4281-b951-d872f2087c98
chrome/browser/autocomplete/search_provider.cc
chrome/browser/autocomplete/search_provider.h
chrome/browser/omnibox/omnibox_field_trial.cc
chrome/browser/omnibox/omnibox_field_trial.h
chrome/browser/omnibox/omnibox_field_trial_unittest.cc