[iOS] Merge NTP field trials and add enum support

Merges client-side field trial configs for the popular sites and the tile ablation experiments. Replaces boolean parameter with enum that can use an int to assign a group value. This can be set from chrome://flags (the standard "Enabled" group has default behavior).

Updates GWS IDs, group names, and adds version suffixing support to facilitate ramping up.

This change ensures that the experiments are mutually exclusive to avoid any crosstalk. This leaves us with 6 groups:
- Popular sites control
- Popular sites including popular apps
- Popular sites excluding popular apps
- Tile ablation control
- Tile ablation hide all
- Tile ablation hide MVT only

For prestable, these groups are evenly distributed at 16% each. For stable, tile ablation is disabled and popular sites remains at 3%.

Bug: 1414513, 1383983
Change-Id: Iaf01b687da59e1923937e16baac3b98a69c096fd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4296341
Commit-Queue: Adam Arcaro <[email protected]>
Reviewed-by: Benjamin Williams <[email protected]>
Reviewed-by: Sergio Collazos <[email protected]>
Reviewed-by: Tibor Goldschwendt <[email protected]>
Cr-Original-Commit-Position: refs/heads/main@{#1113063}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4312066
Cr-Commit-Position: refs/heads/main@{#1114112}
30 files changed
tree: 99eb3440ecccb85c9c5f81af40158ed39cb3a3a9
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia_web/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. media/
  31. mojo/
  32. native_client_sdk/
  33. net/
  34. pdf/
  35. ppapi/
  36. printing/
  37. remoting/
  38. rlz/
  39. sandbox/
  40. services/
  41. skia/
  42. sql/
  43. storage/
  44. styleguide/
  45. testing/
  46. third_party/
  47. tools/
  48. ui/
  49. url/
  50. weblayer/
  51. .clang-format
  52. .clang-tidy
  53. .eslintrc.js
  54. .git-blame-ignore-revs
  55. .gitattributes
  56. .gitignore
  57. .gn
  58. .mailmap
  59. .rustfmt.toml
  60. .vpython3
  61. .yapfignore
  62. ATL_OWNERS
  63. AUTHORS
  64. BUILD.gn
  65. CODE_OF_CONDUCT.md
  66. codereview.settings
  67. DEPS
  68. DIR_METADATA
  69. LICENSE
  70. LICENSE.chromium_os
  71. OWNERS
  72. PRESUBMIT.py
  73. PRESUBMIT_test.py
  74. PRESUBMIT_test_mocks.py
  75. README.md
  76. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.