summaryrefslogtreecommitdiffstats
path: root/base/feature_list_unittest.cc
Commit message (Collapse)AuthorAgeFilesLines
* Plumb trial association without overriding a feature to subprocesses.asvitkine2016-03-221-0/+39
| | | | | | | | | | | | | | This makes features used in only in renders report their default group correctly as well. This is done by having the --enable-features flag also plumb the non-overriding associations over. This way, when a feature is queried in the renderer, the associated trial is activated there (and then synced to the browser). BUG=587135 Review URL: https://codereview.chromium.org/1824753002 Cr-Commit-Position: refs/heads/master@{#382575}
* Allow trials to associate without overriding a feature.asvitkine2016-03-171-0/+30
| | | | | | | | | | | | | | | | This adds a heuristic such that if a study only references a single feature from any of its groups, its other groups will be associated with that feature as well, for reporting only. This allows a config like 25% Enabled, 25% Disabled and 50% Default to still report the users in the default group to UMA, so that they show up in the data. More details in the code comments. BUG=587135 Review URL: https://codereview.chromium.org/1809633003 Cr-Commit-Position: refs/heads/master@{#381737}
* Global conversion of Pass()→std::move() on OS=linux chromecast=1dcheng2015-12-291-2/+2
| | | | | | | | | | | | (╯^□^)╯︵ ❄☃❄ BUG=557422 R=avi@chromium.org TBR=jam@chromium.org Review URL: https://codereview.chromium.org/1553493002 Cr-Commit-Position: refs/heads/master@{#367050}
* Switch to standard integer types in base/.avi2015-12-261-0/+3
| | | | | | | | | | BUG=138542 TBR=mark@chromium.org NOPRESUBMIT=true Review URL: https://codereview.chromium.org/1538743002 Cr-Commit-Position: refs/heads/master@{#366910}
* Plumb base::Feature field trial association to renderers.asvitkine2015-12-011-1/+14
| | | | | | | | | | | | | | | | | | | | | | | This CL makes the FeatureList command-line initialization code support an optional FieldTrial name for each feature that will be associated with the feature override when specified. Also changes the code that generates this command-line to also include this name. With this change, renderers will be launched with this association specified on the command-line, so that querying a Feature in the renderer only that's associated with a field trial will result in that trial being activated (and sync'd with the browser process by the existing mechanism). Depends on: https://codereview.chromium.org/1471693007 BUG=561077 Review URL: https://codereview.chromium.org/1484483002 Cr-Commit-Position: refs/heads/master@{#362343}
* Make FeatureList override state be plumbed to renderer processes.asvitkine2015-12-011-0/+29
| | | | | | | | | | | | | | | | | | | | | Previously, the browser copied over verbatim the --enable-features and --disable-features command-line. However, this wouldn't have captured overrides as a result of field trials. This change updates the logic to include those in the list. The new logic will continue to work for plumbing command-lines as well, since those are also registered using the override mechanism. Note: There's still some follow-up work that needs to be done to plumb the FieldTrial association state (so that a FieldTrial that's not active will get activated in the renderer if the associated Feature is queried). But this can be supported in a follow-up CL that builds on top of this one. BUG=561077 Review URL: https://codereview.chromium.org/1471693007 Cr-Commit-Position: refs/heads/master@{#362294}
* base: Use std::move() instead of Pass() for real movable types.danakj2015-11-251-6/+8
| | | | | | | | | | | | | | | Some of our movable types have real move-constructors/assignment operators now. We can use std::move() for these types instead of Pass(). There's still some move-only types that are implemented using an "Rvalue" type emulation, so we have to keep Pass() for those still. R=thestig@chromium.org BUG=557422 Review URL: https://codereview.chromium.org/1479473002 Cr-Commit-Position: refs/heads/master@{#361583}
* Set up a FeatureList instance for unit tests.asvitkine2015-10-281-0/+1
| | | | | | | | | | | | | | | | | This way, code that uses the FeatureList API that runs as part of unit tests won't hit a DCHECK that a FeatureList doesn't exist. In a follow-up CL, I plan to expand this a bit to add support for tests overriding default feature state. But would like to land this initial version first, as it unblock a couple of early adopters of this API. BUG=548289 Review URL: https://codereview.chromium.org/1416503004 Cr-Commit-Position: refs/heads/master@{#356477}
* Expand FeatureList to support FieldTrial association.asvitkine2015-09-281-0/+202
| | | | | | | | | | | | | | | | | | | | | This CL adds the following: - Two new APIs on FeatureList to be used during initialization. One to associate a field trial for reporting purposes when the feature is forced from the command line and the other to override the feature state via a field trial. - Passing the FeatureList instance to VariationsService during browser start up. - Extension of VariationsService (and associated proto changes) to invoke the two above APIs, when processing variations with the new proto fields. - A new API on FieldTrial to get the group name of a field trial without activating it, used by VariationsService when association a field trial. BUG=526169 Review URL: https://codereview.chromium.org/1306653004 Cr-Commit-Position: refs/heads/master@{#351199}
* Initial implementation of FeatureList in base/.asvitkine2015-09-041-0/+108
This first CL adds the initial version of FeatureList singleton class, providing support for the following: - Initial class structure and singleton registration - Support for --enable-features= and --disable-features= flags - API to test if a feature is enabled or not - Its registration in chrome_browser_main.cc - Debug checks to ensure each Feature struct is defined only once - Basic unit tests Parts that will be implemented in follow-up CLs: - Integration with FieldTrials (split out into a follow-up CL) - VariationsService integration and kill switch support - Various bits above base/ (e.g. about flags, sub-process stuff ,..) BUG=526169 Review URL: https://codereview.chromium.org/1278403003 Cr-Commit-Position: refs/heads/master@{#347438}