media: Media Foundation Clear Key CDM enabling HW GPU bots

New test suite `media_foundation_browser_tests` with
WIN10_INTEL_UHD_630_STABLE added to builder
`win_optional_gpu_tests_rel` to enable HW GPU bots to run
MediaFoundation browser tests on the required Windows OS with a HW GPU.

- Added `gpu_default_and_optional_win_media_foundation_specific_gtests`
test suite to run MediaFoundation browser tests on a minimally required
Windows OS with a MediaFoundation supported hardware GPU. Also passing
`--use-gpu-in-tests` flag to render image correctly.
- Added this new test suit into the existing
`win_optional_gpu_tests_rel` builder with WIN10_INTEL_UHD_630_STABLE
variant which supports HW secure decryption.
- Note that WIN10_NVIDIA_GTX_1660_STABLE is running on WIN10_19H2
(Version 1909, Build 18363) which doesn't support HW secure
decryption.
- Added new location filters to detect any CDM and Media Foundation
related changes that should trigger `win_optional_gpu_tests_rel` bot:
  media/cdm/.+
  chrome/browser/media/.+
  components/cdm/renderer/.+
  media/base/win/.+      ---> already included
  media/renderers/win/.+      ---> already included
  media/filters/win/.+      ---> already included
- For `win-rel` bot, this flag is not passed so it will skip the
test. Otherwise, it will end up with the failure to create D3D11
device with a software OpenGL implementation. This way
`media_foundation_browser_tests` can trigger MediaFoundation browser
tests on the correct Windows machine with a hardware GPU. On local
machines, you still need to pass `--use-gpu-in-tests` flag manually.

Some auto-generated files:
- tryserver.chromium.win.json is auto-generated by
`.\testing\buildbot\generate_buildbot_json.py`.
- cq-builders.md, full.cfg and commit-queue.cfg are auto-generated by
running `lucicfg generate .\infra\config\main.star`.

Build command:
```
autoninja -C out\Default browser_tests

.\out\Default\browser_tests --gtest_filter=MediaFoundationEncryptedMediaTest.Playback_ClearLeadEncryptedCencVideo_Success --use-gpu-in-tests
.\out\Default\browser_tests --gtest_filter=MediaFoundationEncryptedMediaTest.Playback_ClearLeadEncryptedCbcsVideo_Success --use-gpu-in-tests
.\out\Default\browser_tests --gtest_filter=MediaFoundationEncryptedMediaTest.Playback_EncryptedVp9CencAudio_MediaTypeUnsupported --use-gpu-in-tests
```

Bug: 1235887, 1444893
Change-Id: Ic75e32760261fa1d359760334afab57569cd297d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4525141
Reviewed-by: Ben Pastene <bpastene@chromium.org>
Commit-Queue: Sangbaek Park <sangbaekpark@chromium.org>
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1144405}
8 files changed
tree: 12141b329829187373c33e48aa89adcb8f26e4eb
  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.