Remove ReduceAcceptLanguage origin trial and add deprecation trial

1. This CL intend to remove the first-party ReduceAcceptLanguage
origin trial which was introduced by https://crrev.com/c/3932979
years ago.

2. To support experiment the ReduceAcceptLanguage, we also add supports
first part and third party deprecation origin trial for this feature.

* Same origin: We support most cases (subresource, iframe, etc) of
same origin deprecation trial. Also, to make the first request work, sites can send the critical-origin-trial header.

* Cross origin: For cross origin iframe deprecation origin trial, site
need to register first-part deprecation origin trial. For subresource, sites can use JavaScript to inject the origin-trial meta tag.

* Same origin redirect: The expected behavior will happen in the second request, e.g. if the first request opt-in the deprecation origin trial, starting the second request we won't send reduced accept-language.

* Cross origin redirect: The deprecation origin trial won't work when a.com redirects to b.com and only a.com opt-in the deprecation origin,
because persistent origin trials only parse and persist tokens for commit origin which is b.com in this case.

Change-Id: Ia1fda573bb0279a4b976a7a3b8455bdcb809fcce
Bug: 334954143
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5582436
Reviewed-by: Arthur Sonzogni <arthursonzogni@chromium.org>
Commit-Queue: Victor Tan <victortan@chromium.org>
Reviewed-by: Andrew Williams <awillia@chromium.org>
Reviewed-by: Maks Orlovich <morlovich@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1314865}
21 files changed
tree: 124590333d193901e0b823c220308e67cff4bfb4
  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. webkit/
  51. .clang-format
  52. .clang-tidy
  53. .clangd
  54. .eslintrc.js
  55. .git-blame-ignore-revs
  56. .gitallowed
  57. .gitattributes
  58. .gitignore
  59. .gitmodules
  60. .gn
  61. .mailmap
  62. .rustfmt.toml
  63. .vpython3
  64. .yapfignore
  65. ATL_OWNERS
  66. AUTHORS
  67. BUILD.gn
  68. CODE_OF_CONDUCT.md
  69. codereview.settings
  70. CPPLINT.cfg
  71. DEPS
  72. DIR_METADATA
  73. LICENSE
  74. LICENSE.chromium_os
  75. OWNERS
  76. PRESUBMIT.py
  77. PRESUBMIT_test.py
  78. PRESUBMIT_test_mocks.py
  79. README.md
  80. 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.