Update windows SDK version to 10.0.26100.1742

This CL updates our packaged toolchain from SDK version 10.0.22612 to
10.0.26100. For the time being, we aim to accept both SDK versions
when compiling our code. Once this CL has landed for ~1 week without
being reverted, we will create a followup CL to discontinue support
for SDK version 10.0.22612.

The new SDK version saw d3dcompiler_47.dll change from statically
linking the UCRT (Universal C Runtime) to dynamically linking. This
caused breakages on older Windows versions which don't necessarily
have the up-to-date DLLs. As a result, the packaged toolchain
contains an old version of d3dcompiler_47.dll, from SDK version 10.0.22612.3233.

Apart from the build files, this CL includes new baselines for image tests (the new SDK supports certain 3D emoji that were formerly flat), new installer MSIs (automatically generated during a local build with the new SDK version), and several code changes to account for new enum values/newly exposed API functions.

These code changes have been gated by the SDK version in a best-effort to support the previous SDK version during our migration. We'll remove these gates once we start requiring the new version.

Instructions to recreate the toolchain package:

Packaging was done on a Windows 11 21H2 VM, cleanly created for this
purpose. The VM was the "Windows 11 dev environment VM" available in
Hyper-V's Quick Create.

After creating the VM, the existing Visual Studio and SDK installs
were removed, downloading the VS Professional bootstrapper from
https://visualstudio.microsoft.com/downloads/, and then running
it like this:

$ .\VisualStudioSetup.exe.exe ^
    --add Microsoft.VisualStudio.Workload.NativeDesktop ^
    --add Microsoft.VisualStudio.Component.VC.ATLMFC ^
    --add Microsoft.VisualStudio.Component.VC.Tools.ARM64 ^
    --add Microsoft.VisualStudio.Component.VC.MFC.ARM64 ^
    --includeRecommended --passive

Once the bootstrapper finished, the 10.0.26100 SDK was installed by
launching the VS installer, selecting "Modify", navigating to
"individual components", uninstalling the previous version of the SDK
and installing the new version (this installed version 10.0.26100.1742).

Next, Add or Remove Programs was used to modify the 10.0.26100 SDK to
add the Debuggers package.

Finally, depot_tools was installed following the Windows instructions here:
https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up

Then the packaging script was run like this:

  python3 depot_tools\win_toolchain\package_from_installed.py 2022 -w 10.0.26100.0

(Link to the version of the packaging script used for this CL:
https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up)

The result of this was a toolchain package with hash c6bb666dd3.


To replace d3dcompiler_47.dll, the following additional steps were taken:

Unzip the above toolchain package to the Desktop.

Use the VS installer to install the 10.0.22612 SDK version under
"individual components" (this installed version 10.0.22612.3233).

Copy the previous dll into the packaged toolchain like so:
$ copy "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\d3dcompiler_47.dll" "C:\Users\User\Desktop\c6bb666dd3\Windows Kits\10\Redist\D3D\x64"
$ copy "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\d3dcompiler_47.dll" "C:\Users\User\Desktop\c6bb666dd3\Windows Kits\10\bin\10.0.26100.0\x64"

Finally, run
$ python3 depot_tools\win_toolchain\package_from_installed.py --repackage=C:\Users\User\Desktop\c6bb666dd3

This produced the final package with hash 698eb5635a.

Bug: 362650376
Low-Coverage-Reason: LARGE_SCALE_REFACTOR Updating several files for new SDK version.
Change-Id: I585a1ef0645946a12297efe02141cf07914dee12
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5898835
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Alan Zhao <ayzhao@google.com>
Commit-Queue: Devon Loehr <dloehr@google.com>
Reviewed-by: S Ganesh <ganesh@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1369447}
23 files changed
tree: d07d679192b2f95c11258f09e82edf77a94632dc
  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. crypto/
  16. dbus/
  17. device/
  18. docs/
  19. extensions/
  20. fuchsia_web/
  21. gin/
  22. google_apis/
  23. google_update/
  24. gpu/
  25. headless/
  26. infra/
  27. ios/
  28. ipc/
  29. media/
  30. mojo/
  31. native_client_sdk/
  32. net/
  33. pdf/
  34. ppapi/
  35. printing/
  36. remoting/
  37. rlz/
  38. sandbox/
  39. services/
  40. skia/
  41. sql/
  42. storage/
  43. styleguide/
  44. testing/
  45. third_party/
  46. tools/
  47. ui/
  48. url/
  49. webkit/
  50. .clang-format
  51. .clang-tidy
  52. .clangd
  53. .git-blame-ignore-revs
  54. .gitallowed
  55. .gitattributes
  56. .gitignore
  57. .gitmodules
  58. .gn
  59. .mailmap
  60. .rustfmt.toml
  61. .vpython3
  62. .yapfignore
  63. ATL_OWNERS
  64. AUTHORS
  65. BUILD.gn
  66. CODE_OF_CONDUCT.md
  67. codereview.settings
  68. CPPLINT.cfg
  69. CRYPTO_OWNERS
  70. DEPS
  71. DIR_METADATA
  72. LICENSE
  73. LICENSE.chromium_os
  74. OWNERS
  75. PRESUBMIT.py
  76. PRESUBMIT_test.py
  77. PRESUBMIT_test_mocks.py
  78. README.md
  79. 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.