tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit af6ce89b698314c8c4e9c74d0b82ef7b2b37f1d4
parent d5f33314b3aa0bffcdd283f56036e724caa7c76e
Author: Greg Stoll <gstoll@mozilla.com>
Date:   Mon,  6 Oct 2025 11:18:29 +0000

Bug 1947324 part 2 - make Windows Firefox builds depend on the Windows App SDK r=glandium

This also copies the needed DLLs to the dist/bin directory so Firefox
will be able to load them at runtime.

Differential Revision: https://phabricator.services.mozilla.com/D263603

Diffstat:
Mbrowser/installer/package-manifest.in | 12+++++++++++-
Mtaskcluster/kinds/build/windows.yml | 32++++++++++++++++++++++++++++++++
Mtaskcluster/kinds/instrumented-build/kind.yml | 4++++
Mtaskcluster/kinds/searchfox/kind.yml | 1+
Mtoolkit/content/license.html | 10++++++++++
Mtoolkit/moz.configure | 40++++++++++++++++++++++++++++++++++++++++
Mwidget/windows/moz.build | 17+++++++++++++++++
7 files changed, 115 insertions(+), 1 deletion(-)

diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in @@ -98,6 +98,15 @@ #endif @BINPATH@/@MSVC_CXX_RUNTIME_DLL@ #endif +; Windows App SDK DLLs +@BINPATH@/@DLL_PREFIX@CoreMessagingXP@DLL_SUFFIX@ +@BINPATH@/@DLL_PREFIX@marshal@DLL_SUFFIX@ +@BINPATH@/@DLL_PREFIX@Microsoft.InputStateManager@DLL_SUFFIX@ +@BINPATH@/@DLL_PREFIX@Microsoft.Internal.FrameworkUdk@DLL_SUFFIX@ +@BINPATH@/@DLL_PREFIX@Microsoft.UI.Composition.OSSupport@DLL_SUFFIX@ +@BINPATH@/@DLL_PREFIX@Microsoft.UI.Input@DLL_SUFFIX@ +@BINPATH@/@DLL_PREFIX@Microsoft.UI.Windowing.Core@DLL_SUFFIX@ +@BINPATH@/@DLL_PREFIX@Microsoft.UI.Windowing@DLL_SUFFIX@ #endif #ifdef MOZ_GTK ; This is a standalone binary launched by Firefox on Linux to verify @@ -432,4 +441,4 @@ bin/libfreebl_64int_3.so #if defined(DESKTOP_LAUNCHER_ENABLED) @BINPATH@/desktop-launcher/desktop-launcher@BIN_SUFFIX@ -#endif +#endif +\ No newline at end of file diff --git a/taskcluster/kinds/build/windows.yml b/taskcluster/kinds/build/windows.yml @@ -56,6 +56,7 @@ win32/debug: - sysroot-wasm32-wasi - vs - onnxruntime-i686-windows-msvc + - winappsdk-x86-pc-windows-msvc fetch: - upx-3.95-win @@ -106,6 +107,7 @@ win32/opt: - sysroot-wasm32-wasi - vs - onnxruntime-i686-windows-msvc + - winappsdk-x86-pc-windows-msvc fetch: - upx-3.95-win @@ -156,6 +158,7 @@ win32-fuzzing/debug: - sysroot-wasm32-wasi - vs - onnxruntime-i686-windows-msvc + - winappsdk-x86-pc-windows-msvc fetch: - upx-3.95-win optimization: @@ -209,6 +212,7 @@ win64/debug: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win @@ -259,6 +263,7 @@ win64-non-unified/plain: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win @@ -309,6 +314,7 @@ win64-fuzzing/debug: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win optimization: @@ -356,6 +362,7 @@ win64-plain/debug: - sysroot-wasm32-wasi - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc optimization: skip-unless-expanded: null @@ -406,6 +413,7 @@ win64/opt: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win @@ -451,6 +459,7 @@ win64-plain/opt: - sysroot-wasm32-wasi - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc optimization: skip-unless-expanded: null @@ -514,6 +523,7 @@ win32-shippable/opt: - sysroot-wasm32-wasi - vs - onnxruntime-i686-windows-msvc + - winappsdk-x86-pc-windows-msvc fetch: - upx-3.95-win @@ -569,6 +579,7 @@ win64-shippable/opt: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win @@ -621,6 +632,7 @@ win64-nightlyasrelease/opt: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win @@ -666,6 +678,7 @@ win32-add-on-devel/opt: - sysroot-wasm32-wasi - vs - onnxruntime-i686-windows-msvc + - winappsdk-x86-pc-windows-msvc fetch: - upx-3.95-win @@ -712,6 +725,7 @@ win64-add-on-devel/opt: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win @@ -758,6 +772,7 @@ win64-noopt/debug: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win @@ -803,6 +818,7 @@ win32-noopt/debug: - sysroot-wasm32-wasi - vs - onnxruntime-i686-windows-msvc + - winappsdk-x86-pc-windows-msvc fetch: - upx-3.95-win @@ -846,6 +862,7 @@ win32-rusttests/opt: - win64-mozmake - win64-dump_syms - vs + - winappsdk-x86-pc-windows-msvc optimization: test-inclusive: [rusttests] @@ -889,6 +906,7 @@ win32-rusttests/debug: - win64-mozmake - win64-dump_syms - vs + - winappsdk-x86-pc-windows-msvc optimization: test-inclusive: [rusttests] @@ -930,6 +948,7 @@ win64-rusttests/opt: - win64-dump_syms - vs - dxc-x86_64-pc-windows-msvc + - winappsdk-x86_64-pc-windows-msvc optimization: test-inclusive: [rusttests] @@ -971,6 +990,7 @@ win64-rusttests/debug: - win64-dump_syms - vs - dxc-x86_64-pc-windows-msvc + - winappsdk-x86_64-pc-windows-msvc optimization: test-inclusive: [rusttests] @@ -1025,6 +1045,7 @@ win64-ccov/opt: - sysroot-wasm32-wasi - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc win64-fuzzing-ccov/opt: description: "Win64 Fuzzing Opt w/ Coverage" @@ -1077,6 +1098,7 @@ win64-fuzzing-ccov/opt: - sysroot-wasm32-wasi - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc win64-asan/debug: description: "Win64 Debug ASAN" @@ -1123,6 +1145,7 @@ win64-asan/debug: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win optimization: @@ -1174,6 +1197,7 @@ win64-asan/opt: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win @@ -1236,6 +1260,7 @@ win64-asan-reporter-shippable/opt: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win @@ -1283,6 +1308,7 @@ win64-asan-fuzzing/opt: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win optimization: @@ -1348,6 +1374,7 @@ win32-devedition/opt: - sysroot-wasm32-wasi - vs - onnxruntime-i686-windows-msvc + - winappsdk-x86-pc-windows-msvc fetch: - upx-3.95-win @@ -1404,6 +1431,7 @@ win64-devedition/opt: - vs - dxc-x86_64-pc-windows-msvc - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win @@ -1452,6 +1480,7 @@ win64-aarch64/debug: - sysroot-wasm32-wasi - vs - dxc-aarch64-pc-windows-msvc + - winappsdk-aarch64-pc-windows-msvc fetch: - upx-3.95-win optimization: @@ -1503,6 +1532,7 @@ win64-aarch64/opt: - sysroot-wasm32-wasi - vs - dxc-aarch64-pc-windows-msvc + - winappsdk-aarch64-pc-windows-msvc fetch: - upx-3.95-win optimization: @@ -1559,6 +1589,7 @@ win64-aarch64-shippable/opt: - sysroot-wasm32-wasi - vs - dxc-aarch64-pc-windows-msvc + - winappsdk-aarch64-pc-windows-msvc fetch: - upx-3.95-win @@ -1614,5 +1645,6 @@ win64-aarch64-devedition/opt: - sysroot-wasm32-wasi - vs - dxc-aarch64-pc-windows-msvc + - winappsdk-aarch64-pc-windows-msvc fetch: - upx-3.95-win diff --git a/taskcluster/kinds/instrumented-build/kind.yml b/taskcluster/kinds/instrumented-build/kind.yml @@ -398,6 +398,7 @@ tasks: - sysroot-x86_64-linux-gnu - sysroot-wasm32-wasi - vs + - winappsdk-x86-pc-windows-msvc fetch: - upx-3.95-win - windows-rs @@ -439,6 +440,7 @@ tasks: - sysroot-wasm32-wasi - vs - dxc-x86_64-pc-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win - windows-rs @@ -478,6 +480,7 @@ tasks: - sysroot-wasm32-wasi - vs - dxc-x86_64-pc-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win - windows-rs @@ -517,6 +520,7 @@ tasks: - sysroot-wasm32-wasi - vs - dxc-aarch64-pc-windows-msvc + - winappsdk-aarch64-pc-windows-msvc fetch: - upx-3.95-win - windows-rs diff --git a/taskcluster/kinds/searchfox/kind.yml b/taskcluster/kinds/searchfox/kind.yml @@ -221,6 +221,7 @@ tasks: - sysroot-wasm32-wasi - vs - dxc-x86_64-pc-windows-msvc + - winappsdk-x86_64-pc-windows-msvc fetch: - upx-3.95-win - windows-rs diff --git a/toolkit/content/license.html b/toolkit/content/license.html @@ -4171,6 +4171,16 @@ product. <li><code>toolkit/components/ml/vendor/wllama-module-dev.mjs</code></li> #endif <li><code>toolkit/components/ml/vendor/wllama-module.mjs</code></li> +#ifdef XP_WIN + <li>CoreMessagingXP.dll</li> + <li>marshal.dll</li> + <li>Microsoft.InputStateManager.dll</li> + <li>Microsoft.Internal.FrameworkUdk.dll</li> + <li>Microsoft.UI.Composition.OSSupport.dll</li> + <li>Microsoft.UI.Input.dll</li> + <li>Microsoft.UI.Windowing.Core.dll</li> + <li>Microsoft.UI.Windowing.dll</li> +#endif </ul> See the individual LICENSE files or headers for copyright owners.</p> </td> diff --git a/toolkit/moz.configure b/toolkit/moz.configure @@ -2787,6 +2787,46 @@ with only_when(target_is_windows): with only_when(dxcompiler.from_sdk): set_config("MOZ_DXC_DLL_PATH", dxcompiler.dxc_path) +with only_when(target_is_windows & compile_environment): + option( + env="MOZ_WINDOWS_APP_SDK_DIR", + nargs=1, + help="Path to the DLLs from the Windows App SDK redistributable", + ) + + @depends(target) + def windows_app_sdk_task_job_name(target): + return f"winappsdk-{target.cpu}-pc-windows-msvc" + + @depends( + "MOZ_WINDOWS_APP_SDK_DIR", + bootstrap_path( + windows_app_sdk_task_job_name, + when=depends("MOZ_WINDOWS_APP_SDK_DIR")(lambda x: not x), + ), + ) + @checking("for the Windows App SDK") + @imports("os") + def windows_app_sdk(dir, bootstrapped): + if bootstrapped: + dir = bootstrapped + elif dir: + dir = dir[0] + + if not dir: + raise FatalCheckError("Windows App SDK dir not present!") + if not os.path.exists(dir): + raise FatalCheckError(f"Could not find Windows App SDK directory at {dir}") + if not os.path.isdir(dir): + raise FatalCheckError( + f"Windows App SDK directory is not a directory at {dir}" + ) + if len(os.listdir(dir)) == 0: + raise FatalCheckError(f"Windows App SDK directory is empty at {dir}") + return dir + + set_config("MOZ_WINDOWSAPPSDK_DIR", windows_app_sdk) + # Remoting protocol support # ============================================================== diff --git a/widget/windows/moz.build b/widget/windows/moz.build @@ -220,3 +220,20 @@ if CONFIG["CC_TYPE"] == "clang-cl": ] SPHINX_TREES["/widget/windows"] = "docs" + +if CONFIG["MOZ_WINDOWSAPPSDK_DIR"]: + # These are the few DLLs that Firefox needs instead of the + # whole Windows App SDK. + FINAL_TARGET_FILES += [ + f'%{CONFIG["MOZ_WINDOWSAPPSDK_DIR"]}/{f}' + for f in ( + "CoreMessagingXP.dll", + "marshal.dll", + "Microsoft.InputStateManager.dll", + "Microsoft.Internal.FrameworkUdk.dll", + "Microsoft.UI.Composition.OSSupport.dll", + "Microsoft.UI.Input.dll", + "Microsoft.UI.Windowing.Core.dll", + "Microsoft.UI.Windowing.dll", + ) + ]