From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- python/README | 16 + python/docs/index.rst | 228 + python/gdbpp/gdbpp/__init__.py | 32 + python/gdbpp/gdbpp/enumset.py | 31 + python/gdbpp/gdbpp/linkedlist.py | 48 + python/gdbpp/gdbpp/owningthread.py | 26 + python/gdbpp/gdbpp/smartptr.py | 60 + python/gdbpp/gdbpp/string.py | 21 + python/gdbpp/gdbpp/syncedcontext.py | 40 + python/gdbpp/gdbpp/tarray.py | 29 + python/gdbpp/gdbpp/thashtable.py | 152 + python/l10n/fluent_migrations/__init__.py | 0 .../bug_1552333_aboutCertError.py | 40 + .../bug_1635548_browser_context.py | 82 + .../bug_1786186_mobile_aboutConfig.py | 65 + .../l10n/fluent_migrations/bug_1793572_webrtc.py | 771 +++ .../bug_1812135_newtab_moz_toggle_labels.py | 30 + .../bug_1814969_contextualIdentity.py | 101 + .../bug_1844783_mozMessageBarShopping.py | 45 + ...1844850_mozMessageBar_unifiedExtensionsPanel.py | 36 + .../bug_1845150_search_engine_notification.py | 32 + .../bug_1845727_mozSupportLink_to_toolkit.py | 21 + ...51877_mozMessageBar_aboutAddons_uninstallBar.py | 41 + .../fluent_migrations/bug_1854425_default_agent.py | 58 + ...bug_1856014_protectionsPanel_fixButtonLabels.py | 36 + python/l10n/fluent_migrations/bug_1858715_pdfjs.py | 1078 ++++ .../bug_1860606_remove_migration_ftl.py | 27 + ...862982_protectionsPanel_fixCancelButtonLabel.py | 21 + .../bug_1863022_protectionsPanel_infomessage.py | 24 + .../bug_1866268_geckoViewConsole.py | 52 + .../bug_1866295_new_device_migration_strings.py | 22 + ...7346_new_device_migration_string_replacement.py | 22 + .../fluent_migrations/bug_1867819_formautofill.py | 26 + .../fluent_migrations/bug_1868154_RFPHelper.py | 22 + .../fluent_migrations/bug_1869024_passwordmgr.py | 122 + ...ode_indicator_close_button_addAccessibleName.py | 21 + .../bug_747301_about_plugin_removal.py | 28 + python/l10n/mozxchannel/__init__.py | 150 + python/l10n/mozxchannel/projectconfig.py | 77 + python/l10n/mozxchannel/source.py | 88 + python/l10n/test_fluent_migrations/__init__.py | 0 python/l10n/test_fluent_migrations/fmt.py | 198 + python/lldbutils/.ruff.toml | 4 + python/lldbutils/README.txt | 221 + python/lldbutils/lldbutils/__init__.py | 17 + python/lldbutils/lldbutils/content.py | 28 + python/lldbutils/lldbutils/general.py | 165 + python/lldbutils/lldbutils/gfx.py | 65 + python/lldbutils/lldbutils/layout.py | 141 + python/lldbutils/lldbutils/utils.py | 86 + python/mach/.ruff.toml | 4 + python/mach/README.rst | 13 + python/mach/bash-completion.sh | 18 + python/mach/docs/commands.rst | 129 + python/mach/docs/driver.rst | 32 + python/mach/docs/faq.rst | 152 + python/mach/docs/index.rst | 89 + python/mach/docs/logging.rst | 100 + python/mach/docs/metrics.md | 55 + python/mach/docs/settings.rst | 138 + python/mach/docs/telemetry.rst | 37 + python/mach/docs/usage.rst | 150 + .../docs/windows-usage-outside-mozillabuild.rst | 124 + python/mach/mach/__init__.py | 0 python/mach/mach/base.py | 73 + python/mach/mach/command_util.py | 517 ++ python/mach/mach/commands/__init__.py | 0 python/mach/mach/commands/commandinfo.py | 486 ++ .../commands/completion_templates/bash.template | 62 + .../commands/completion_templates/fish.template | 64 + .../commands/completion_templates/zsh.template | 62 + python/mach/mach/commands/settings.py | 51 + python/mach/mach/config.py | 415 ++ python/mach/mach/decorators.py | 340 ++ python/mach/mach/dispatcher.py | 480 ++ python/mach/mach/logging.py | 425 ++ python/mach/mach/main.py | 632 +++ python/mach/mach/mixin/__init__.py | 0 python/mach/mach/mixin/logging.py | 52 + python/mach/mach/mixin/process.py | 224 + python/mach/mach/python_lockfile.py | 79 + python/mach/mach/registrar.py | 205 + python/mach/mach/requirements.py | 183 + python/mach/mach/sentry.py | 224 + python/mach/mach/settings.py | 136 + python/mach/mach/site.py | 1390 +++++ python/mach/mach/telemetry.py | 307 ++ python/mach/mach/telemetry_interface.py | 77 + python/mach/mach/terminal.py | 76 + python/mach/mach/test/__init__.py | 0 python/mach/mach/test/conftest.py | 85 + python/mach/mach/test/invoke_mach_command.py | 4 + python/mach/mach/test/providers/__init__.py | 0 python/mach/mach/test/providers/basic.py | 15 + python/mach/mach/test/providers/commands.py | 33 + python/mach/mach/test/providers/conditions.py | 55 + .../mach/mach/test/providers/conditions_invalid.py | 10 + python/mach/mach/test/providers/throw.py | 18 + python/mach/mach/test/providers/throw2.py | 15 + python/mach/mach/test/python.toml | 34 + python/mach/mach/test/script_site_activation.py | 67 + python/mach/mach/test/test_commands.py | 79 + python/mach/mach/test/test_conditions.py | 102 + python/mach/mach/test/test_config.py | 292 ++ python/mach/mach/test/test_decorators.py | 133 + python/mach/mach/test/test_dispatcher.py | 62 + python/mach/mach/test/test_entry_point.py | 59 + python/mach/mach/test/test_error_output.py | 29 + python/mach/mach/test/test_logger.py | 48 + python/mach/mach/test/test_mach.py | 31 + python/mach/mach/test/test_site.py | 56 + python/mach/mach/test/test_site_activation.py | 462 ++ python/mach/mach/test/test_site_compatibility.py | 189 + python/mach/mach/test/zero_microseconds.py | 16 + python/mach/mach/util.py | 117 + python/mach/metrics.yaml | 206 + python/mach/pings.yaml | 22 + python/mach/setup.cfg | 2 + python/mach/setup.py | 38 + python/mach_commands.py | 366 ++ python/moz.build | 79 + python/mozboot/.ruff.toml | 4 + python/mozboot/README.rst | 20 + python/mozboot/bin/bootstrap.py | 439 ++ python/mozboot/mozboot/__init__.py | 0 .../mozboot/android-avds/android31-x86_64.json | 25 + python/mozboot/mozboot/android-avds/arm.json | 27 + python/mozboot/mozboot/android-avds/arm64.json | 27 + python/mozboot/mozboot/android-avds/x86_64.json | 26 + .../mozboot/mozboot/android-emulator-packages.txt | 2 + python/mozboot/mozboot/android-packages.txt | 4 + .../mozboot/android-system-images-packages.txt | 1 + python/mozboot/mozboot/android.py | 902 ++++ python/mozboot/mozboot/archlinux.py | 52 + python/mozboot/mozboot/base.py | 726 +++ python/mozboot/mozboot/bootstrap.py | 845 +++ python/mozboot/mozboot/centosfedora.py | 80 + python/mozboot/mozboot/debian.py | 76 + python/mozboot/mozboot/freebsd.py | 69 + python/mozboot/mozboot/gentoo.py | 29 + python/mozboot/mozboot/linux_common.py | 97 + python/mozboot/mozboot/mach_commands.py | 119 + python/mozboot/mozboot/mozconfig.py | 156 + python/mozboot/mozboot/mozillabuild.py | 227 + python/mozboot/mozboot/openbsd.py | 33 + python/mozboot/mozboot/opensuse.py | 65 + python/mozboot/mozboot/osx.py | 310 ++ python/mozboot/mozboot/rust.py | 185 + python/mozboot/mozboot/sccache.py | 9 + python/mozboot/mozboot/solus.py | 32 + python/mozboot/mozboot/test/python.toml | 4 + python/mozboot/mozboot/test/test_mozconfig.py | 229 + python/mozboot/mozboot/util.py | 49 + python/mozboot/mozboot/void.py | 41 + python/mozboot/mozboot/windows.py | 127 + python/mozboot/setup.py | 16 + python/mozbuild/.ruff.toml | 9 + python/mozbuild/metrics.yaml | 140 + python/mozbuild/mozbuild/__init__.py | 0 python/mozbuild/mozbuild/action/__init__.py | 0 python/mozbuild/mozbuild/action/buildlist.py | 48 + python/mozbuild/mozbuild/action/check_binary.py | 327 ++ .../mozbuild/action/download_wpt_manifest.py | 21 + python/mozbuild/mozbuild/action/dump_env.py | 30 + python/mozbuild/mozbuild/action/dumpsymbols.py | 109 + python/mozbuild/mozbuild/action/exe_7z_archive.py | 89 + python/mozbuild/mozbuild/action/fat_aar.py | 185 + python/mozbuild/mozbuild/action/file_generate.py | 154 + .../mozbuild/action/file_generate_wrapper.py | 38 + .../mozbuild/action/generate_symbols_file.py | 95 + .../mozbuild/action/html_fragment_preprocesor.py | 101 + python/mozbuild/mozbuild/action/install.py | 22 + python/mozbuild/mozbuild/action/jar_maker.py | 15 + python/mozbuild/mozbuild/action/l10n_merge.py | 42 + .../mozbuild/action/langpack_localeNames.json | 430 ++ .../mozbuild/mozbuild/action/langpack_manifest.py | 592 +++ python/mozbuild/mozbuild/action/make_dmg.py | 67 + python/mozbuild/mozbuild/action/make_unzip.py | 25 + python/mozbuild/mozbuild/action/node.py | 137 + .../mozbuild/action/package_generated_sources.py | 55 + python/mozbuild/mozbuild/action/preprocessor.py | 23 + .../mozbuild/action/process_define_files.py | 115 + .../mozbuild/action/process_install_manifest.py | 123 + python/mozbuild/mozbuild/action/symbols_archive.py | 89 + python/mozbuild/mozbuild/action/test_archive.py | 911 ++++ python/mozbuild/mozbuild/action/tooltool.py | 1699 ++++++ python/mozbuild/mozbuild/action/unify_symbols.py | 49 + python/mozbuild/mozbuild/action/unify_tests.py | 65 + python/mozbuild/mozbuild/action/unpack_dmg.py | 52 + python/mozbuild/mozbuild/action/webidl.py | 17 + python/mozbuild/mozbuild/action/wrap_rustc.py | 79 + python/mozbuild/mozbuild/action/xpccheck.py | 108 + python/mozbuild/mozbuild/action/xpidl-process.py | 152 + python/mozbuild/mozbuild/action/zip.py | 50 + python/mozbuild/mozbuild/analyze/__init__.py | 0 python/mozbuild/mozbuild/analyze/hg.py | 176 + python/mozbuild/mozbuild/android_version_code.py | 197 + python/mozbuild/mozbuild/artifact_builds.py | 27 + python/mozbuild/mozbuild/artifact_cache.py | 251 + python/mozbuild/mozbuild/artifact_commands.py | 625 +++ python/mozbuild/mozbuild/artifacts.py | 1671 ++++++ python/mozbuild/mozbuild/backend/__init__.py | 27 + python/mozbuild/mozbuild/backend/base.py | 389 ++ .../mozbuild/mozbuild/backend/cargo_build_defs.py | 87 + python/mozbuild/mozbuild/backend/clangd.py | 126 + python/mozbuild/mozbuild/backend/common.py | 625 +++ .../mozbuild/mozbuild/backend/configenvironment.py | 356 ++ python/mozbuild/mozbuild/backend/cpp_eclipse.py | 876 ++++ python/mozbuild/mozbuild/backend/fastermake.py | 300 ++ python/mozbuild/mozbuild/backend/mach_commands.py | 422 ++ python/mozbuild/mozbuild/backend/make.py | 139 + python/mozbuild/mozbuild/backend/recursivemake.py | 1956 +++++++ .../mozbuild/mozbuild/backend/static_analysis.py | 52 + python/mozbuild/mozbuild/backend/test_manifest.py | 110 + python/mozbuild/mozbuild/backend/visualstudio.py | 710 +++ python/mozbuild/mozbuild/base.py | 1114 ++++ python/mozbuild/mozbuild/bootstrap.py | 61 + python/mozbuild/mozbuild/build_commands.py | 369 ++ python/mozbuild/mozbuild/chunkify.py | 56 + python/mozbuild/mozbuild/code_analysis/__init__.py | 0 .../mozbuild/code_analysis/mach_commands.py | 1971 +++++++ python/mozbuild/mozbuild/code_analysis/moz.build | 8 + python/mozbuild/mozbuild/code_analysis/utils.py | 138 + python/mozbuild/mozbuild/codecoverage/__init__.py | 0 .../mozbuild/mozbuild/codecoverage/chrome_map.py | 175 + .../mozbuild/codecoverage/lcov_rewriter.py | 776 +++ .../mozbuild/codecoverage/manifest_handler.py | 52 + python/mozbuild/mozbuild/codecoverage/packager.py | 71 + python/mozbuild/mozbuild/compilation/__init__.py | 0 .../mozbuild/mozbuild/compilation/codecomplete.py | 55 + python/mozbuild/mozbuild/compilation/database.py | 244 + python/mozbuild/mozbuild/compilation/util.py | 64 + python/mozbuild/mozbuild/compilation/warnings.py | 392 ++ python/mozbuild/mozbuild/config_status.py | 184 + python/mozbuild/mozbuild/configure/__init__.py | 1314 +++++ .../mozbuild/configure/check_debug_ranges.py | 68 + python/mozbuild/mozbuild/configure/constants.py | 161 + python/mozbuild/mozbuild/configure/help.py | 121 + python/mozbuild/mozbuild/configure/lint.py | 357 ++ python/mozbuild/mozbuild/configure/options.py | 617 +++ python/mozbuild/mozbuild/configure/util.py | 235 + python/mozbuild/mozbuild/controller/__init__.py | 0 python/mozbuild/mozbuild/controller/building.py | 1857 +++++++ python/mozbuild/mozbuild/controller/clobber.py | 243 + python/mozbuild/mozbuild/doctor.py | 605 +++ python/mozbuild/mozbuild/dotproperties.py | 86 + python/mozbuild/mozbuild/faster_daemon.py | 328 ++ python/mozbuild/mozbuild/frontend/__init__.py | 0 python/mozbuild/mozbuild/frontend/context.py | 3143 +++++++++++ python/mozbuild/mozbuild/frontend/data.py | 1369 +++++ python/mozbuild/mozbuild/frontend/emitter.py | 1928 +++++++ python/mozbuild/mozbuild/frontend/gyp_reader.py | 509 ++ python/mozbuild/mozbuild/frontend/mach_commands.py | 338 ++ python/mozbuild/mozbuild/frontend/reader.py | 1419 +++++ python/mozbuild/mozbuild/frontend/sandbox.py | 313 ++ python/mozbuild/mozbuild/gen_test_backend.py | 53 + python/mozbuild/mozbuild/generated_sources.py | 75 + python/mozbuild/mozbuild/gn_processor.py | 797 +++ python/mozbuild/mozbuild/html_build_viewer.py | 122 + python/mozbuild/mozbuild/jar.py | 646 +++ python/mozbuild/mozbuild/mach_commands.py | 2952 +++++++++++ python/mozbuild/mozbuild/makeutil.py | 209 + python/mozbuild/mozbuild/mozconfig.py | 402 ++ python/mozbuild/mozbuild/mozconfig_loader | 48 + python/mozbuild/mozbuild/mozinfo.py | 168 + python/mozbuild/mozbuild/nodeutil.py | 126 + python/mozbuild/mozbuild/preprocessor.py | 938 ++++ python/mozbuild/mozbuild/pythonutil.py | 23 + python/mozbuild/mozbuild/repackaging/__init__.py | 0 .../mozbuild/repackaging/application_ini.py | 66 + python/mozbuild/mozbuild/repackaging/deb.py | 745 +++ python/mozbuild/mozbuild/repackaging/dmg.py | 56 + python/mozbuild/mozbuild/repackaging/installer.py | 55 + python/mozbuild/mozbuild/repackaging/mar.py | 93 + python/mozbuild/mozbuild/repackaging/msi.py | 121 + python/mozbuild/mozbuild/repackaging/msix.py | 1192 +++++ python/mozbuild/mozbuild/repackaging/pkg.py | 45 + .../mozbuild/mozbuild/repackaging/test/python.toml | 4 + .../mozbuild/repackaging/test/test_msix.py | 53 + .../html-build-viewer/build_resources.html | 694 +++ python/mozbuild/mozbuild/schedules.py | 77 + python/mozbuild/mozbuild/shellutil.py | 210 + python/mozbuild/mozbuild/sphinx.py | 293 ++ python/mozbuild/mozbuild/telemetry.py | 191 + python/mozbuild/mozbuild/test/__init__.py | 0 .../html_fragment_preprocesor/example_basic.xml | 10 + .../example_multiple_templates.xml | 30 + .../data/html_fragment_preprocesor/example_xul.xml | 14 + .../test/action/data/invalid/region.properties | 12 + .../test/action/data/node/node-test-script.js | 11 + .../mozbuild/test/action/test_buildlist.py | 96 + .../test/action/test_html_fragment_preprocessor.py | 196 + .../mozbuild/test/action/test_langpack_manifest.py | 269 + python/mozbuild/mozbuild/test/action/test_node.py | 80 + .../test/action/test_process_install_manifest.py | 65 + python/mozbuild/mozbuild/test/backend/__init__.py | 0 python/mozbuild/mozbuild/test/backend/common.py | 253 + .../mozbuild/test/backend/data/build/app/moz.build | 54 + .../mozbuild/test/backend/data/build/bar.ini | 1 + .../mozbuild/test/backend/data/build/bar.js | 2 + .../mozbuild/test/backend/data/build/bar.jsm | 1 + .../mozbuild/test/backend/data/build/baz.ini | 2 + .../mozbuild/test/backend/data/build/baz.jsm | 2 + .../test/backend/data/build/components.manifest | 2 + .../mozbuild/test/backend/data/build/foo.css | 2 + .../mozbuild/test/backend/data/build/foo.ini | 1 + .../mozbuild/test/backend/data/build/foo.js | 1 + .../mozbuild/test/backend/data/build/foo.jsm | 1 + .../mozbuild/test/backend/data/build/jar.mn | 11 + .../mozbuild/test/backend/data/build/moz.build | 68 + .../mozbuild/test/backend/data/build/prefs.js | 1 + .../mozbuild/test/backend/data/build/qux.ini | 5 + .../mozbuild/test/backend/data/build/qux.jsm | 5 + .../mozbuild/test/backend/data/build/resource | 1 + .../mozbuild/test/backend/data/build/resource2 | 1 + .../mozbuild/test/backend/data/build/subdir/bar.js | 1 + .../mozbuild/test/backend/data/database/bar.c | 0 .../mozbuild/test/backend/data/database/baz.cpp | 0 .../backend/data/database/build/non-unified-compat | 0 .../mozbuild/test/backend/data/database/foo.c | 0 .../mozbuild/test/backend/data/database/moz.build | 14 + .../mozbuild/test/backend/data/database/qux.cpp | 0 .../mozbuild/test/backend/data/defines/moz.build | 9 + .../test/backend/data/dist-files/install.rdf | 0 .../mozbuild/test/backend/data/dist-files/main.js | 0 .../test/backend/data/dist-files/moz.build | 8 + .../test/backend/data/exports-generated/dom1.h | 0 .../test/backend/data/exports-generated/foo.h | 0 .../test/backend/data/exports-generated/gfx.h | 0 .../test/backend/data/exports-generated/moz.build | 12 + .../test/backend/data/exports-generated/mozilla1.h | 0 .../mozbuild/test/backend/data/exports/dom1.h | 0 .../mozbuild/test/backend/data/exports/dom2.h | 0 .../mozbuild/test/backend/data/exports/foo.h | 0 .../mozbuild/test/backend/data/exports/gfx.h | 0 .../mozbuild/test/backend/data/exports/moz.build | 8 + .../mozbuild/test/backend/data/exports/mozilla1.h | 0 .../mozbuild/test/backend/data/exports/mozilla2.h | 0 .../mozbuild/test/backend/data/exports/pprio.h | 0 .../data/final-target-files-wildcard/bar.xyz | 0 .../data/final-target-files-wildcard/foo.xyz | 0 .../data/final-target-files-wildcard/moz.build | 5 + .../test/backend/data/final_target/both/moz.build | 6 + .../data/final_target/dist-subdir/moz.build | 5 + .../data/final_target/final-target/moz.build | 5 + .../test/backend/data/final_target/moz.build | 5 + .../backend/data/final_target/xpi-name/moz.build | 5 + .../backend/data/generated-files-force/foo-data | 0 .../data/generated-files-force/generate-bar.py | 0 .../data/generated-files-force/generate-foo.py | 0 .../backend/data/generated-files-force/moz.build | 14 + .../test/backend/data/generated-files/foo-data | 0 .../backend/data/generated-files/generate-bar.py | 0 .../backend/data/generated-files/generate-foo.py | 0 .../test/backend/data/generated-files/moz.build | 12 + .../test/backend/data/generated_includes/moz.build | 5 + .../test/backend/data/host-defines/moz.build | 9 + .../data/host-rust-library-features/Cargo.toml | 16 + .../data/host-rust-library-features/moz.build | 22 + .../test/backend/data/host-rust-library/Cargo.toml | 18 + .../test/backend/data/host-rust-library/moz.build | 22 + .../data/install_substitute_config_files/moz.build | 6 + .../install_substitute_config_files/sub/foo.h.in | 1 + .../install_substitute_config_files/sub/moz.build | 7 + .../test/backend/data/ipdl_sources/bar/moz.build | 16 + .../test/backend/data/ipdl_sources/foo/moz.build | 16 + .../test/backend/data/ipdl_sources/ipdl/moz.build | 9 + .../test/backend/data/ipdl_sources/moz.build | 19 + .../test/backend/data/jar-manifests/moz.build | 7 + .../mozbuild/test/backend/data/linkage/moz.build | 11 + .../test/backend/data/linkage/prog/moz.build | 11 + .../test/backend/data/linkage/prog/qux/moz.build | 6 + .../test/backend/data/linkage/prog/qux/qux1.c | 0 .../test/backend/data/linkage/real/foo/foo1.c | 0 .../test/backend/data/linkage/real/foo/foo2.c | 0 .../test/backend/data/linkage/real/foo/moz.build | 6 + .../test/backend/data/linkage/real/moz.build | 14 + .../test/backend/data/linkage/shared/baz/baz1.c | 0 .../test/backend/data/linkage/shared/baz/moz.build | 6 + .../test/backend/data/linkage/shared/moz.build | 14 + .../test/backend/data/linkage/static/bar/bar1.cc | 0 .../test/backend/data/linkage/static/bar/bar2.cc | 0 .../linkage/static/bar/bar_helper/bar_helper1.cpp | 0 .../data/linkage/static/bar/bar_helper/moz.build | 8 + .../test/backend/data/linkage/static/bar/moz.build | 13 + .../test/backend/data/linkage/static/moz.build | 12 + .../test/backend/data/linkage/templates.mozbuild | 26 + .../bar/baz/dummy_file_for_nonempty_directory | 0 .../foo/dummy_file_for_nonempty_directory | 0 .../test/backend/data/local_includes/moz.build | 5 + .../backend/data/localized-files/en-US/bar.ini | 0 .../test/backend/data/localized-files/en-US/foo.js | 0 .../test/backend/data/localized-files/moz.build | 9 + .../en-US/localized-input | 0 .../data/localized-generated-files-AB_CD/foo-data | 0 .../generate-foo.py | 0 .../inner/locales/en-US/localized-input | 0 .../locales/en-US/localized-input | 0 .../data/localized-generated-files-AB_CD/moz.build | 32 + .../non-localized-input | 0 .../en-US/localized-input | 0 .../data/localized-generated-files-force/foo-data | 0 .../generate-foo.py | 0 .../data/localized-generated-files-force/moz.build | 22 + .../non-localized-input | 0 .../en-US/localized-input | 0 .../data/localized-generated-files/foo-data | 0 .../data/localized-generated-files/generate-foo.py | 0 .../data/localized-generated-files/moz.build | 15 + .../localized-generated-files/non-localized-input | 0 .../backend/data/localized-pp-files/en-US/bar.ini | 0 .../backend/data/localized-pp-files/en-US/foo.js | 0 .../test/backend/data/localized-pp-files/moz.build | 8 + .../data/prog-lib-c-only/c-library/c-library.c | 2 + .../data/prog-lib-c-only/c-library/moz.build | 7 + .../prog-lib-c-only/c-program/c_test_program.c | 2 + .../data/prog-lib-c-only/c-program/moz.build | 7 + .../c-simple-programs/c_simple_program.c | 2 + .../prog-lib-c-only/c-simple-programs/moz.build | 5 + .../data/prog-lib-c-only/cxx-library/c-source.c | 2 + .../prog-lib-c-only/cxx-library/cxx-library.cpp | 2 + .../data/prog-lib-c-only/cxx-library/moz.build | 10 + .../cxx-program/cxx_test_program.cpp | 2 + .../data/prog-lib-c-only/cxx-program/moz.build | 7 + .../cxx-simple-programs/cxx_simple_program.cpp | 2 + .../prog-lib-c-only/cxx-simple-programs/moz.build | 5 + .../test/backend/data/prog-lib-c-only/moz.build | 35 + .../data/prog-lib-c-only/simple-programs/moz.build | 3 + .../backend/data/program-paths/dist-bin/moz.build | 4 + .../data/program-paths/dist-subdir/moz.build | 5 + .../data/program-paths/final-target/moz.build | 5 + .../test/backend/data/program-paths/moz.build | 15 + .../data/program-paths/not-installed/moz.build | 5 + .../test/backend/data/resources/bar.res.in | 0 .../test/backend/data/resources/cursor.cur | 0 .../test/backend/data/resources/desktop1.ttf | 0 .../test/backend/data/resources/desktop2.ttf | 0 .../test/backend/data/resources/extra.manifest | 0 .../mozbuild/test/backend/data/resources/font1.ttf | 0 .../mozbuild/test/backend/data/resources/font2.ttf | 0 .../mozbuild/test/backend/data/resources/foo.res | 0 .../test/backend/data/resources/mobile.ttf | 0 .../mozbuild/test/backend/data/resources/moz.build | 9 + .../test/backend/data/resources/test.manifest | 0 .../backend/data/rust-library-features/Cargo.toml | 18 + .../backend/data/rust-library-features/moz.build | 20 + .../test/backend/data/rust-library/Cargo.toml | 18 + .../test/backend/data/rust-library/moz.build | 19 + .../backend/data/rust-programs/code/Cargo.toml | 13 + .../test/backend/data/rust-programs/code/moz.build | 6 + .../test/backend/data/rust-programs/moz.build | 5 + .../mozbuild/test/backend/data/sources/bar.cpp | 0 .../mozbuild/test/backend/data/sources/bar.s | 0 .../mozbuild/test/backend/data/sources/baz.c | 0 .../mozbuild/test/backend/data/sources/foo.asm | 0 .../mozbuild/test/backend/data/sources/foo.cpp | 0 .../mozbuild/test/backend/data/sources/fuga.mm | 0 .../mozbuild/test/backend/data/sources/hoge.mm | 0 .../mozbuild/test/backend/data/sources/moz.build | 26 + .../mozbuild/test/backend/data/sources/qux.c | 0 .../mozbuild/test/backend/data/sources/titi.S | 0 .../mozbuild/test/backend/data/sources/toto.S | 0 .../mozbuild/test/backend/data/stub0/Makefile.in | 4 + .../test/backend/data/stub0/dir1/Makefile.in | 7 + .../test/backend/data/stub0/dir1/moz.build | 3 + .../test/backend/data/stub0/dir2/moz.build | 3 + .../test/backend/data/stub0/dir3/Makefile.in | 7 + .../test/backend/data/stub0/dir3/moz.build | 3 + .../mozbuild/test/backend/data/stub0/moz.build | 7 + .../data/substitute_config_files/Makefile.in | 0 .../backend/data/substitute_config_files/foo.in | 1 + .../backend/data/substitute_config_files/moz.build | 5 + .../child/another-file.sjs | 0 .../child/browser.toml | 7 + .../child/data/one.txt | 0 .../child/data/two.txt | 0 .../test-manifest-shared-support/child/test_sub.js | 0 .../test-manifest-shared-support/mochitest.toml | 9 + .../data/test-manifest-shared-support/moz.build | 5 + .../test-manifest-shared-support/support-file.txt | 0 .../data/test-manifest-shared-support/test_foo.js | 0 .../mochitest-common.toml | 3 + .../test-manifests-backend-sources/mochitest.toml | 5 + .../data/test-manifests-backend-sources/moz.build | 6 + .../test-manifests-backend-sources/test_bar.js | 0 .../test-manifests-backend-sources/test_foo.js | 0 .../mochitest1.toml | 4 + .../mochitest2.toml | 4 + .../moz.build | 7 + .../test_bar.js | 0 .../test_foo.js | 0 .../instrumentation.toml | 3 + .../data/test-manifests-package-tests/mochitest.js | 0 .../test-manifests-package-tests/mochitest.toml | 3 + .../data/test-manifests-package-tests/moz.build | 10 + .../test-manifests-package-tests/not_packaged.java | 0 .../data/test-manifests-written/dir1/test_bar.js | 0 .../data/test-manifests-written/dir1/xpcshell.toml | 3 + .../data/test-manifests-written/mochitest.js | 0 .../data/test-manifests-written/mochitest.toml | 3 + .../backend/data/test-manifests-written/moz.build | 9 + .../data/test-manifests-written/xpcshell.js | 0 .../data/test-manifests-written/xpcshell.toml | 4 + .../data/test-support-binaries-tracked/moz.build | 5 + .../test-support-binaries-tracked/src/moz.build | 12 + .../test-support-binaries-tracked/test/moz.build | 32 + .../test/test-one.cpp | 0 .../test/test-two.cpp | 0 .../mozbuild/test/backend/data/test_config/file.in | 3 + .../test/backend/data/test_config/moz.build | 3 + .../backend/data/variable_passthru/Makefile.in | 0 .../test/backend/data/variable_passthru/baz.def | 0 .../test/backend/data/variable_passthru/moz.build | 11 + .../test/backend/data/variable_passthru/test1.c | 0 .../test/backend/data/variable_passthru/test1.cpp | 0 .../test/backend/data/variable_passthru/test1.mm | 0 .../test/backend/data/variable_passthru/test2.c | 0 .../test/backend/data/variable_passthru/test2.cpp | 0 .../test/backend/data/variable_passthru/test2.mm | 0 .../test/backend/data/visual-studio/dir1/bar.cpp | 0 .../test/backend/data/visual-studio/dir1/foo.cpp | 0 .../test/backend/data/visual-studio/dir1/moz.build | 9 + .../test/backend/data/visual-studio/moz.build | 7 + .../mozbuild/test/backend/data/xpidl/bar.idl | 0 .../data/xpidl/config/makefiles/xpidl/Makefile.in | 0 .../mozbuild/test/backend/data/xpidl/foo.idl | 0 .../mozbuild/test/backend/data/xpidl/moz.build | 6 + .../mozbuild/mozbuild/test/backend/test_build.py | 265 + .../test/backend/test_configenvironment.py | 73 + .../mozbuild/test/backend/test_database.py | 91 + .../mozbuild/test/backend/test_fastermake.py | 42 + .../test/backend/test_partialconfigenvironment.py | 173 + .../mozbuild/test/backend/test_recursivemake.py | 1307 +++++ .../mozbuild/test/backend/test_test_manifest.py | 94 + .../mozbuild/test/backend/test_visualstudio.py | 63 + .../test/code_analysis/test_mach_commands.py | 90 + .../mozbuild/test/codecoverage/sample_lcov.info | 1895 +++++++ .../test/codecoverage/test_lcov_rewrite.py | 444 ++ python/mozbuild/mozbuild/test/common.py | 69 + .../mozbuild/mozbuild/test/compilation/__init__.py | 0 .../mozbuild/test/compilation/test_warnings.py | 240 + python/mozbuild/mozbuild/test/configure/common.py | 325 ++ .../test/configure/data/decorators.configure | 53 + .../mozbuild/test/configure/data/empty_mozconfig | 0 .../mozbuild/test/configure/data/extra.configure | 15 + .../test/configure/data/imply_option/imm.configure | 37 + .../configure/data/imply_option/infer.configure | 28 + .../configure/data/imply_option/infer_ko.configure | 36 + .../configure/data/imply_option/negative.configure | 40 + .../configure/data/imply_option/simple.configure | 28 + .../configure/data/imply_option/values.configure | 28 + .../test/configure/data/included.configure | 71 + .../mozbuild/test/configure/data/moz.configure | 243 + .../test/configure/data/set_config.configure | 51 + .../test/configure/data/set_define.configure | 51 + .../test/configure/data/subprocess.configure | 24 + python/mozbuild/mozbuild/test/configure/lint.py | 62 + .../configure/macos_fake_sdk/SDKSettings.plist | 8 + .../mozbuild/test/configure/test_bootstrap.py | 193 + .../test/configure/test_checks_configure.py | 1168 +++++ .../mozbuild/test/configure/test_compile_checks.py | 596 +++ .../mozbuild/test/configure/test_configure.py | 2033 ++++++++ .../mozbuild/mozbuild/test/configure/test_lint.py | 524 ++ .../mozbuild/test/configure/test_moz_configure.py | 185 + .../mozbuild/test/configure/test_options.py | 916 ++++ .../test/configure/test_toolchain_configure.py | 2158 ++++++++ .../test/configure/test_toolchain_helpers.py | 433 ++ .../test/configure/test_toolkit_moz_configure.py | 268 + .../mozbuild/mozbuild/test/configure/test_util.py | 538 ++ .../mozbuild/mozbuild/test/controller/__init__.py | 0 .../mozbuild/test/controller/test_ccachestats.py | 866 +++ .../mozbuild/test/controller/test_clobber.py | 214 + python/mozbuild/mozbuild/test/data/Makefile | 0 python/mozbuild/mozbuild/test/data/bad.properties | 12 + .../mozbuild/mozbuild/test/data/test-dir/Makefile | 0 .../mozbuild/test/data/test-dir/with/Makefile | 0 .../test/data/test-dir/with/without/with/Makefile | 0 .../test/data/test-dir/without/with/Makefile | 0 .../mozbuild/mozbuild/test/data/valid.properties | 11 + python/mozbuild/mozbuild/test/frontend/__init__.py | 0 .../data/allow-compiler-warnings/moz.build | 20 + .../frontend/data/allow-compiler-warnings/test1.c | 0 .../mozbuild/test/frontend/data/asflags/moz.build | 15 + .../mozbuild/test/frontend/data/asflags/test1.c | 0 .../mozbuild/test/frontend/data/asflags/test2.S | 0 .../test/frontend/data/branding-files/bar.ico | 0 .../test/frontend/data/branding-files/baz.png | 0 .../test/frontend/data/branding-files/foo.xpm | 0 .../test/frontend/data/branding-files/moz.build | 12 + .../test/frontend/data/branding-files/quux.icns | 0 .../test/frontend/data/compile-defines/moz.build | 16 + .../test/frontend/data/compile-defines/test1.c | 0 .../data/compile-flags-field-validation/moz.build | 15 + .../data/compile-flags-field-validation/test1.c | 0 .../data/compile-flags-templates/moz.build | 27 + .../frontend/data/compile-flags-templates/test1.c | 0 .../data/compile-flags-type-validation/moz.build | 15 + .../data/compile-flags-type-validation/test1.c | 0 .../test/frontend/data/compile-flags/moz.build | 22 + .../test/frontend/data/compile-flags/test1.c | 0 .../test/frontend/data/compile-includes/moz.build | 15 + .../frontend/data/compile-includes/subdir/header.h | 0 .../test/frontend/data/compile-includes/test1.c | 0 .../data/config-file-substitution/moz.build | 6 + .../crate-dependency-path-resolution/Cargo.toml | 19 + .../crate-dependency-path-resolution/moz.build | 19 + .../shallow/Cargo.toml | 6 + .../the/depths/Cargo.toml | 9 + .../mozbuild/test/frontend/data/defines/moz.build | 9 + .../data/disable-compiler-warnings/moz.build | 20 + .../data/disable-compiler-warnings/test1.c | 0 .../frontend/data/disable-stl-wrapping/moz.build | 21 + .../frontend/data/disable-stl-wrapping/test1.c | 0 .../frontend/data/dist-files-missing/install.rdf | 0 .../frontend/data/dist-files-missing/moz.build | 8 + .../test/frontend/data/dist-files/install.rdf | 0 .../mozbuild/test/frontend/data/dist-files/main.js | 0 .../test/frontend/data/dist-files/moz.build | 8 + .../test/frontend/data/exports-generated/foo.h | 0 .../test/frontend/data/exports-generated/moz.build | 8 + .../frontend/data/exports-generated/mozilla1.h | 0 .../frontend/data/exports-missing-generated/foo.h | 0 .../data/exports-missing-generated/moz.build | 5 + .../test/frontend/data/exports-missing/foo.h | 0 .../test/frontend/data/exports-missing/moz.build | 6 + .../test/frontend/data/exports-missing/mozilla1.h | 0 .../mozbuild/test/frontend/data/exports/bar.h | 0 .../mozbuild/test/frontend/data/exports/baz.h | 0 .../mozbuild/test/frontend/data/exports/dom1.h | 0 .../mozbuild/test/frontend/data/exports/dom2.h | 0 .../mozbuild/test/frontend/data/exports/dom3.h | 0 .../mozbuild/test/frontend/data/exports/foo.h | 0 .../mozbuild/test/frontend/data/exports/gfx.h | 0 .../mozbuild/test/frontend/data/exports/mem.h | 0 .../mozbuild/test/frontend/data/exports/mem2.h | 0 .../mozbuild/test/frontend/data/exports/moz.build | 13 + .../mozbuild/test/frontend/data/exports/mozilla1.h | 0 .../mozbuild/test/frontend/data/exports/mozilla2.h | 0 .../mozbuild/test/frontend/data/exports/pprio.h | 0 .../mozbuild/test/frontend/data/exports/pprthred.h | 0 .../bug_component/bad-assignment/moz.build | 2 + .../bug_component/different-matchers/moz.build | 4 + .../data/files-info/bug_component/final/moz.build | 3 + .../bug_component/final/subcomponent/moz.build | 2 + .../data/files-info/bug_component/moz.build | 2 + .../data/files-info/bug_component/simple/moz.build | 2 + .../data/files-info/bug_component/static/moz.build | 5 + .../test/frontend/data/files-info/moz.build | 0 .../final-target-pp-files-non-srcdir/moz.build | 7 + .../data/generated-files-absolute-script/moz.build | 9 + .../data/generated-files-absolute-script/script.py | 0 .../frontend/data/generated-files-force/moz.build | 11 + .../data/generated-files-method-names/moz.build | 13 + .../data/generated-files-method-names/script.py | 0 .../data/generated-files-no-inputs/moz.build | 9 + .../data/generated-files-no-inputs/script.py | 0 .../generated-files-no-python-script/moz.build | 8 + .../generated-files-no-python-script/script.rb | 0 .../data/generated-files-no-script/moz.build | 8 + .../test/frontend/data/generated-files/moz.build | 9 + .../test/frontend/data/generated-sources/a.cpp | 0 .../test/frontend/data/generated-sources/b.cc | 0 .../test/frontend/data/generated-sources/c.cxx | 0 .../test/frontend/data/generated-sources/d.c | 0 .../test/frontend/data/generated-sources/e.m | 0 .../test/frontend/data/generated-sources/f.mm | 0 .../test/frontend/data/generated-sources/g.S | 0 .../test/frontend/data/generated-sources/h.s | 0 .../test/frontend/data/generated-sources/i.asm | 0 .../test/frontend/data/generated-sources/moz.build | 39 + .../frontend/data/generated_includes/moz.build | 5 + .../frontend/data/host-compile-flags/moz.build | 22 + .../test/frontend/data/host-compile-flags/test1.c | 0 .../data/host-program-paths/final-target/moz.build | 5 + .../data/host-program-paths/installed/moz.build | 4 + .../frontend/data/host-program-paths/moz.build | 14 + .../host-program-paths/not-installed/moz.build | 5 + .../frontend/data/host-rust-libraries/Cargo.toml | 18 + .../frontend/data/host-rust-libraries/moz.build | 22 + .../data/host-rust-program-no-cargo-toml/moz.build | 1 + .../host-rust-program-nonexistent-name/Cargo.toml | 10 + .../host-rust-program-nonexistent-name/moz.build | 1 + .../frontend/data/host-rust-programs/Cargo.toml | 10 + .../frontend/data/host-rust-programs/moz.build | 1 + .../mozbuild/test/frontend/data/host-sources/a.cpp | 0 .../mozbuild/test/frontend/data/host-sources/b.cc | 0 .../mozbuild/test/frontend/data/host-sources/c.cxx | 0 .../mozbuild/test/frontend/data/host-sources/d.c | 0 .../mozbuild/test/frontend/data/host-sources/e.mm | 0 .../mozbuild/test/frontend/data/host-sources/f.mm | 0 .../test/frontend/data/host-sources/moz.build | 27 + .../frontend/data/include-basic/included.build | 4 + .../test/frontend/data/include-basic/moz.build | 7 + .../data/include-file-stack/included-1.build | 4 + .../data/include-file-stack/included-2.build | 4 + .../frontend/data/include-file-stack/moz.build | 5 + .../test/frontend/data/include-missing/moz.build | 5 + .../data/include-outside-topsrcdir/relative.build | 4 + .../include-relative-from-child/child/child.build | 4 + .../include-relative-from-child/child/child2.build | 4 + .../child/grandchild/grandchild.build | 4 + .../data/include-relative-from-child/parent.build | 4 + .../data/include-topsrcdir-relative/moz.build | 5 + .../data/include-topsrcdir-relative/sibling.build | 4 + .../data/inheriting-variables/bar/moz.build | 5 + .../data/inheriting-variables/foo/baz/moz.build | 7 + .../data/inheriting-variables/foo/moz.build | 7 + .../frontend/data/inheriting-variables/moz.build | 10 + .../test/frontend/data/ipdl_sources/bar/moz.build | 14 + .../test/frontend/data/ipdl_sources/foo/moz.build | 14 + .../test/frontend/data/ipdl_sources/moz.build | 10 + .../data/jar-manifests-multiple-files/moz.build | 7 + .../test/frontend/data/jar-manifests/moz.build | 7 + .../frontend/data/library-defines/liba/moz.build | 5 + .../frontend/data/library-defines/libb/moz.build | 7 + .../frontend/data/library-defines/libc/moz.build | 5 + .../frontend/data/library-defines/libd/moz.build | 5 + .../test/frontend/data/library-defines/moz.build | 11 + .../test/frontend/data/link-flags/moz.build | 16 + .../mozbuild/test/frontend/data/link-flags/test1.c | 0 .../frontend/data/local_includes-filename/foo.h | 0 .../data/local_includes-filename/moz.build | 5 + .../data/local_includes-invalid/objdir/moz.build | 5 + .../data/local_includes-invalid/srcdir/moz.build | 5 + .../bar/baz/dummy_file_for_nonempty_directory | 0 .../foo/dummy_file_for_nonempty_directory | 0 .../test/frontend/data/local_includes/moz.build | 5 + .../data/localized-files-from-generated/moz.build | 6 + .../data/localized-files-no-en-us/en-US/bar.ini | 0 .../frontend/data/localized-files-no-en-us/foo.js | 0 .../inner/locales/en-US/bar.ini | 0 .../data/localized-files-no-en-us/moz.build | 9 + .../moz.build | 6 + .../frontend/data/localized-files/en-US/bar.ini | 0 .../frontend/data/localized-files/en-US/foo.js | 0 .../test/frontend/data/localized-files/moz.build | 9 + .../moz.build | 6 + .../data/localized-generated-files-force/moz.build | 6 + .../data/localized-generated-files/moz.build | 5 + .../frontend/data/localized-pp-files/en-US/bar.ini | 0 .../frontend/data/localized-pp-files/en-US/foo.js | 0 .../frontend/data/localized-pp-files/moz.build | 8 + .../frontend/data/missing-local-includes/moz.build | 5 + .../test/frontend/data/missing-xpidl/moz.build | 6 + .../data/multiple-rust-libraries/moz.build | 29 + .../data/multiple-rust-libraries/rust1/Cargo.toml | 18 + .../data/multiple-rust-libraries/rust1/moz.build | 4 + .../data/multiple-rust-libraries/rust2/Cargo.toml | 18 + .../data/multiple-rust-libraries/rust2/moz.build | 4 + .../test/frontend/data/object-conflicts/1/Test.c | 0 .../test/frontend/data/object-conflicts/1/Test.cpp | 0 .../frontend/data/object-conflicts/1/moz.build | 4 + .../test/frontend/data/object-conflicts/2/Test.cpp | 0 .../frontend/data/object-conflicts/2/moz.build | 4 + .../data/object-conflicts/2/subdir/Test.cpp | 0 .../test/frontend/data/object-conflicts/3/Test.c | 0 .../test/frontend/data/object-conflicts/3/Test.cpp | 0 .../frontend/data/object-conflicts/3/moz.build | 7 + .../test/frontend/data/object-conflicts/4/Test.c | 0 .../test/frontend/data/object-conflicts/4/Test.cpp | 0 .../frontend/data/object-conflicts/4/moz.build | 4 + .../frontend/data/program-paths/dist-bin/moz.build | 4 + .../data/program-paths/dist-subdir/moz.build | 5 + .../data/program-paths/final-target/moz.build | 5 + .../test/frontend/data/program-paths/moz.build | 15 + .../data/program-paths/not-installed/moz.build | 5 + .../mozbuild/test/frontend/data/program/moz.build | 18 + .../test/frontend/data/program/test_program1.cpp | 0 .../test/frontend/data/program/test_program2.cpp | 0 .../frontend/data/reader-error-bad-dir/moz.build | 5 + .../frontend/data/reader-error-basic/moz.build | 5 + .../data/reader-error-empty-list/moz.build | 5 + .../data/reader-error-error-func/moz.build | 5 + .../data/reader-error-included-from/child.build | 4 + .../data/reader-error-included-from/moz.build | 5 + .../data/reader-error-missing-include/moz.build | 5 + .../data/reader-error-outside-topsrcdir/moz.build | 5 + .../reader-error-read-unknown-global/moz.build | 5 + .../data/reader-error-repeated-dir/moz.build | 7 + .../data/reader-error-script-error/moz.build | 5 + .../frontend/data/reader-error-syntax/moz.build | 5 + .../data/reader-error-write-bad-value/moz.build | 5 + .../reader-error-write-unknown-global/moz.build | 7 + .../reader-relevant-mozbuild/d1/every-level/a/file | 0 .../d1/every-level/a/moz.build | 0 .../reader-relevant-mozbuild/d1/every-level/b/file | 0 .../d1/every-level/b/moz.build | 0 .../d1/every-level/moz.build | 0 .../data/reader-relevant-mozbuild/d1/file1 | 0 .../data/reader-relevant-mozbuild/d1/file2 | 0 .../data/reader-relevant-mozbuild/d1/moz.build | 0 .../d1/no-intermediate-moz-build/child/file | 0 .../d1/no-intermediate-moz-build/child/moz.build | 0 .../d1/parent-is-far/dir1/dir2/dir3/file | 0 .../d1/parent-is-far/moz.build | 0 .../data/reader-relevant-mozbuild/d2/dir1/file | 0 .../reader-relevant-mozbuild/d2/dir1/moz.build | 0 .../data/reader-relevant-mozbuild/d2/dir2/file | 0 .../reader-relevant-mozbuild/d2/dir2/moz.build | 0 .../data/reader-relevant-mozbuild/d2/moz.build | 0 .../frontend/data/reader-relevant-mozbuild/file | 0 .../data/reader-relevant-mozbuild/moz.build | 0 .../frontend/data/resolved-flags-error/moz.build | 17 + .../frontend/data/resolved-flags-error/test1.c | 0 .../data/rust-library-dash-folding/Cargo.toml | 18 + .../data/rust-library-dash-folding/moz.build | 19 + .../rust-library-duplicate-features/Cargo.toml | 18 + .../data/rust-library-duplicate-features/moz.build | 20 + .../frontend/data/rust-library-features/Cargo.toml | 18 + .../frontend/data/rust-library-features/moz.build | 20 + .../rust-library-invalid-crate-type/Cargo.toml | 18 + .../data/rust-library-invalid-crate-type/moz.build | 19 + .../data/rust-library-name-mismatch/Cargo.toml | 15 + .../data/rust-library-name-mismatch/moz.build | 19 + .../data/rust-library-no-cargo-toml/moz.build | 19 + .../data/rust-library-no-lib-section/Cargo.toml | 15 + .../data/rust-library-no-lib-section/moz.build | 19 + .../data/rust-no-workspace-hack/Cargo.toml | 15 + .../frontend/data/rust-no-workspace-hack/moz.build | 9 + .../data/rust-old-workspace-hack/Cargo.toml | 18 + .../data/rust-old-workspace-hack/moz.build | 9 + .../data/rust-program-no-cargo-toml/moz.build | 1 + .../data/rust-program-nonexistent-name/Cargo.toml | 10 + .../data/rust-program-nonexistent-name/moz.build | 1 + .../test/frontend/data/rust-programs/Cargo.toml | 10 + .../test/frontend/data/rust-programs/moz.build | 1 + .../test/frontend/data/schedules/moz.build | 19 + .../test/frontend/data/schedules/subd/moz.build | 5 + .../mozbuild/test/frontend/data/sources-just-c/d.c | 0 .../mozbuild/test/frontend/data/sources-just-c/e.m | 0 .../mozbuild/test/frontend/data/sources-just-c/g.S | 0 .../mozbuild/test/frontend/data/sources-just-c/h.s | 0 .../test/frontend/data/sources-just-c/i.asm | 0 .../test/frontend/data/sources-just-c/moz.build | 29 + .../mozbuild/test/frontend/data/sources/a.cpp | 0 .../mozbuild/test/frontend/data/sources/b.cc | 0 .../mozbuild/test/frontend/data/sources/c.cxx | 0 .../mozbuild/test/frontend/data/sources/d.c | 0 .../mozbuild/test/frontend/data/sources/e.m | 0 .../mozbuild/test/frontend/data/sources/f.mm | 0 .../mozbuild/test/frontend/data/sources/g.S | 0 .../mozbuild/test/frontend/data/sources/h.s | 0 .../mozbuild/test/frontend/data/sources/i.asm | 0 .../mozbuild/test/frontend/data/sources/moz.build | 39 + .../frontend/data/templates/templates.mozbuild | 25 + .../data/test-harness-files-root/moz.build | 4 + .../frontend/data/test-harness-files/mochitest.py | 1 + .../data/test-harness-files/mochitest.toml | 1 + .../frontend/data/test-harness-files/moz.build | 7 + .../frontend/data/test-harness-files/runtests.py | 1 + .../test/frontend/data/test-harness-files/utils.py | 1 + .../data/test-install-shared-lib/moz.build | 16 + .../data/test-linkables-cxx-link/moz.build | 14 + .../data/test-linkables-cxx-link/one/foo.cpp | 0 .../data/test-linkables-cxx-link/one/moz.build | 11 + .../data/test-linkables-cxx-link/three/moz.build | 5 + .../data/test-linkables-cxx-link/two/foo.c | 0 .../data/test-linkables-cxx-link/two/moz.build | 11 + .../absolute-support.toml | 4 + .../data/test-manifest-absolute-support/foo.txt | 1 + .../data/test-manifest-absolute-support/moz.build | 4 + .../test-manifest-absolute-support/test_file.js | 0 .../test/frontend/data/test-manifest-dupes/bar.js | 0 .../test/frontend/data/test-manifest-dupes/foo.js | 0 .../data/test-manifest-dupes/mochitest.toml | 8 + .../frontend/data/test-manifest-dupes/moz.build | 4 + .../frontend/data/test-manifest-dupes/test_baz.js | 0 .../included-reftest.list | 1 + .../data/test-manifest-emitted-includes/moz.build | 1 + .../test-manifest-emitted-includes/reftest.list | 2 + .../frontend/data/test-manifest-empty/empty.toml | 2 + .../frontend/data/test-manifest-empty/moz.build | 4 + .../test_inactive.html | 0 .../test-manifest-install-includes/common.toml | 3 + .../test-manifest-install-includes/mochitest.toml | 3 + .../data/test-manifest-install-includes/moz.build | 4 + .../test-manifest-install-includes/test_foo.html | 1 + .../data/test-manifest-just-support/foo.txt | 1 + .../test-manifest-just-support/just-support.toml | 2 + .../data/test-manifest-just-support/moz.build | 4 + .../a11y-support/dir1/bar | 0 .../test-manifest-keys-extracted/a11y-support/foo | 0 .../data/test-manifest-keys-extracted/a11y.toml | 4 + .../data/test-manifest-keys-extracted/browser.toml | 7 + .../data/test-manifest-keys-extracted/chrome.toml | 3 + .../test-manifest-keys-extracted/crashtest.list | 1 + .../data/test-manifest-keys-extracted/metro.toml | 3 + .../test-manifest-keys-extracted/mochitest.toml | 11 + .../data/test-manifest-keys-extracted/moz.build | 12 + .../data/test-manifest-keys-extracted/python.toml | 3 + .../data/test-manifest-keys-extracted/reftest.list | 1 + .../data/test-manifest-keys-extracted/test_a11y.js | 0 .../test-manifest-keys-extracted/test_browser.js | 0 .../test-manifest-keys-extracted/test_chrome.js | 0 .../data/test-manifest-keys-extracted/test_foo.py | 0 .../test-manifest-keys-extracted/test_metro.js | 0 .../test-manifest-keys-extracted/test_mochitest.js | 0 .../test-manifest-keys-extracted/test_xpcshell.js | 0 .../test-manifest-keys-extracted/xpcshell.toml | 5 + .../data/test-manifest-missing-manifest/moz.build | 4 + .../moz.build | 4 + .../xpcshell.toml | 4 + .../test-manifest-missing-test-file/mochitest.toml | 3 + .../data/test-manifest-missing-test-file/moz.build | 4 + .../child/mochitest.toml | 4 + .../child/test_foo.js | 0 .../moz.build | 4 + .../support-file.txt | 0 .../child/another-file.sjs | 0 .../child/browser.toml | 7 + .../child/data/one.txt | 0 .../child/data/two.txt | 0 .../test-manifest-shared-missing/child/test_sub.js | 0 .../test-manifest-shared-missing/mochitest.toml | 10 + .../data/test-manifest-shared-missing/moz.build | 5 + .../test-manifest-shared-missing/support-file.txt | 0 .../data/test-manifest-shared-missing/test_foo.js | 0 .../child/another-file.sjs | 0 .../child/browser.toml | 7 + .../child/data/one.txt | 0 .../child/data/two.txt | 0 .../test-manifest-shared-support/child/test_sub.js | 0 .../test-manifest-shared-support/mochitest.toml | 9 + .../data/test-manifest-shared-support/moz.build | 5 + .../test-manifest-shared-support/support-file.txt | 0 .../data/test-manifest-shared-support/test_foo.js | 0 .../test-manifest-unmatched-generated/moz.build | 4 + .../test-manifest-unmatched-generated/test.toml | 4 + .../test-manifest-unmatched-generated/test_foo | 0 .../moz.build | 12 + .../frontend/data/test-symbols-file-objdir/foo.py | 0 .../data/test-symbols-file-objdir/moz.build | 15 + .../frontend/data/test-symbols-file/foo.symbols | 1 + .../test/frontend/data/test-symbols-file/moz.build | 12 + .../frontend/data/traversal-all-vars/moz.build | 6 + .../data/traversal-all-vars/parallel/moz.build | 0 .../data/traversal-all-vars/regular/moz.build | 0 .../data/traversal-all-vars/test/moz.build | 0 .../data/traversal-outside-topsrcdir/moz.build | 5 + .../data/traversal-relative-dirs/bar/moz.build | 0 .../data/traversal-relative-dirs/foo/moz.build | 5 + .../data/traversal-relative-dirs/moz.build | 5 + .../data/traversal-repeated-dirs/bar/moz.build | 5 + .../data/traversal-repeated-dirs/foo/moz.build | 5 + .../data/traversal-repeated-dirs/moz.build | 5 + .../frontend/data/traversal-simple/bar/moz.build | 0 .../data/traversal-simple/foo/biz/moz.build | 0 .../frontend/data/traversal-simple/foo/moz.build | 2 + .../test/frontend/data/traversal-simple/moz.build | 5 + .../data/unified-sources-non-unified/bar.cxx | 0 .../frontend/data/unified-sources-non-unified/c1.c | 0 .../frontend/data/unified-sources-non-unified/c2.c | 0 .../data/unified-sources-non-unified/foo.cpp | 0 .../data/unified-sources-non-unified/moz.build | 30 + .../data/unified-sources-non-unified/objc1.mm | 0 .../data/unified-sources-non-unified/objc2.mm | 0 .../data/unified-sources-non-unified/quux.cc | 0 .../test/frontend/data/unified-sources/bar.cxx | 0 .../test/frontend/data/unified-sources/c1.c | 0 .../test/frontend/data/unified-sources/c2.c | 0 .../test/frontend/data/unified-sources/foo.cpp | 0 .../test/frontend/data/unified-sources/moz.build | 30 + .../test/frontend/data/unified-sources/objc1.mm | 0 .../test/frontend/data/unified-sources/objc2.mm | 0 .../test/frontend/data/unified-sources/quux.cc | 0 .../mozbuild/test/frontend/data/use-nasm/moz.build | 15 + .../mozbuild/test/frontend/data/use-nasm/test1.S | 0 .../test/frontend/data/variable-passthru/bans.S | 0 .../test/frontend/data/variable-passthru/baz.def | 0 .../test/frontend/data/variable-passthru/moz.build | 13 + .../test/frontend/data/variable-passthru/test1.c | 0 .../test/frontend/data/variable-passthru/test1.cpp | 0 .../test/frontend/data/variable-passthru/test1.mm | 0 .../test/frontend/data/variable-passthru/test2.c | 0 .../test/frontend/data/variable-passthru/test2.cpp | 0 .../test/frontend/data/variable-passthru/test2.mm | 0 .../test/frontend/data/visibility-flags/moz.build | 21 + .../test/frontend/data/visibility-flags/test1.c | 0 .../frontend/data/wasm-compile-flags/moz.build | 14 + .../test/frontend/data/wasm-compile-flags/test1.c | 0 .../mozbuild/test/frontend/data/wasm-sources/a.cpp | 0 .../mozbuild/test/frontend/data/wasm-sources/b.cc | 0 .../mozbuild/test/frontend/data/wasm-sources/c.cxx | 0 .../mozbuild/test/frontend/data/wasm-sources/d.c | 0 .../test/frontend/data/wasm-sources/moz.build | 15 + .../data/xpidl-module-no-sources/moz.build | 5 + .../mozbuild/test/frontend/test_context.py | 736 +++ .../mozbuild/test/frontend/test_emitter.py | 1894 +++++++ .../mozbuild/test/frontend/test_namespaces.py | 225 + .../mozbuild/mozbuild/test/frontend/test_reader.py | 531 ++ .../mozbuild/test/frontend/test_sandbox.py | 536 ++ python/mozbuild/mozbuild/test/python.toml | 123 + .../mozbuild/mozbuild/test/repackaging/test_deb.py | 805 +++ .../mozbuild/test/test_android_version_code.py | 111 + .../mozbuild/mozbuild/test/test_artifact_cache.py | 145 + python/mozbuild/mozbuild/test/test_artifacts.py | 122 + python/mozbuild/mozbuild/test/test_base.py | 446 ++ python/mozbuild/mozbuild/test/test_containers.py | 224 + .../mozbuild/mozbuild/test/test_dotproperties.py | 183 + python/mozbuild/mozbuild/test/test_expression.py | 88 + python/mozbuild/mozbuild/test/test_jarmaker.py | 493 ++ python/mozbuild/mozbuild/test/test_licenses.py | 33 + python/mozbuild/mozbuild/test/test_line_endings.py | 45 + python/mozbuild/mozbuild/test/test_makeutil.py | 164 + python/mozbuild/mozbuild/test/test_manifest.py | 2081 ++++++++ python/mozbuild/mozbuild/test/test_mozconfig.py | 275 + python/mozbuild/mozbuild/test/test_mozinfo.py | 318 ++ python/mozbuild/mozbuild/test/test_preprocessor.py | 832 +++ python/mozbuild/mozbuild/test/test_pythonutil.py | 24 + .../mozbuild/test/test_rewrite_mozbuild.py | 515 ++ python/mozbuild/mozbuild/test/test_telemetry.py | 102 + .../mozbuild/test/test_telemetry_settings.py | 173 + python/mozbuild/mozbuild/test/test_util.py | 890 ++++ .../mozbuild/test/test_util_fileavoidwrite.py | 110 + python/mozbuild/mozbuild/test/test_vendor.py | 48 + python/mozbuild/mozbuild/test/test_vendor_tools.py | 90 + python/mozbuild/mozbuild/test/vendor/__init__.py | 0 .../mozbuild/test/vendor/test_vendor_manifest.py | 134 + .../mozbuild/mozbuild/test/vendor_requirements.in | 6 + .../mozbuild/mozbuild/test/vendor_requirements.txt | 512 ++ python/mozbuild/mozbuild/testing.py | 261 + python/mozbuild/mozbuild/toolchains.py | 32 + python/mozbuild/mozbuild/util.py | 1394 +++++ python/mozbuild/mozbuild/vendor/__init__.py | 0 python/mozbuild/mozbuild/vendor/docs/index.rst | 200 + python/mozbuild/mozbuild/vendor/host_angle.py | 37 + python/mozbuild/mozbuild/vendor/host_base.py | 79 + python/mozbuild/mozbuild/vendor/host_codeberg.py | 28 + python/mozbuild/mozbuild/vendor/host_git.py | 36 + python/mozbuild/mozbuild/vendor/host_github.py | 38 + python/mozbuild/mozbuild/vendor/host_gitlab.py | 26 + .../mozbuild/mozbuild/vendor/host_googlesource.py | 32 + python/mozbuild/mozbuild/vendor/mach_commands.py | 231 + python/mozbuild/mozbuild/vendor/moz.build | 8 + python/mozbuild/mozbuild/vendor/moz_yaml.py | 791 +++ .../mozbuild/mozbuild/vendor/rewrite_mozbuild.py | 1286 +++++ .../mozbuild/vendor/test_vendor_changes.sh | 65 + python/mozbuild/mozbuild/vendor/vendor_manifest.py | 872 ++++ python/mozbuild/mozbuild/vendor/vendor_python.py | 232 + python/mozbuild/mozbuild/vendor/vendor_rust.py | 976 ++++ python/mozbuild/mozpack/__init__.py | 0 .../mozpack/apple_pkg/Distribution.template | 19 + .../mozpack/apple_pkg/PackageInfo.template | 19 + python/mozbuild/mozpack/archive.py | 153 + python/mozbuild/mozpack/chrome/__init__.py | 0 python/mozbuild/mozpack/chrome/flags.py | 278 + python/mozbuild/mozpack/chrome/manifest.py | 400 ++ python/mozbuild/mozpack/copier.py | 605 +++ python/mozbuild/mozpack/dmg.py | 258 + python/mozbuild/mozpack/errors.py | 151 + python/mozbuild/mozpack/executables.py | 135 + python/mozbuild/mozpack/files.py | 1271 +++++ python/mozbuild/mozpack/macpkg.py | 222 + python/mozbuild/mozpack/manifests.py | 483 ++ python/mozbuild/mozpack/mozjar.py | 842 +++ python/mozbuild/mozpack/packager/__init__.py | 445 ++ python/mozbuild/mozpack/packager/formats.py | 354 ++ python/mozbuild/mozpack/packager/l10n.py | 304 ++ python/mozbuild/mozpack/packager/unpack.py | 200 + python/mozbuild/mozpack/path.py | 246 + python/mozbuild/mozpack/pkg.py | 299 ++ python/mozbuild/mozpack/test/__init__.py | 0 python/mozbuild/mozpack/test/data/test_data | 1 + python/mozbuild/mozpack/test/python.toml | 32 + .../mozpack/test/support/minify_js_verify.py | 15 + python/mozbuild/mozpack/test/test_archive.py | 197 + python/mozbuild/mozpack/test/test_chrome_flags.py | 150 + .../mozbuild/mozpack/test/test_chrome_manifest.py | 176 + python/mozbuild/mozpack/test/test_copier.py | 548 ++ python/mozbuild/mozpack/test/test_errors.py | 95 + python/mozbuild/mozpack/test/test_files.py | 1362 +++++ python/mozbuild/mozpack/test/test_manifests.py | 465 ++ python/mozbuild/mozpack/test/test_mozjar.py | 350 ++ python/mozbuild/mozpack/test/test_packager.py | 630 +++ .../mozbuild/mozpack/test/test_packager_formats.py | 537 ++ python/mozbuild/mozpack/test/test_packager_l10n.py | 153 + .../mozbuild/mozpack/test/test_packager_unpack.py | 67 + python/mozbuild/mozpack/test/test_path.py | 152 + python/mozbuild/mozpack/test/test_pkg.py | 138 + python/mozbuild/mozpack/test/test_unify.py | 250 + python/mozbuild/mozpack/unify.py | 265 + python/mozbuild/setup.py | 29 + python/mozlint/.ruff.toml | 4 + python/mozlint/mozlint/__init__.py | 7 + python/mozlint/mozlint/cli.py | 448 ++ python/mozlint/mozlint/editor.py | 57 + python/mozlint/mozlint/errors.py | 33 + python/mozlint/mozlint/formatters/__init__.py | 31 + python/mozlint/mozlint/formatters/compact.py | 41 + python/mozlint/mozlint/formatters/stylish.py | 156 + python/mozlint/mozlint/formatters/summary.py | 50 + python/mozlint/mozlint/formatters/treeherder.py | 34 + python/mozlint/mozlint/formatters/unix.py | 33 + python/mozlint/mozlint/parser.py | 130 + python/mozlint/mozlint/pathutils.py | 316 ++ python/mozlint/mozlint/result.py | 163 + python/mozlint/mozlint/roller.py | 421 ++ python/mozlint/mozlint/types.py | 214 + python/mozlint/mozlint/util/__init__.py | 0 python/mozlint/mozlint/util/implementation.py | 36 + python/mozlint/mozlint/util/string.py | 9 + python/mozlint/setup.py | 26 + python/mozlint/test/__init__.py | 0 python/mozlint/test/conftest.py | 66 + python/mozlint/test/files/foobar.js | 2 + python/mozlint/test/files/foobar.py | 3 + python/mozlint/test/files/irrelevant/file.txt | 1 + python/mozlint/test/files/no_foobar.js | 2 + python/mozlint/test/filter/a.js | 0 python/mozlint/test/filter/a.py | 0 python/mozlint/test/filter/foo/empty.txt | 0 python/mozlint/test/filter/foobar/empty.txt | 0 python/mozlint/test/filter/subdir1/b.js | 0 python/mozlint/test/filter/subdir1/b.py | 0 python/mozlint/test/filter/subdir1/subdir3/d.js | 0 python/mozlint/test/filter/subdir1/subdir3/d.py | 0 python/mozlint/test/filter/subdir2/c.js | 0 python/mozlint/test/filter/subdir2/c.py | 0 python/mozlint/test/linters/badreturncode.yml | 8 + python/mozlint/test/linters/excludes.yml | 10 + python/mozlint/test/linters/excludes_empty.yml | 8 + python/mozlint/test/linters/explicit_path.yml | 8 + python/mozlint/test/linters/external.py | 74 + python/mozlint/test/linters/external.yml | 8 + python/mozlint/test/linters/global.yml | 8 + python/mozlint/test/linters/global_payload.py | 38 + python/mozlint/test/linters/global_skipped.yml | 8 + python/mozlint/test/linters/invalid_exclude.yml | 6 + python/mozlint/test/linters/invalid_extension.ym | 5 + python/mozlint/test/linters/invalid_include.yml | 6 + .../test/linters/invalid_include_with_glob.yml | 6 + .../mozlint/test/linters/invalid_support_files.yml | 6 + python/mozlint/test/linters/invalid_type.yml | 5 + python/mozlint/test/linters/missing_attrs.yml | 3 + python/mozlint/test/linters/missing_definition.yml | 1 + python/mozlint/test/linters/multiple.yml | 19 + .../mozlint/test/linters/non_existing_exclude.yml | 7 + .../mozlint/test/linters/non_existing_include.yml | 7 + .../test/linters/non_existing_support_files.yml | 7 + python/mozlint/test/linters/raises.yml | 6 + python/mozlint/test/linters/regex.yml | 10 + python/mozlint/test/linters/setup.yml | 9 + python/mozlint/test/linters/setupfailed.yml | 9 + python/mozlint/test/linters/setupraised.yml | 9 + python/mozlint/test/linters/slow.yml | 8 + python/mozlint/test/linters/string.yml | 9 + python/mozlint/test/linters/structured.yml | 8 + python/mozlint/test/linters/support_files.yml | 10 + python/mozlint/test/linters/warning.yml | 11 + .../test/linters/warning_no_code_review.yml | 12 + python/mozlint/test/python.toml | 18 + python/mozlint/test/runcli.py | 17 + python/mozlint/test/test_cli.py | 126 + python/mozlint/test/test_editor.py | 92 + python/mozlint/test/test_formatters.py | 141 + python/mozlint/test/test_parser.py | 80 + python/mozlint/test/test_pathutils.py | 166 + python/mozlint/test/test_result.py | 26 + python/mozlint/test/test_roller.py | 396 ++ python/mozlint/test/test_types.py | 84 + python/mozperftest/.ruff.toml | 4 + python/mozperftest/README.rst | 6 + python/mozperftest/mozperftest/.coveragerc | 10 + python/mozperftest/mozperftest/__init__.py | 13 + python/mozperftest/mozperftest/argparser.py | 481 ++ python/mozperftest/mozperftest/environment.py | 106 + python/mozperftest/mozperftest/fzf/__init__.py | 3 + python/mozperftest/mozperftest/fzf/fzf.py | 116 + python/mozperftest/mozperftest/fzf/preview.py | 90 + python/mozperftest/mozperftest/hooks.py | 63 + python/mozperftest/mozperftest/layers.py | 177 + python/mozperftest/mozperftest/mach_commands.py | 302 ++ python/mozperftest/mozperftest/metadata.py | 44 + python/mozperftest/mozperftest/metrics/__init__.py | 23 + python/mozperftest/mozperftest/metrics/common.py | 356 ++ .../mozperftest/metrics/consoleoutput.py | 59 + .../mozperftest/mozperftest/metrics/exceptions.py | 53 + .../mozperftest/metrics/notebook/__init__.py | 7 + .../mozperftest/metrics/notebook/constant.py | 31 + .../metrics/notebook/notebook-sections/compare | 85 + .../metrics/notebook/notebook-sections/header | 12 + .../metrics/notebook/notebook-sections/scatterplot | 15 + .../mozperftest/metrics/notebook/perftestetl.py | 167 + .../metrics/notebook/perftestnotebook.py | 79 + .../metrics/notebook/template_upload_file.html | 39 + .../mozperftest/metrics/notebook/transformer.py | 228 + .../metrics/notebook/transforms/__init__.py | 0 .../metrics/notebook/transforms/logcattime.py | 121 + .../metrics/notebook/transforms/single_json.py | 56 + .../mozperftest/metrics/notebook/utilities.py | 63 + .../mozperftest/metrics/notebookupload.py | 115 + .../mozperftest/metrics/perfboard/__init__.py | 3 + .../mozperftest/metrics/perfboard/dashboard.json | 56 + .../mozperftest/metrics/perfboard/grafana.py | 87 + .../mozperftest/metrics/perfboard/influx.py | 188 + .../mozperftest/metrics/perfboard/panel.json | 81 + .../mozperftest/metrics/perfboard/target.json | 20 + .../mozperftest/mozperftest/metrics/perfherder.py | 374 ++ python/mozperftest/mozperftest/metrics/utils.py | 149 + .../mozperftest/metrics/visualmetrics.py | 221 + python/mozperftest/mozperftest/runner.py | 299 ++ .../schemas/intermediate-results-schema.json | 113 + .../mozperftest/schemas/transformer_schema.json | 55 + python/mozperftest/mozperftest/script.py | 334 ++ python/mozperftest/mozperftest/system/__init__.py | 35 + python/mozperftest/mozperftest/system/android.py | 238 + .../mozperftest/system/android_perf_tuner.py | 144 + .../mozperftest/system/android_startup.py | 414 ++ python/mozperftest/mozperftest/system/example.zip | Bin 0 -> 6588776 bytes python/mozperftest/mozperftest/system/macos.py | 121 + .../mozperftest/mozperftest/system/pingserver.py | 94 + python/mozperftest/mozperftest/system/profile.py | 122 + python/mozperftest/mozperftest/system/proxy.py | 246 + python/mozperftest/mozperftest/test/__init__.py | 28 + python/mozperftest/mozperftest/test/androidlog.py | 62 + .../mozperftest/test/browsertime/__init__.py | 19 + .../mozperftest/test/browsertime/package-lock.json | 1874 +++++++ .../mozperftest/test/browsertime/package.json | 12 + .../mozperftest/test/browsertime/runner.py | 471 ++ .../mozperftest/test/browsertime/visualtools.py | 277 + .../mozperftest/test/functionaltestrunner.py | 82 + python/mozperftest/mozperftest/test/mochitest.py | 217 + python/mozperftest/mozperftest/test/noderunner.py | 75 + python/mozperftest/mozperftest/test/webpagetest.py | 414 ++ python/mozperftest/mozperftest/test/xpcshell.py | 184 + python/mozperftest/mozperftest/tests/__init__.py | 1 + python/mozperftest/mozperftest/tests/conftest.py | 152 + .../mozperftest/tests/data/WPT_fakekey.txt | 0 .../browsertime-results-video/browsertime.json | 991 ++++ .../pages/www.bbc.com/data/video/1.mp4 | Bin 0 -> 212135 bytes .../world-middle-east-53598965/data/video/1.mp4 | Bin 0 -> 841128 bytes .../news/world-us-canada-53599363/data/video/1.mp4 | Bin 0 -> 510158 bytes .../data/browsertime-results/browsertime.json | 1 + .../perftest_doc_failure_example.js | 40 + .../mozperftest/mozperftest/tests/data/firefox.dmg | Bin 0 -> 18561 bytes .../mozperftest/tests/data/home_activity.txt | 2806 ++++++++++ python/mozperftest/mozperftest/tests/data/hook.py | 7 + .../mozperftest/tests/data/hook_raises.py | 3 + .../mozperftest/tests/data/hook_resume.py | 3 + .../mozperftest/tests/data/hooks_iteration.py | 2 + .../mozperftest/tests/data/hooks_state.py | 11 + python/mozperftest/mozperftest/tests/data/logcat | 5511 ++++++++++++++++++++ .../mozperftest/tests/data/mozinfo.json | 1 + .../test_transformer_1.py | 6 + .../test_transformer_1_copy.py | 6 + .../test_transformer_perftestetl_plugin_1.py | 6 + .../test_transformer_perftestetl_plugin_2.py | 6 + .../mozperftest/tests/data/samples/head.js | 7 + .../tests/data/samples/perftest_example.js | 46 + .../tests/data/samples/test_mochitest.html | 33 + .../data/samples/test_mochitest_multiscript.html | 36 + .../data/samples/test_perftest_WPT_init_file.js | 113 + .../data/samples/test_perftest_android_startup.js | 34 + .../tests/data/samples/test_xpcshell.js | 39 + .../tests/data/samples/test_xpcshell_flavor2.js | 35 + .../mozperftest/tests/data/samples/xpcshell.ini | 5 + python/mozperftest/mozperftest/tests/data/xpcshell | 1 + .../mozperftest/tests/fetched_artifact.zip | Bin 0 -> 728 bytes python/mozperftest/mozperftest/tests/support.py | 122 + .../mozperftest/mozperftest/tests/test_android.py | 331 ++ .../mozperftest/tests/test_android_startup.py | 285 + .../mozperftest/tests/test_androidlog.py | 81 + .../mozperftest/tests/test_argparser.py | 159 + .../mozperftest/tests/test_browsertime.py | 364 ++ .../mozperftest/tests/test_change_detector.py | 113 + .../mozperftest/tests/test_consoleoutput.py | 36 + .../mozperftest/mozperftest/tests/test_constant.py | 13 + .../mozperftest/tests/test_environment.py | 158 + .../mozperftest/tests/test_functionaltestrunner.py | 57 + python/mozperftest/mozperftest/tests/test_fzf.py | 59 + .../mozperftest/mozperftest/tests/test_influx.py | 121 + .../mozperftest/tests/test_ir_schema.py | 103 + .../mozperftest/mozperftest/tests/test_layers.py | 88 + .../mozperftest/tests/test_logcat_transformer.py | 125 + .../mozperftest/tests/test_mach_commands.py | 331 ++ python/mozperftest/mozperftest/tests/test_macos.py | 94 + .../mozperftest/tests/test_metrics_utils.py | 97 + .../mozperftest/tests/test_mochitest.py | 221 + .../mozperftest/tests/test_notebookupload.py | 123 + .../mozperftest/tests/test_perfherder.py | 620 +++ .../mozperftest/tests/test_perftestetl.py | 106 + .../mozperftest/tests/test_perftestnotebook.py | 75 + .../mozperftest/tests/test_pingserver.py | 38 + .../mozperftest/mozperftest/tests/test_profile.py | 52 + python/mozperftest/mozperftest/tests/test_proxy.py | 232 + .../mozperftest/mozperftest/tests/test_runner.py | 51 + .../mozperftest/mozperftest/tests/test_script.py | 127 + .../tests/test_single_json_transformer.py | 80 + .../mozperftest/tests/test_transformer.py | 161 + python/mozperftest/mozperftest/tests/test_utils.py | 270 + .../mozperftest/tests/test_visualmetrics.py | 103 + .../mozperftest/tests/test_visualtools.py | 47 + .../mozperftest/tests/test_webpagetest.py | 271 + .../mozperftest/mozperftest/tests/test_xpcshell.py | 165 + python/mozperftest/mozperftest/tools.py | 148 + python/mozperftest/mozperftest/utils.py | 634 +++ python/mozperftest/perfdocs/config.yml | 49 + python/mozperftest/perfdocs/developing.rst | 154 + python/mozperftest/perfdocs/index.rst | 20 + python/mozperftest/perfdocs/running.rst | 51 + python/mozperftest/perfdocs/tools.rst | 21 + python/mozperftest/perfdocs/vision.rst | 66 + python/mozperftest/perfdocs/writing.rst | 228 + python/mozperftest/setup.cfg | 2 + python/mozperftest/setup.py | 37 + python/mozrelease/.ruff.toml | 4 + python/mozrelease/mozrelease/__init__.py | 0 python/mozrelease/mozrelease/attribute_builds.py | 214 + python/mozrelease/mozrelease/balrog.py | 72 + python/mozrelease/mozrelease/buglist_creator.py | 261 + python/mozrelease/mozrelease/chunking.py | 27 + python/mozrelease/mozrelease/l10n.py | 17 + python/mozrelease/mozrelease/mach_commands.py | 141 + python/mozrelease/mozrelease/partner_repack.py | 895 ++++ python/mozrelease/mozrelease/paths.py | 85 + python/mozrelease/mozrelease/platforms.py | 54 + .../mozrelease/mozrelease/scriptworker_canary.py | 107 + python/mozrelease/mozrelease/update_verify.py | 273 + python/mozrelease/mozrelease/util.py | 26 + python/mozrelease/mozrelease/versions.py | 164 + python/mozrelease/setup.py | 25 + .../test/data/Firefox-62.0.3.update.json | 74 + .../test/data/Firefox-62.0b11-update.json | 74 + .../test/data/Firefox-64.0b13.update.json | 9 + .../mozrelease/test/data/buglist_changesets.json | 94 + .../mozrelease/test/data/sample-update-verify.cfg | 4 + python/mozrelease/test/data/whatsnew-62.0.3.yml | 65 + python/mozrelease/test/data/whatsnew-release.yml | 65 + python/mozrelease/test/python.toml | 10 + python/mozrelease/test/test_balrog.py | 54 + python/mozrelease/test/test_buglist_creator.py | 178 + python/mozrelease/test/test_update_verify.py | 425 ++ python/mozrelease/test/test_versions.py | 120 + python/mozterm/.ruff.toml | 4 + python/mozterm/mozterm/__init__.py | 4 + python/mozterm/mozterm/terminal.py | 50 + python/mozterm/mozterm/widgets.py | 67 + python/mozterm/setup.cfg | 2 + python/mozterm/setup.py | 30 + python/mozterm/test/python.toml | 6 + python/mozterm/test/test_terminal.py | 35 + python/mozterm/test/test_widgets.py | 51 + python/mozversioncontrol/.ruff.toml | 4 + .../mozversioncontrol/__init__.py | 1111 ++++ .../mozversioncontrol/repoupdate.py | 49 + python/mozversioncontrol/setup.py | 28 + python/mozversioncontrol/test/conftest.py | 84 + python/mozversioncontrol/test/python.toml | 28 + python/mozversioncontrol/test/test_branch.py | 57 + python/mozversioncontrol/test/test_commit.py | 72 + .../mozversioncontrol/test/test_context_manager.py | 28 + .../test/test_create_try_commit.py | 45 + .../test/test_get_branch_nodes.py | 46 + .../test/test_get_commit_patches.py | 56 + .../test/test_get_mozilla_remote_args.py | 47 + .../test/test_get_upstream_remotes.py | 45 + python/mozversioncontrol/test/test_push_to_try.py | 81 + .../test/test_remove_current_commit.py | 44 + python/mozversioncontrol/test/test_update.py | 63 + .../test/test_workdir_outgoing.py | 108 + .../test/test_working_directory.py | 46 + python/sites/build.txt | 54 + python/sites/common.txt | 58 + python/sites/docs.txt | 51 + python/sites/ipython.txt | 1 + python/sites/lint.txt | 34 + python/sites/mach.txt | 101 + python/sites/manifest.txt | 4 + python/sites/perftest-side-by-side.txt | 2 + python/sites/perftest-test.txt | 13 + python/sites/python-test.txt | 66 + python/sites/repackage-deb.txt | 2 + python/sites/try.txt | 68 + python/sites/upload-generated-sources.txt | 1 + python/sites/vendor.txt | 6 + python/sites/watch.txt | 1 + python/sites/webcompat.txt | 5 + python/sites/wpt-interop.txt | 10 + python/sites/wpt.txt | 15 + 1379 files changed, 155795 insertions(+) create mode 100644 python/README create mode 100644 python/docs/index.rst create mode 100644 python/gdbpp/gdbpp/__init__.py create mode 100644 python/gdbpp/gdbpp/enumset.py create mode 100644 python/gdbpp/gdbpp/linkedlist.py create mode 100644 python/gdbpp/gdbpp/owningthread.py create mode 100644 python/gdbpp/gdbpp/smartptr.py create mode 100644 python/gdbpp/gdbpp/string.py create mode 100644 python/gdbpp/gdbpp/syncedcontext.py create mode 100644 python/gdbpp/gdbpp/tarray.py create mode 100644 python/gdbpp/gdbpp/thashtable.py create mode 100644 python/l10n/fluent_migrations/__init__.py create mode 100644 python/l10n/fluent_migrations/bug_1552333_aboutCertError.py create mode 100644 python/l10n/fluent_migrations/bug_1635548_browser_context.py create mode 100644 python/l10n/fluent_migrations/bug_1786186_mobile_aboutConfig.py create mode 100644 python/l10n/fluent_migrations/bug_1793572_webrtc.py create mode 100644 python/l10n/fluent_migrations/bug_1812135_newtab_moz_toggle_labels.py create mode 100644 python/l10n/fluent_migrations/bug_1814969_contextualIdentity.py create mode 100644 python/l10n/fluent_migrations/bug_1844783_mozMessageBarShopping.py create mode 100644 python/l10n/fluent_migrations/bug_1844850_mozMessageBar_unifiedExtensionsPanel.py create mode 100644 python/l10n/fluent_migrations/bug_1845150_search_engine_notification.py create mode 100644 python/l10n/fluent_migrations/bug_1845727_mozSupportLink_to_toolkit.py create mode 100644 python/l10n/fluent_migrations/bug_1851877_mozMessageBar_aboutAddons_uninstallBar.py create mode 100644 python/l10n/fluent_migrations/bug_1854425_default_agent.py create mode 100644 python/l10n/fluent_migrations/bug_1856014_protectionsPanel_fixButtonLabels.py create mode 100644 python/l10n/fluent_migrations/bug_1858715_pdfjs.py create mode 100644 python/l10n/fluent_migrations/bug_1860606_remove_migration_ftl.py create mode 100644 python/l10n/fluent_migrations/bug_1862982_protectionsPanel_fixCancelButtonLabel.py create mode 100644 python/l10n/fluent_migrations/bug_1863022_protectionsPanel_infomessage.py create mode 100644 python/l10n/fluent_migrations/bug_1866268_geckoViewConsole.py create mode 100644 python/l10n/fluent_migrations/bug_1866295_new_device_migration_strings.py create mode 100644 python/l10n/fluent_migrations/bug_1867346_new_device_migration_string_replacement.py create mode 100644 python/l10n/fluent_migrations/bug_1867819_formautofill.py create mode 100644 python/l10n/fluent_migrations/bug_1868154_RFPHelper.py create mode 100644 python/l10n/fluent_migrations/bug_1869024_passwordmgr.py create mode 100644 python/l10n/fluent_migrations/bug_1869389_urlbar_search_mode_indicator_close_button_addAccessibleName.py create mode 100644 python/l10n/fluent_migrations/bug_747301_about_plugin_removal.py create mode 100644 python/l10n/mozxchannel/__init__.py create mode 100644 python/l10n/mozxchannel/projectconfig.py create mode 100644 python/l10n/mozxchannel/source.py create mode 100644 python/l10n/test_fluent_migrations/__init__.py create mode 100644 python/l10n/test_fluent_migrations/fmt.py create mode 100644 python/lldbutils/.ruff.toml create mode 100644 python/lldbutils/README.txt create mode 100644 python/lldbutils/lldbutils/__init__.py create mode 100644 python/lldbutils/lldbutils/content.py create mode 100644 python/lldbutils/lldbutils/general.py create mode 100644 python/lldbutils/lldbutils/gfx.py create mode 100644 python/lldbutils/lldbutils/layout.py create mode 100644 python/lldbutils/lldbutils/utils.py create mode 100644 python/mach/.ruff.toml create mode 100644 python/mach/README.rst create mode 100644 python/mach/bash-completion.sh create mode 100644 python/mach/docs/commands.rst create mode 100644 python/mach/docs/driver.rst create mode 100644 python/mach/docs/faq.rst create mode 100644 python/mach/docs/index.rst create mode 100644 python/mach/docs/logging.rst create mode 100644 python/mach/docs/metrics.md create mode 100644 python/mach/docs/settings.rst create mode 100644 python/mach/docs/telemetry.rst create mode 100644 python/mach/docs/usage.rst create mode 100644 python/mach/docs/windows-usage-outside-mozillabuild.rst create mode 100644 python/mach/mach/__init__.py create mode 100644 python/mach/mach/base.py create mode 100644 python/mach/mach/command_util.py create mode 100644 python/mach/mach/commands/__init__.py create mode 100644 python/mach/mach/commands/commandinfo.py create mode 100644 python/mach/mach/commands/completion_templates/bash.template create mode 100644 python/mach/mach/commands/completion_templates/fish.template create mode 100644 python/mach/mach/commands/completion_templates/zsh.template create mode 100644 python/mach/mach/commands/settings.py create mode 100644 python/mach/mach/config.py create mode 100644 python/mach/mach/decorators.py create mode 100644 python/mach/mach/dispatcher.py create mode 100644 python/mach/mach/logging.py create mode 100644 python/mach/mach/main.py create mode 100644 python/mach/mach/mixin/__init__.py create mode 100644 python/mach/mach/mixin/logging.py create mode 100644 python/mach/mach/mixin/process.py create mode 100644 python/mach/mach/python_lockfile.py create mode 100644 python/mach/mach/registrar.py create mode 100644 python/mach/mach/requirements.py create mode 100644 python/mach/mach/sentry.py create mode 100644 python/mach/mach/settings.py create mode 100644 python/mach/mach/site.py create mode 100644 python/mach/mach/telemetry.py create mode 100644 python/mach/mach/telemetry_interface.py create mode 100644 python/mach/mach/terminal.py create mode 100644 python/mach/mach/test/__init__.py create mode 100644 python/mach/mach/test/conftest.py create mode 100644 python/mach/mach/test/invoke_mach_command.py create mode 100644 python/mach/mach/test/providers/__init__.py create mode 100644 python/mach/mach/test/providers/basic.py create mode 100644 python/mach/mach/test/providers/commands.py create mode 100644 python/mach/mach/test/providers/conditions.py create mode 100644 python/mach/mach/test/providers/conditions_invalid.py create mode 100644 python/mach/mach/test/providers/throw.py create mode 100644 python/mach/mach/test/providers/throw2.py create mode 100644 python/mach/mach/test/python.toml create mode 100644 python/mach/mach/test/script_site_activation.py create mode 100644 python/mach/mach/test/test_commands.py create mode 100644 python/mach/mach/test/test_conditions.py create mode 100644 python/mach/mach/test/test_config.py create mode 100644 python/mach/mach/test/test_decorators.py create mode 100644 python/mach/mach/test/test_dispatcher.py create mode 100644 python/mach/mach/test/test_entry_point.py create mode 100644 python/mach/mach/test/test_error_output.py create mode 100644 python/mach/mach/test/test_logger.py create mode 100644 python/mach/mach/test/test_mach.py create mode 100644 python/mach/mach/test/test_site.py create mode 100644 python/mach/mach/test/test_site_activation.py create mode 100644 python/mach/mach/test/test_site_compatibility.py create mode 100644 python/mach/mach/test/zero_microseconds.py create mode 100644 python/mach/mach/util.py create mode 100644 python/mach/metrics.yaml create mode 100644 python/mach/pings.yaml create mode 100644 python/mach/setup.cfg create mode 100644 python/mach/setup.py create mode 100644 python/mach_commands.py create mode 100644 python/moz.build create mode 100644 python/mozboot/.ruff.toml create mode 100644 python/mozboot/README.rst create mode 100755 python/mozboot/bin/bootstrap.py create mode 100644 python/mozboot/mozboot/__init__.py create mode 100644 python/mozboot/mozboot/android-avds/android31-x86_64.json create mode 100644 python/mozboot/mozboot/android-avds/arm.json create mode 100644 python/mozboot/mozboot/android-avds/arm64.json create mode 100644 python/mozboot/mozboot/android-avds/x86_64.json create mode 100644 python/mozboot/mozboot/android-emulator-packages.txt create mode 100644 python/mozboot/mozboot/android-packages.txt create mode 100644 python/mozboot/mozboot/android-system-images-packages.txt create mode 100644 python/mozboot/mozboot/android.py create mode 100644 python/mozboot/mozboot/archlinux.py create mode 100644 python/mozboot/mozboot/base.py create mode 100644 python/mozboot/mozboot/bootstrap.py create mode 100644 python/mozboot/mozboot/centosfedora.py create mode 100644 python/mozboot/mozboot/debian.py create mode 100644 python/mozboot/mozboot/freebsd.py create mode 100644 python/mozboot/mozboot/gentoo.py create mode 100644 python/mozboot/mozboot/linux_common.py create mode 100644 python/mozboot/mozboot/mach_commands.py create mode 100644 python/mozboot/mozboot/mozconfig.py create mode 100644 python/mozboot/mozboot/mozillabuild.py create mode 100644 python/mozboot/mozboot/openbsd.py create mode 100644 python/mozboot/mozboot/opensuse.py create mode 100644 python/mozboot/mozboot/osx.py create mode 100644 python/mozboot/mozboot/rust.py create mode 100644 python/mozboot/mozboot/sccache.py create mode 100644 python/mozboot/mozboot/solus.py create mode 100644 python/mozboot/mozboot/test/python.toml create mode 100644 python/mozboot/mozboot/test/test_mozconfig.py create mode 100644 python/mozboot/mozboot/util.py create mode 100644 python/mozboot/mozboot/void.py create mode 100644 python/mozboot/mozboot/windows.py create mode 100644 python/mozboot/setup.py create mode 100644 python/mozbuild/.ruff.toml create mode 100644 python/mozbuild/metrics.yaml create mode 100644 python/mozbuild/mozbuild/__init__.py create mode 100644 python/mozbuild/mozbuild/action/__init__.py create mode 100644 python/mozbuild/mozbuild/action/buildlist.py create mode 100644 python/mozbuild/mozbuild/action/check_binary.py create mode 100644 python/mozbuild/mozbuild/action/download_wpt_manifest.py create mode 100644 python/mozbuild/mozbuild/action/dump_env.py create mode 100644 python/mozbuild/mozbuild/action/dumpsymbols.py create mode 100644 python/mozbuild/mozbuild/action/exe_7z_archive.py create mode 100644 python/mozbuild/mozbuild/action/fat_aar.py create mode 100644 python/mozbuild/mozbuild/action/file_generate.py create mode 100644 python/mozbuild/mozbuild/action/file_generate_wrapper.py create mode 100644 python/mozbuild/mozbuild/action/generate_symbols_file.py create mode 100644 python/mozbuild/mozbuild/action/html_fragment_preprocesor.py create mode 100644 python/mozbuild/mozbuild/action/install.py create mode 100644 python/mozbuild/mozbuild/action/jar_maker.py create mode 100644 python/mozbuild/mozbuild/action/l10n_merge.py create mode 100644 python/mozbuild/mozbuild/action/langpack_localeNames.json create mode 100644 python/mozbuild/mozbuild/action/langpack_manifest.py create mode 100644 python/mozbuild/mozbuild/action/make_dmg.py create mode 100644 python/mozbuild/mozbuild/action/make_unzip.py create mode 100644 python/mozbuild/mozbuild/action/node.py create mode 100644 python/mozbuild/mozbuild/action/package_generated_sources.py create mode 100644 python/mozbuild/mozbuild/action/preprocessor.py create mode 100644 python/mozbuild/mozbuild/action/process_define_files.py create mode 100644 python/mozbuild/mozbuild/action/process_install_manifest.py create mode 100644 python/mozbuild/mozbuild/action/symbols_archive.py create mode 100644 python/mozbuild/mozbuild/action/test_archive.py create mode 100755 python/mozbuild/mozbuild/action/tooltool.py create mode 100644 python/mozbuild/mozbuild/action/unify_symbols.py create mode 100644 python/mozbuild/mozbuild/action/unify_tests.py create mode 100644 python/mozbuild/mozbuild/action/unpack_dmg.py create mode 100644 python/mozbuild/mozbuild/action/webidl.py create mode 100644 python/mozbuild/mozbuild/action/wrap_rustc.py create mode 100644 python/mozbuild/mozbuild/action/xpccheck.py create mode 100755 python/mozbuild/mozbuild/action/xpidl-process.py create mode 100644 python/mozbuild/mozbuild/action/zip.py create mode 100644 python/mozbuild/mozbuild/analyze/__init__.py create mode 100644 python/mozbuild/mozbuild/analyze/hg.py create mode 100644 python/mozbuild/mozbuild/android_version_code.py create mode 100644 python/mozbuild/mozbuild/artifact_builds.py create mode 100644 python/mozbuild/mozbuild/artifact_cache.py create mode 100644 python/mozbuild/mozbuild/artifact_commands.py create mode 100644 python/mozbuild/mozbuild/artifacts.py create mode 100644 python/mozbuild/mozbuild/backend/__init__.py create mode 100644 python/mozbuild/mozbuild/backend/base.py create mode 100644 python/mozbuild/mozbuild/backend/cargo_build_defs.py create mode 100644 python/mozbuild/mozbuild/backend/clangd.py create mode 100644 python/mozbuild/mozbuild/backend/common.py create mode 100644 python/mozbuild/mozbuild/backend/configenvironment.py create mode 100644 python/mozbuild/mozbuild/backend/cpp_eclipse.py create mode 100644 python/mozbuild/mozbuild/backend/fastermake.py create mode 100644 python/mozbuild/mozbuild/backend/mach_commands.py create mode 100644 python/mozbuild/mozbuild/backend/make.py create mode 100644 python/mozbuild/mozbuild/backend/recursivemake.py create mode 100644 python/mozbuild/mozbuild/backend/static_analysis.py create mode 100644 python/mozbuild/mozbuild/backend/test_manifest.py create mode 100644 python/mozbuild/mozbuild/backend/visualstudio.py create mode 100644 python/mozbuild/mozbuild/base.py create mode 100644 python/mozbuild/mozbuild/bootstrap.py create mode 100644 python/mozbuild/mozbuild/build_commands.py create mode 100644 python/mozbuild/mozbuild/chunkify.py create mode 100644 python/mozbuild/mozbuild/code_analysis/__init__.py create mode 100644 python/mozbuild/mozbuild/code_analysis/mach_commands.py create mode 100644 python/mozbuild/mozbuild/code_analysis/moz.build create mode 100644 python/mozbuild/mozbuild/code_analysis/utils.py create mode 100644 python/mozbuild/mozbuild/codecoverage/__init__.py create mode 100644 python/mozbuild/mozbuild/codecoverage/chrome_map.py create mode 100644 python/mozbuild/mozbuild/codecoverage/lcov_rewriter.py create mode 100644 python/mozbuild/mozbuild/codecoverage/manifest_handler.py create mode 100644 python/mozbuild/mozbuild/codecoverage/packager.py create mode 100644 python/mozbuild/mozbuild/compilation/__init__.py create mode 100644 python/mozbuild/mozbuild/compilation/codecomplete.py create mode 100644 python/mozbuild/mozbuild/compilation/database.py create mode 100644 python/mozbuild/mozbuild/compilation/util.py create mode 100644 python/mozbuild/mozbuild/compilation/warnings.py create mode 100644 python/mozbuild/mozbuild/config_status.py create mode 100644 python/mozbuild/mozbuild/configure/__init__.py create mode 100644 python/mozbuild/mozbuild/configure/check_debug_ranges.py create mode 100644 python/mozbuild/mozbuild/configure/constants.py create mode 100644 python/mozbuild/mozbuild/configure/help.py create mode 100644 python/mozbuild/mozbuild/configure/lint.py create mode 100644 python/mozbuild/mozbuild/configure/options.py create mode 100644 python/mozbuild/mozbuild/configure/util.py create mode 100644 python/mozbuild/mozbuild/controller/__init__.py create mode 100644 python/mozbuild/mozbuild/controller/building.py create mode 100644 python/mozbuild/mozbuild/controller/clobber.py create mode 100644 python/mozbuild/mozbuild/doctor.py create mode 100644 python/mozbuild/mozbuild/dotproperties.py create mode 100644 python/mozbuild/mozbuild/faster_daemon.py create mode 100644 python/mozbuild/mozbuild/frontend/__init__.py create mode 100644 python/mozbuild/mozbuild/frontend/context.py create mode 100644 python/mozbuild/mozbuild/frontend/data.py create mode 100644 python/mozbuild/mozbuild/frontend/emitter.py create mode 100644 python/mozbuild/mozbuild/frontend/gyp_reader.py create mode 100644 python/mozbuild/mozbuild/frontend/mach_commands.py create mode 100644 python/mozbuild/mozbuild/frontend/reader.py create mode 100644 python/mozbuild/mozbuild/frontend/sandbox.py create mode 100644 python/mozbuild/mozbuild/gen_test_backend.py create mode 100644 python/mozbuild/mozbuild/generated_sources.py create mode 100644 python/mozbuild/mozbuild/gn_processor.py create mode 100644 python/mozbuild/mozbuild/html_build_viewer.py create mode 100644 python/mozbuild/mozbuild/jar.py create mode 100644 python/mozbuild/mozbuild/mach_commands.py create mode 100644 python/mozbuild/mozbuild/makeutil.py create mode 100644 python/mozbuild/mozbuild/mozconfig.py create mode 100755 python/mozbuild/mozbuild/mozconfig_loader create mode 100644 python/mozbuild/mozbuild/mozinfo.py create mode 100644 python/mozbuild/mozbuild/nodeutil.py create mode 100644 python/mozbuild/mozbuild/preprocessor.py create mode 100644 python/mozbuild/mozbuild/pythonutil.py create mode 100644 python/mozbuild/mozbuild/repackaging/__init__.py create mode 100644 python/mozbuild/mozbuild/repackaging/application_ini.py create mode 100644 python/mozbuild/mozbuild/repackaging/deb.py create mode 100644 python/mozbuild/mozbuild/repackaging/dmg.py create mode 100644 python/mozbuild/mozbuild/repackaging/installer.py create mode 100644 python/mozbuild/mozbuild/repackaging/mar.py create mode 100644 python/mozbuild/mozbuild/repackaging/msi.py create mode 100644 python/mozbuild/mozbuild/repackaging/msix.py create mode 100644 python/mozbuild/mozbuild/repackaging/pkg.py create mode 100644 python/mozbuild/mozbuild/repackaging/test/python.toml create mode 100644 python/mozbuild/mozbuild/repackaging/test/test_msix.py create mode 100644 python/mozbuild/mozbuild/resources/html-build-viewer/build_resources.html create mode 100644 python/mozbuild/mozbuild/schedules.py create mode 100644 python/mozbuild/mozbuild/shellutil.py create mode 100644 python/mozbuild/mozbuild/sphinx.py create mode 100644 python/mozbuild/mozbuild/telemetry.py create mode 100644 python/mozbuild/mozbuild/test/__init__.py create mode 100644 python/mozbuild/mozbuild/test/action/data/html_fragment_preprocesor/example_basic.xml create mode 100644 python/mozbuild/mozbuild/test/action/data/html_fragment_preprocesor/example_multiple_templates.xml create mode 100644 python/mozbuild/mozbuild/test/action/data/html_fragment_preprocesor/example_xul.xml create mode 100644 python/mozbuild/mozbuild/test/action/data/invalid/region.properties create mode 100644 python/mozbuild/mozbuild/test/action/data/node/node-test-script.js create mode 100644 python/mozbuild/mozbuild/test/action/test_buildlist.py create mode 100644 python/mozbuild/mozbuild/test/action/test_html_fragment_preprocessor.py create mode 100644 python/mozbuild/mozbuild/test/action/test_langpack_manifest.py create mode 100644 python/mozbuild/mozbuild/test/action/test_node.py create mode 100644 python/mozbuild/mozbuild/test/action/test_process_install_manifest.py create mode 100644 python/mozbuild/mozbuild/test/backend/__init__.py create mode 100644 python/mozbuild/mozbuild/test/backend/common.py create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/app/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/bar.ini create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/bar.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/bar.jsm create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/baz.ini create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/baz.jsm create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/components.manifest create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/foo.css create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/foo.ini create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/foo.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/foo.jsm create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/jar.mn create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/prefs.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/qux.ini create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/qux.jsm create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/resource create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/resource2 create mode 100644 python/mozbuild/mozbuild/test/backend/data/build/subdir/bar.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/database/bar.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/database/baz.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/database/build/non-unified-compat create mode 100644 python/mozbuild/mozbuild/test/backend/data/database/foo.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/database/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/database/qux.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/defines/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/dist-files/install.rdf create mode 100644 python/mozbuild/mozbuild/test/backend/data/dist-files/main.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/dist-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports-generated/dom1.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports-generated/foo.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports-generated/gfx.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports-generated/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports-generated/mozilla1.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports/dom1.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports/dom2.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports/foo.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports/gfx.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports/mozilla1.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports/mozilla2.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/exports/pprio.h create mode 100644 python/mozbuild/mozbuild/test/backend/data/final-target-files-wildcard/bar.xyz create mode 100644 python/mozbuild/mozbuild/test/backend/data/final-target-files-wildcard/foo.xyz create mode 100644 python/mozbuild/mozbuild/test/backend/data/final-target-files-wildcard/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/final_target/both/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/final_target/dist-subdir/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/final_target/final-target/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/final_target/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/final_target/xpi-name/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/generated-files-force/foo-data create mode 100644 python/mozbuild/mozbuild/test/backend/data/generated-files-force/generate-bar.py create mode 100644 python/mozbuild/mozbuild/test/backend/data/generated-files-force/generate-foo.py create mode 100644 python/mozbuild/mozbuild/test/backend/data/generated-files-force/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/generated-files/foo-data create mode 100644 python/mozbuild/mozbuild/test/backend/data/generated-files/generate-bar.py create mode 100644 python/mozbuild/mozbuild/test/backend/data/generated-files/generate-foo.py create mode 100644 python/mozbuild/mozbuild/test/backend/data/generated-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/generated_includes/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/host-defines/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/host-rust-library-features/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/host-rust-library-features/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/host-rust-library/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/host-rust-library/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/install_substitute_config_files/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/install_substitute_config_files/sub/foo.h.in create mode 100644 python/mozbuild/mozbuild/test/backend/data/install_substitute_config_files/sub/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/ipdl_sources/bar/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/ipdl_sources/foo/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/ipdl_sources/ipdl/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/ipdl_sources/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/jar-manifests/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/prog/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/prog/qux/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/prog/qux/qux1.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/real/foo/foo1.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/real/foo/foo2.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/real/foo/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/real/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/shared/baz/baz1.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/shared/baz/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/shared/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/static/bar/bar1.cc create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/static/bar/bar2.cc create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/static/bar/bar_helper/bar_helper1.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/static/bar/bar_helper/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/static/bar/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/static/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/linkage/templates.mozbuild create mode 100644 python/mozbuild/mozbuild/test/backend/data/local_includes/bar/baz/dummy_file_for_nonempty_directory create mode 100644 python/mozbuild/mozbuild/test/backend/data/local_includes/foo/dummy_file_for_nonempty_directory create mode 100644 python/mozbuild/mozbuild/test/backend/data/local_includes/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-files/en-US/bar.ini create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-files/en-US/foo.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-AB_CD/en-US/localized-input create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-AB_CD/foo-data create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-AB_CD/generate-foo.py create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-AB_CD/inner/locales/en-US/localized-input create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-AB_CD/locales/en-US/localized-input create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-AB_CD/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-AB_CD/non-localized-input create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/en-US/localized-input create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/foo-data create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/generate-foo.py create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/non-localized-input create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files/en-US/localized-input create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files/foo-data create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files/generate-foo.py create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-generated-files/non-localized-input create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-pp-files/en-US/bar.ini create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-pp-files/en-US/foo.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/localized-pp-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/c-library/c-library.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/c-library/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/c-program/c_test_program.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/c-program/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/c-simple-programs/c_simple_program.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/c-simple-programs/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/cxx-library/c-source.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/cxx-library/cxx-library.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/cxx-library/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/cxx-program/cxx_test_program.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/cxx-program/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/cxx-simple-programs/cxx_simple_program.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/cxx-simple-programs/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/prog-lib-c-only/simple-programs/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/program-paths/dist-bin/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/program-paths/dist-subdir/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/program-paths/final-target/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/program-paths/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/program-paths/not-installed/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/bar.res.in create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/cursor.cur create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/desktop1.ttf create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/desktop2.ttf create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/extra.manifest create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/font1.ttf create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/font2.ttf create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/foo.res create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/mobile.ttf create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/resources/test.manifest create mode 100644 python/mozbuild/mozbuild/test/backend/data/rust-library-features/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/rust-library-features/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/rust-library/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/rust-library/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/rust-programs/code/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/rust-programs/code/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/rust-programs/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/bar.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/bar.s create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/baz.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/foo.asm create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/foo.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/fuga.mm create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/hoge.mm create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/qux.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/titi.S create mode 100644 python/mozbuild/mozbuild/test/backend/data/sources/toto.S create mode 100644 python/mozbuild/mozbuild/test/backend/data/stub0/Makefile.in create mode 100644 python/mozbuild/mozbuild/test/backend/data/stub0/dir1/Makefile.in create mode 100644 python/mozbuild/mozbuild/test/backend/data/stub0/dir1/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/stub0/dir2/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/stub0/dir3/Makefile.in create mode 100644 python/mozbuild/mozbuild/test/backend/data/stub0/dir3/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/stub0/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/substitute_config_files/Makefile.in create mode 100644 python/mozbuild/mozbuild/test/backend/data/substitute_config_files/foo.in create mode 100644 python/mozbuild/mozbuild/test/backend/data/substitute_config_files/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifest-shared-support/child/another-file.sjs create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifest-shared-support/child/browser.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifest-shared-support/child/data/one.txt create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifest-shared-support/child/data/two.txt create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifest-shared-support/child/test_sub.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifest-shared-support/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifest-shared-support/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifest-shared-support/support-file.txt create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifest-shared-support/test_foo.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-backend-sources/mochitest-common.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-backend-sources/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-backend-sources/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-backend-sources/test_bar.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-backend-sources/test_foo.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-duplicate-support-files/mochitest1.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-duplicate-support-files/mochitest2.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-duplicate-support-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-duplicate-support-files/test_bar.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-duplicate-support-files/test_foo.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-package-tests/instrumentation.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-package-tests/mochitest.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-package-tests/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-package-tests/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-package-tests/not_packaged.java create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-written/dir1/test_bar.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-written/dir1/xpcshell.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-written/mochitest.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-written/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-written/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-written/xpcshell.js create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-manifests-written/xpcshell.toml create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-support-binaries-tracked/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-support-binaries-tracked/src/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-support-binaries-tracked/test/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-support-binaries-tracked/test/test-one.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/test-support-binaries-tracked/test/test-two.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/test_config/file.in create mode 100644 python/mozbuild/mozbuild/test/backend/data/test_config/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/variable_passthru/Makefile.in create mode 100644 python/mozbuild/mozbuild/test/backend/data/variable_passthru/baz.def create mode 100644 python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/variable_passthru/test1.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/variable_passthru/test1.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/variable_passthru/test1.mm create mode 100644 python/mozbuild/mozbuild/test/backend/data/variable_passthru/test2.c create mode 100644 python/mozbuild/mozbuild/test/backend/data/variable_passthru/test2.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/variable_passthru/test2.mm create mode 100644 python/mozbuild/mozbuild/test/backend/data/visual-studio/dir1/bar.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/visual-studio/dir1/foo.cpp create mode 100644 python/mozbuild/mozbuild/test/backend/data/visual-studio/dir1/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/visual-studio/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/data/xpidl/bar.idl create mode 100644 python/mozbuild/mozbuild/test/backend/data/xpidl/config/makefiles/xpidl/Makefile.in create mode 100644 python/mozbuild/mozbuild/test/backend/data/xpidl/foo.idl create mode 100644 python/mozbuild/mozbuild/test/backend/data/xpidl/moz.build create mode 100644 python/mozbuild/mozbuild/test/backend/test_build.py create mode 100644 python/mozbuild/mozbuild/test/backend/test_configenvironment.py create mode 100644 python/mozbuild/mozbuild/test/backend/test_database.py create mode 100644 python/mozbuild/mozbuild/test/backend/test_fastermake.py create mode 100644 python/mozbuild/mozbuild/test/backend/test_partialconfigenvironment.py create mode 100644 python/mozbuild/mozbuild/test/backend/test_recursivemake.py create mode 100644 python/mozbuild/mozbuild/test/backend/test_test_manifest.py create mode 100644 python/mozbuild/mozbuild/test/backend/test_visualstudio.py create mode 100644 python/mozbuild/mozbuild/test/code_analysis/test_mach_commands.py create mode 100644 python/mozbuild/mozbuild/test/codecoverage/sample_lcov.info create mode 100644 python/mozbuild/mozbuild/test/codecoverage/test_lcov_rewrite.py create mode 100644 python/mozbuild/mozbuild/test/common.py create mode 100644 python/mozbuild/mozbuild/test/compilation/__init__.py create mode 100644 python/mozbuild/mozbuild/test/compilation/test_warnings.py create mode 100644 python/mozbuild/mozbuild/test/configure/common.py create mode 100644 python/mozbuild/mozbuild/test/configure/data/decorators.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/empty_mozconfig create mode 100644 python/mozbuild/mozbuild/test/configure/data/extra.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/imply_option/imm.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/imply_option/infer.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/imply_option/infer_ko.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/imply_option/negative.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/imply_option/simple.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/imply_option/values.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/included.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/moz.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/set_config.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/set_define.configure create mode 100644 python/mozbuild/mozbuild/test/configure/data/subprocess.configure create mode 100644 python/mozbuild/mozbuild/test/configure/lint.py create mode 100644 python/mozbuild/mozbuild/test/configure/macos_fake_sdk/SDKSettings.plist create mode 100644 python/mozbuild/mozbuild/test/configure/test_bootstrap.py create mode 100644 python/mozbuild/mozbuild/test/configure/test_checks_configure.py create mode 100644 python/mozbuild/mozbuild/test/configure/test_compile_checks.py create mode 100644 python/mozbuild/mozbuild/test/configure/test_configure.py create mode 100644 python/mozbuild/mozbuild/test/configure/test_lint.py create mode 100644 python/mozbuild/mozbuild/test/configure/test_moz_configure.py create mode 100644 python/mozbuild/mozbuild/test/configure/test_options.py create mode 100644 python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py create mode 100644 python/mozbuild/mozbuild/test/configure/test_toolchain_helpers.py create mode 100644 python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py create mode 100644 python/mozbuild/mozbuild/test/configure/test_util.py create mode 100644 python/mozbuild/mozbuild/test/controller/__init__.py create mode 100644 python/mozbuild/mozbuild/test/controller/test_ccachestats.py create mode 100644 python/mozbuild/mozbuild/test/controller/test_clobber.py create mode 100644 python/mozbuild/mozbuild/test/data/Makefile create mode 100644 python/mozbuild/mozbuild/test/data/bad.properties create mode 100644 python/mozbuild/mozbuild/test/data/test-dir/Makefile create mode 100644 python/mozbuild/mozbuild/test/data/test-dir/with/Makefile create mode 100644 python/mozbuild/mozbuild/test/data/test-dir/with/without/with/Makefile create mode 100644 python/mozbuild/mozbuild/test/data/test-dir/without/with/Makefile create mode 100644 python/mozbuild/mozbuild/test/data/valid.properties create mode 100644 python/mozbuild/mozbuild/test/frontend/__init__.py create mode 100644 python/mozbuild/mozbuild/test/frontend/data/allow-compiler-warnings/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/allow-compiler-warnings/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/asflags/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/asflags/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/asflags/test2.S create mode 100644 python/mozbuild/mozbuild/test/frontend/data/branding-files/bar.ico create mode 100644 python/mozbuild/mozbuild/test/frontend/data/branding-files/baz.png create mode 100644 python/mozbuild/mozbuild/test/frontend/data/branding-files/foo.xpm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/branding-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/branding-files/quux.icns create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-defines/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-defines/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-flags-field-validation/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-flags-field-validation/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-flags-templates/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-flags-templates/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-flags-type-validation/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-flags-type-validation/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-flags/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-flags/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-includes/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-includes/subdir/header.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/compile-includes/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/config-file-substitution/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/crate-dependency-path-resolution/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/crate-dependency-path-resolution/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/crate-dependency-path-resolution/shallow/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/crate-dependency-path-resolution/the/depths/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/defines/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/disable-compiler-warnings/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/disable-compiler-warnings/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/disable-stl-wrapping/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/disable-stl-wrapping/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/dist-files-missing/install.rdf create mode 100644 python/mozbuild/mozbuild/test/frontend/data/dist-files-missing/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/dist-files/install.rdf create mode 100644 python/mozbuild/mozbuild/test/frontend/data/dist-files/main.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/dist-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports-generated/foo.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports-generated/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports-generated/mozilla1.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports-missing-generated/foo.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports-missing-generated/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports-missing/foo.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports-missing/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports-missing/mozilla1.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/bar.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/baz.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/dom1.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/dom2.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/dom3.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/foo.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/gfx.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/mem.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/mem2.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/mozilla1.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/mozilla2.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/pprio.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/exports/pprthred.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/files-info/bug_component/bad-assignment/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/files-info/bug_component/different-matchers/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/files-info/bug_component/final/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/files-info/bug_component/final/subcomponent/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/files-info/bug_component/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/files-info/bug_component/simple/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/files-info/bug_component/static/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/files-info/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/final-target-pp-files-non-srcdir/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files-absolute-script/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files-absolute-script/script.py create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files-force/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files-method-names/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files-method-names/script.py create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files-no-inputs/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files-no-inputs/script.py create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files-no-python-script/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files-no-python-script/script.rb create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files-no-script/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-sources/a.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-sources/b.cc create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-sources/c.cxx create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-sources/d.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-sources/e.m create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-sources/f.mm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-sources/g.S create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-sources/h.s create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-sources/i.asm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated-sources/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/generated_includes/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-compile-flags/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-compile-flags/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-program-paths/final-target/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-program-paths/installed/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-program-paths/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-program-paths/not-installed/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-rust-libraries/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-rust-libraries/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-rust-program-no-cargo-toml/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-rust-program-nonexistent-name/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-rust-program-nonexistent-name/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-rust-programs/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-rust-programs/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-sources/a.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-sources/b.cc create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-sources/c.cxx create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-sources/d.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-sources/e.mm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-sources/f.mm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/host-sources/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-basic/included.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-basic/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-file-stack/included-1.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-file-stack/included-2.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-file-stack/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-missing/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-outside-topsrcdir/relative.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-relative-from-child/child/child.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-relative-from-child/child/child2.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-relative-from-child/child/grandchild/grandchild.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-relative-from-child/parent.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-topsrcdir-relative/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/include-topsrcdir-relative/sibling.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/inheriting-variables/bar/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/inheriting-variables/foo/baz/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/inheriting-variables/foo/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/inheriting-variables/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/ipdl_sources/bar/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/ipdl_sources/foo/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/ipdl_sources/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/jar-manifests-multiple-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/jar-manifests/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/library-defines/liba/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/library-defines/libb/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/library-defines/libc/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/library-defines/libd/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/library-defines/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/link-flags/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/link-flags/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/local_includes-filename/foo.h create mode 100644 python/mozbuild/mozbuild/test/frontend/data/local_includes-filename/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/local_includes-invalid/objdir/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/local_includes-invalid/srcdir/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/local_includes/bar/baz/dummy_file_for_nonempty_directory create mode 100644 python/mozbuild/mozbuild/test/frontend/data/local_includes/foo/dummy_file_for_nonempty_directory create mode 100644 python/mozbuild/mozbuild/test/frontend/data/local_includes/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-files-from-generated/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-files-no-en-us/en-US/bar.ini create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-files-no-en-us/foo.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-files-no-en-us/inner/locales/en-US/bar.ini create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-files-no-en-us/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-files-not-localized-generated/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-files/en-US/bar.ini create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-files/en-US/foo.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-generated-files-final-target-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-generated-files-force/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-generated-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-pp-files/en-US/bar.ini create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-pp-files/en-US/foo.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/localized-pp-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/missing-local-includes/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/missing-xpidl/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/multiple-rust-libraries/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/multiple-rust-libraries/rust1/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/multiple-rust-libraries/rust1/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/multiple-rust-libraries/rust2/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/multiple-rust-libraries/rust2/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/1/Test.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/1/Test.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/1/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/2/Test.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/2/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/2/subdir/Test.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/3/Test.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/3/Test.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/3/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/4/Test.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/4/Test.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/object-conflicts/4/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/program-paths/dist-bin/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/program-paths/dist-subdir/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/program-paths/final-target/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/program-paths/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/program-paths/not-installed/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/program/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/program/test_program1.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/program/test_program2.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-bad-dir/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-basic/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-empty-list/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-error-func/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-included-from/child.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-included-from/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-missing-include/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-outside-topsrcdir/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-read-unknown-global/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-repeated-dir/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-script-error/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-syntax/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-write-bad-value/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-error-write-unknown-global/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/every-level/a/file create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/every-level/a/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/every-level/b/file create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/every-level/b/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/every-level/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/file1 create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/file2 create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/no-intermediate-moz-build/child/file create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/no-intermediate-moz-build/child/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/parent-is-far/dir1/dir2/dir3/file create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d1/parent-is-far/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d2/dir1/file create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d2/dir1/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d2/dir2/file create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d2/dir2/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/d2/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/file create mode 100644 python/mozbuild/mozbuild/test/frontend/data/reader-relevant-mozbuild/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/resolved-flags-error/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/resolved-flags-error/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-dash-folding/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-dash-folding/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-duplicate-features/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-duplicate-features/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-features/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-features/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-invalid-crate-type/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-invalid-crate-type/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-name-mismatch/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-name-mismatch/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-no-cargo-toml/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-no-lib-section/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-library-no-lib-section/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-no-workspace-hack/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-no-workspace-hack/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-old-workspace-hack/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-old-workspace-hack/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-program-no-cargo-toml/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-program-nonexistent-name/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-program-nonexistent-name/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-programs/Cargo.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/rust-programs/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/schedules/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/schedules/subd/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources-just-c/d.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources-just-c/e.m create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources-just-c/g.S create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources-just-c/h.s create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources-just-c/i.asm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources-just-c/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources/a.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources/b.cc create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources/c.cxx create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources/d.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources/e.m create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources/f.mm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources/g.S create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources/h.s create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources/i.asm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/sources/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/templates/templates.mozbuild create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-harness-files-root/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-harness-files/mochitest.py create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-harness-files/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-harness-files/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-harness-files/runtests.py create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-harness-files/utils.py create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-install-shared-lib/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-linkables-cxx-link/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-linkables-cxx-link/one/foo.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-linkables-cxx-link/one/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-linkables-cxx-link/three/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-linkables-cxx-link/two/foo.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-linkables-cxx-link/two/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-absolute-support/absolute-support.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-absolute-support/foo.txt create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-absolute-support/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-absolute-support/test_file.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-dupes/bar.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-dupes/foo.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-dupes/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-dupes/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-dupes/test_baz.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-emitted-includes/included-reftest.list create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-emitted-includes/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-emitted-includes/reftest.list create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-empty/empty.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-empty/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-inactive-ignored/test_inactive.html create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-install-includes/common.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-install-includes/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-install-includes/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-install-includes/test_foo.html create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-just-support/foo.txt create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-just-support/just-support.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-just-support/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/a11y-support/dir1/bar create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/a11y-support/foo create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/a11y.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/browser.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/chrome.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/crashtest.list create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/metro.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/python.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/reftest.list create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/test_a11y.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/test_browser.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/test_chrome.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/test_foo.py create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/test_metro.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/test_mochitest.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/test_xpcshell.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-keys-extracted/xpcshell.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-missing-manifest/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-missing-test-file-unfiltered/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-missing-test-file-unfiltered/xpcshell.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-missing-test-file/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-missing-test-file/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-parent-support-files-dir/child/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-parent-support-files-dir/child/test_foo.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-parent-support-files-dir/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-parent-support-files-dir/support-file.txt create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-missing/child/another-file.sjs create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-missing/child/browser.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-missing/child/data/one.txt create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-missing/child/data/two.txt create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-missing/child/test_sub.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-missing/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-missing/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-missing/support-file.txt create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-missing/test_foo.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-support/child/another-file.sjs create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-support/child/browser.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-support/child/data/one.txt create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-support/child/data/two.txt create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-support/child/test_sub.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-support/mochitest.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-support/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-support/support-file.txt create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-shared-support/test_foo.js create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-unmatched-generated/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-unmatched-generated/test.toml create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-manifest-unmatched-generated/test_foo create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-symbols-file-objdir-missing-generated/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-symbols-file-objdir/foo.py create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-symbols-file-objdir/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-symbols-file/foo.symbols create mode 100644 python/mozbuild/mozbuild/test/frontend/data/test-symbols-file/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-all-vars/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-all-vars/parallel/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-all-vars/regular/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-all-vars/test/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-outside-topsrcdir/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-relative-dirs/bar/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-relative-dirs/foo/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-relative-dirs/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-repeated-dirs/bar/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-repeated-dirs/foo/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-repeated-dirs/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-simple/bar/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-simple/foo/biz/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-simple/foo/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/traversal-simple/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources-non-unified/bar.cxx create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources-non-unified/c1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources-non-unified/c2.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources-non-unified/foo.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources-non-unified/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources-non-unified/objc1.mm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources-non-unified/objc2.mm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources-non-unified/quux.cc create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources/bar.cxx create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources/c1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources/c2.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources/foo.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources/objc1.mm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources/objc2.mm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/unified-sources/quux.cc create mode 100644 python/mozbuild/mozbuild/test/frontend/data/use-nasm/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/use-nasm/test1.S create mode 100644 python/mozbuild/mozbuild/test/frontend/data/variable-passthru/bans.S create mode 100644 python/mozbuild/mozbuild/test/frontend/data/variable-passthru/baz.def create mode 100644 python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/variable-passthru/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/variable-passthru/test1.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/variable-passthru/test1.mm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/variable-passthru/test2.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/variable-passthru/test2.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/variable-passthru/test2.mm create mode 100644 python/mozbuild/mozbuild/test/frontend/data/visibility-flags/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/visibility-flags/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/wasm-compile-flags/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/wasm-compile-flags/test1.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/wasm-sources/a.cpp create mode 100644 python/mozbuild/mozbuild/test/frontend/data/wasm-sources/b.cc create mode 100644 python/mozbuild/mozbuild/test/frontend/data/wasm-sources/c.cxx create mode 100644 python/mozbuild/mozbuild/test/frontend/data/wasm-sources/d.c create mode 100644 python/mozbuild/mozbuild/test/frontend/data/wasm-sources/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/data/xpidl-module-no-sources/moz.build create mode 100644 python/mozbuild/mozbuild/test/frontend/test_context.py create mode 100644 python/mozbuild/mozbuild/test/frontend/test_emitter.py create mode 100644 python/mozbuild/mozbuild/test/frontend/test_namespaces.py create mode 100644 python/mozbuild/mozbuild/test/frontend/test_reader.py create mode 100644 python/mozbuild/mozbuild/test/frontend/test_sandbox.py create mode 100644 python/mozbuild/mozbuild/test/python.toml create mode 100644 python/mozbuild/mozbuild/test/repackaging/test_deb.py create mode 100644 python/mozbuild/mozbuild/test/test_android_version_code.py create mode 100644 python/mozbuild/mozbuild/test/test_artifact_cache.py create mode 100644 python/mozbuild/mozbuild/test/test_artifacts.py create mode 100644 python/mozbuild/mozbuild/test/test_base.py create mode 100644 python/mozbuild/mozbuild/test/test_containers.py create mode 100644 python/mozbuild/mozbuild/test/test_dotproperties.py create mode 100644 python/mozbuild/mozbuild/test/test_expression.py create mode 100644 python/mozbuild/mozbuild/test/test_jarmaker.py create mode 100644 python/mozbuild/mozbuild/test/test_licenses.py create mode 100644 python/mozbuild/mozbuild/test/test_line_endings.py create mode 100644 python/mozbuild/mozbuild/test/test_makeutil.py create mode 100644 python/mozbuild/mozbuild/test/test_manifest.py create mode 100644 python/mozbuild/mozbuild/test/test_mozconfig.py create mode 100755 python/mozbuild/mozbuild/test/test_mozinfo.py create mode 100644 python/mozbuild/mozbuild/test/test_preprocessor.py create mode 100644 python/mozbuild/mozbuild/test/test_pythonutil.py create mode 100644 python/mozbuild/mozbuild/test/test_rewrite_mozbuild.py create mode 100644 python/mozbuild/mozbuild/test/test_telemetry.py create mode 100644 python/mozbuild/mozbuild/test/test_telemetry_settings.py create mode 100644 python/mozbuild/mozbuild/test/test_util.py create mode 100644 python/mozbuild/mozbuild/test/test_util_fileavoidwrite.py create mode 100644 python/mozbuild/mozbuild/test/test_vendor.py create mode 100644 python/mozbuild/mozbuild/test/test_vendor_tools.py create mode 100644 python/mozbuild/mozbuild/test/vendor/__init__.py create mode 100644 python/mozbuild/mozbuild/test/vendor/test_vendor_manifest.py create mode 100644 python/mozbuild/mozbuild/test/vendor_requirements.in create mode 100644 python/mozbuild/mozbuild/test/vendor_requirements.txt create mode 100644 python/mozbuild/mozbuild/testing.py create mode 100644 python/mozbuild/mozbuild/toolchains.py create mode 100644 python/mozbuild/mozbuild/util.py create mode 100644 python/mozbuild/mozbuild/vendor/__init__.py create mode 100644 python/mozbuild/mozbuild/vendor/docs/index.rst create mode 100644 python/mozbuild/mozbuild/vendor/host_angle.py create mode 100644 python/mozbuild/mozbuild/vendor/host_base.py create mode 100644 python/mozbuild/mozbuild/vendor/host_codeberg.py create mode 100644 python/mozbuild/mozbuild/vendor/host_git.py create mode 100644 python/mozbuild/mozbuild/vendor/host_github.py create mode 100644 python/mozbuild/mozbuild/vendor/host_gitlab.py create mode 100644 python/mozbuild/mozbuild/vendor/host_googlesource.py create mode 100644 python/mozbuild/mozbuild/vendor/mach_commands.py create mode 100644 python/mozbuild/mozbuild/vendor/moz.build create mode 100644 python/mozbuild/mozbuild/vendor/moz_yaml.py create mode 100644 python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py create mode 100755 python/mozbuild/mozbuild/vendor/test_vendor_changes.sh create mode 100644 python/mozbuild/mozbuild/vendor/vendor_manifest.py create mode 100644 python/mozbuild/mozbuild/vendor/vendor_python.py create mode 100644 python/mozbuild/mozbuild/vendor/vendor_rust.py create mode 100644 python/mozbuild/mozpack/__init__.py create mode 100644 python/mozbuild/mozpack/apple_pkg/Distribution.template create mode 100644 python/mozbuild/mozpack/apple_pkg/PackageInfo.template create mode 100644 python/mozbuild/mozpack/archive.py create mode 100644 python/mozbuild/mozpack/chrome/__init__.py create mode 100644 python/mozbuild/mozpack/chrome/flags.py create mode 100644 python/mozbuild/mozpack/chrome/manifest.py create mode 100644 python/mozbuild/mozpack/copier.py create mode 100644 python/mozbuild/mozpack/dmg.py create mode 100644 python/mozbuild/mozpack/errors.py create mode 100644 python/mozbuild/mozpack/executables.py create mode 100644 python/mozbuild/mozpack/files.py create mode 100644 python/mozbuild/mozpack/macpkg.py create mode 100644 python/mozbuild/mozpack/manifests.py create mode 100644 python/mozbuild/mozpack/mozjar.py create mode 100644 python/mozbuild/mozpack/packager/__init__.py create mode 100644 python/mozbuild/mozpack/packager/formats.py create mode 100644 python/mozbuild/mozpack/packager/l10n.py create mode 100644 python/mozbuild/mozpack/packager/unpack.py create mode 100644 python/mozbuild/mozpack/path.py create mode 100644 python/mozbuild/mozpack/pkg.py create mode 100644 python/mozbuild/mozpack/test/__init__.py create mode 100644 python/mozbuild/mozpack/test/data/test_data create mode 100644 python/mozbuild/mozpack/test/python.toml create mode 100644 python/mozbuild/mozpack/test/support/minify_js_verify.py create mode 100644 python/mozbuild/mozpack/test/test_archive.py create mode 100644 python/mozbuild/mozpack/test/test_chrome_flags.py create mode 100644 python/mozbuild/mozpack/test/test_chrome_manifest.py create mode 100644 python/mozbuild/mozpack/test/test_copier.py create mode 100644 python/mozbuild/mozpack/test/test_errors.py create mode 100644 python/mozbuild/mozpack/test/test_files.py create mode 100644 python/mozbuild/mozpack/test/test_manifests.py create mode 100644 python/mozbuild/mozpack/test/test_mozjar.py create mode 100644 python/mozbuild/mozpack/test/test_packager.py create mode 100644 python/mozbuild/mozpack/test/test_packager_formats.py create mode 100644 python/mozbuild/mozpack/test/test_packager_l10n.py create mode 100644 python/mozbuild/mozpack/test/test_packager_unpack.py create mode 100644 python/mozbuild/mozpack/test/test_path.py create mode 100644 python/mozbuild/mozpack/test/test_pkg.py create mode 100644 python/mozbuild/mozpack/test/test_unify.py create mode 100644 python/mozbuild/mozpack/unify.py create mode 100644 python/mozbuild/setup.py create mode 100644 python/mozlint/.ruff.toml create mode 100644 python/mozlint/mozlint/__init__.py create mode 100644 python/mozlint/mozlint/cli.py create mode 100644 python/mozlint/mozlint/editor.py create mode 100644 python/mozlint/mozlint/errors.py create mode 100644 python/mozlint/mozlint/formatters/__init__.py create mode 100644 python/mozlint/mozlint/formatters/compact.py create mode 100644 python/mozlint/mozlint/formatters/stylish.py create mode 100644 python/mozlint/mozlint/formatters/summary.py create mode 100644 python/mozlint/mozlint/formatters/treeherder.py create mode 100644 python/mozlint/mozlint/formatters/unix.py create mode 100644 python/mozlint/mozlint/parser.py create mode 100644 python/mozlint/mozlint/pathutils.py create mode 100644 python/mozlint/mozlint/result.py create mode 100644 python/mozlint/mozlint/roller.py create mode 100644 python/mozlint/mozlint/types.py create mode 100644 python/mozlint/mozlint/util/__init__.py create mode 100644 python/mozlint/mozlint/util/implementation.py create mode 100644 python/mozlint/mozlint/util/string.py create mode 100644 python/mozlint/setup.py create mode 100644 python/mozlint/test/__init__.py create mode 100644 python/mozlint/test/conftest.py create mode 100644 python/mozlint/test/files/foobar.js create mode 100644 python/mozlint/test/files/foobar.py create mode 100644 python/mozlint/test/files/irrelevant/file.txt create mode 100644 python/mozlint/test/files/no_foobar.js create mode 100644 python/mozlint/test/filter/a.js create mode 100644 python/mozlint/test/filter/a.py create mode 100644 python/mozlint/test/filter/foo/empty.txt create mode 100644 python/mozlint/test/filter/foobar/empty.txt create mode 100644 python/mozlint/test/filter/subdir1/b.js create mode 100644 python/mozlint/test/filter/subdir1/b.py create mode 100644 python/mozlint/test/filter/subdir1/subdir3/d.js create mode 100644 python/mozlint/test/filter/subdir1/subdir3/d.py create mode 100644 python/mozlint/test/filter/subdir2/c.js create mode 100644 python/mozlint/test/filter/subdir2/c.py create mode 100644 python/mozlint/test/linters/badreturncode.yml create mode 100644 python/mozlint/test/linters/excludes.yml create mode 100644 python/mozlint/test/linters/excludes_empty.yml create mode 100644 python/mozlint/test/linters/explicit_path.yml create mode 100644 python/mozlint/test/linters/external.py create mode 100644 python/mozlint/test/linters/external.yml create mode 100644 python/mozlint/test/linters/global.yml create mode 100644 python/mozlint/test/linters/global_payload.py create mode 100644 python/mozlint/test/linters/global_skipped.yml create mode 100644 python/mozlint/test/linters/invalid_exclude.yml create mode 100644 python/mozlint/test/linters/invalid_extension.ym create mode 100644 python/mozlint/test/linters/invalid_include.yml create mode 100644 python/mozlint/test/linters/invalid_include_with_glob.yml create mode 100644 python/mozlint/test/linters/invalid_support_files.yml create mode 100644 python/mozlint/test/linters/invalid_type.yml create mode 100644 python/mozlint/test/linters/missing_attrs.yml create mode 100644 python/mozlint/test/linters/missing_definition.yml create mode 100644 python/mozlint/test/linters/multiple.yml create mode 100644 python/mozlint/test/linters/non_existing_exclude.yml create mode 100644 python/mozlint/test/linters/non_existing_include.yml create mode 100644 python/mozlint/test/linters/non_existing_support_files.yml create mode 100644 python/mozlint/test/linters/raises.yml create mode 100644 python/mozlint/test/linters/regex.yml create mode 100644 python/mozlint/test/linters/setup.yml create mode 100644 python/mozlint/test/linters/setupfailed.yml create mode 100644 python/mozlint/test/linters/setupraised.yml create mode 100644 python/mozlint/test/linters/slow.yml create mode 100644 python/mozlint/test/linters/string.yml create mode 100644 python/mozlint/test/linters/structured.yml create mode 100644 python/mozlint/test/linters/support_files.yml create mode 100644 python/mozlint/test/linters/warning.yml create mode 100644 python/mozlint/test/linters/warning_no_code_review.yml create mode 100644 python/mozlint/test/python.toml create mode 100644 python/mozlint/test/runcli.py create mode 100644 python/mozlint/test/test_cli.py create mode 100644 python/mozlint/test/test_editor.py create mode 100644 python/mozlint/test/test_formatters.py create mode 100644 python/mozlint/test/test_parser.py create mode 100644 python/mozlint/test/test_pathutils.py create mode 100644 python/mozlint/test/test_result.py create mode 100644 python/mozlint/test/test_roller.py create mode 100644 python/mozlint/test/test_types.py create mode 100644 python/mozperftest/.ruff.toml create mode 100644 python/mozperftest/README.rst create mode 100644 python/mozperftest/mozperftest/.coveragerc create mode 100644 python/mozperftest/mozperftest/__init__.py create mode 100644 python/mozperftest/mozperftest/argparser.py create mode 100644 python/mozperftest/mozperftest/environment.py create mode 100644 python/mozperftest/mozperftest/fzf/__init__.py create mode 100644 python/mozperftest/mozperftest/fzf/fzf.py create mode 100644 python/mozperftest/mozperftest/fzf/preview.py create mode 100644 python/mozperftest/mozperftest/hooks.py create mode 100644 python/mozperftest/mozperftest/layers.py create mode 100644 python/mozperftest/mozperftest/mach_commands.py create mode 100644 python/mozperftest/mozperftest/metadata.py create mode 100644 python/mozperftest/mozperftest/metrics/__init__.py create mode 100644 python/mozperftest/mozperftest/metrics/common.py create mode 100644 python/mozperftest/mozperftest/metrics/consoleoutput.py create mode 100644 python/mozperftest/mozperftest/metrics/exceptions.py create mode 100644 python/mozperftest/mozperftest/metrics/notebook/__init__.py create mode 100644 python/mozperftest/mozperftest/metrics/notebook/constant.py create mode 100644 python/mozperftest/mozperftest/metrics/notebook/notebook-sections/compare create mode 100644 python/mozperftest/mozperftest/metrics/notebook/notebook-sections/header create mode 100644 python/mozperftest/mozperftest/metrics/notebook/notebook-sections/scatterplot create mode 100644 python/mozperftest/mozperftest/metrics/notebook/perftestetl.py create mode 100644 python/mozperftest/mozperftest/metrics/notebook/perftestnotebook.py create mode 100644 python/mozperftest/mozperftest/metrics/notebook/template_upload_file.html create mode 100644 python/mozperftest/mozperftest/metrics/notebook/transformer.py create mode 100644 python/mozperftest/mozperftest/metrics/notebook/transforms/__init__.py create mode 100644 python/mozperftest/mozperftest/metrics/notebook/transforms/logcattime.py create mode 100644 python/mozperftest/mozperftest/metrics/notebook/transforms/single_json.py create mode 100644 python/mozperftest/mozperftest/metrics/notebook/utilities.py create mode 100644 python/mozperftest/mozperftest/metrics/notebookupload.py create mode 100644 python/mozperftest/mozperftest/metrics/perfboard/__init__.py create mode 100644 python/mozperftest/mozperftest/metrics/perfboard/dashboard.json create mode 100644 python/mozperftest/mozperftest/metrics/perfboard/grafana.py create mode 100644 python/mozperftest/mozperftest/metrics/perfboard/influx.py create mode 100644 python/mozperftest/mozperftest/metrics/perfboard/panel.json create mode 100644 python/mozperftest/mozperftest/metrics/perfboard/target.json create mode 100644 python/mozperftest/mozperftest/metrics/perfherder.py create mode 100644 python/mozperftest/mozperftest/metrics/utils.py create mode 100644 python/mozperftest/mozperftest/metrics/visualmetrics.py create mode 100644 python/mozperftest/mozperftest/runner.py create mode 100644 python/mozperftest/mozperftest/schemas/intermediate-results-schema.json create mode 100644 python/mozperftest/mozperftest/schemas/transformer_schema.json create mode 100644 python/mozperftest/mozperftest/script.py create mode 100644 python/mozperftest/mozperftest/system/__init__.py create mode 100644 python/mozperftest/mozperftest/system/android.py create mode 100644 python/mozperftest/mozperftest/system/android_perf_tuner.py create mode 100644 python/mozperftest/mozperftest/system/android_startup.py create mode 100644 python/mozperftest/mozperftest/system/example.zip create mode 100644 python/mozperftest/mozperftest/system/macos.py create mode 100644 python/mozperftest/mozperftest/system/pingserver.py create mode 100644 python/mozperftest/mozperftest/system/profile.py create mode 100644 python/mozperftest/mozperftest/system/proxy.py create mode 100644 python/mozperftest/mozperftest/test/__init__.py create mode 100644 python/mozperftest/mozperftest/test/androidlog.py create mode 100644 python/mozperftest/mozperftest/test/browsertime/__init__.py create mode 100644 python/mozperftest/mozperftest/test/browsertime/package-lock.json create mode 100644 python/mozperftest/mozperftest/test/browsertime/package.json create mode 100644 python/mozperftest/mozperftest/test/browsertime/runner.py create mode 100644 python/mozperftest/mozperftest/test/browsertime/visualtools.py create mode 100644 python/mozperftest/mozperftest/test/functionaltestrunner.py create mode 100644 python/mozperftest/mozperftest/test/mochitest.py create mode 100644 python/mozperftest/mozperftest/test/noderunner.py create mode 100644 python/mozperftest/mozperftest/test/webpagetest.py create mode 100644 python/mozperftest/mozperftest/test/xpcshell.py create mode 100644 python/mozperftest/mozperftest/tests/__init__.py create mode 100644 python/mozperftest/mozperftest/tests/conftest.py create mode 100644 python/mozperftest/mozperftest/tests/data/WPT_fakekey.txt create mode 100644 python/mozperftest/mozperftest/tests/data/browsertime-results-video/browsertime.json create mode 100644 python/mozperftest/mozperftest/tests/data/browsertime-results-video/pages/www.bbc.com/data/video/1.mp4 create mode 100644 python/mozperftest/mozperftest/tests/data/browsertime-results-video/pages/www.bbc.com/news/world-middle-east-53598965/data/video/1.mp4 create mode 100644 python/mozperftest/mozperftest/tests/data/browsertime-results-video/pages/www.bbc.com/news/world-us-canada-53599363/data/video/1.mp4 create mode 100644 python/mozperftest/mozperftest/tests/data/browsertime-results/browsertime.json create mode 100644 python/mozperftest/mozperftest/tests/data/failing-samples/perftest_doc_failure_example.js create mode 100644 python/mozperftest/mozperftest/tests/data/firefox.dmg create mode 100644 python/mozperftest/mozperftest/tests/data/home_activity.txt create mode 100644 python/mozperftest/mozperftest/tests/data/hook.py create mode 100644 python/mozperftest/mozperftest/tests/data/hook_raises.py create mode 100644 python/mozperftest/mozperftest/tests/data/hook_resume.py create mode 100644 python/mozperftest/mozperftest/tests/data/hooks_iteration.py create mode 100644 python/mozperftest/mozperftest/tests/data/hooks_state.py create mode 100644 python/mozperftest/mozperftest/tests/data/logcat create mode 100644 python/mozperftest/mozperftest/tests/data/mozinfo.json create mode 100644 python/mozperftest/mozperftest/tests/data/multiple_transforms_error/test_transformer_1.py create mode 100644 python/mozperftest/mozperftest/tests/data/multiple_transforms_error/test_transformer_1_copy.py create mode 100644 python/mozperftest/mozperftest/tests/data/perftestetl_plugin/test_transformer_perftestetl_plugin_1.py create mode 100644 python/mozperftest/mozperftest/tests/data/perftestetl_plugin/test_transformer_perftestetl_plugin_2.py create mode 100644 python/mozperftest/mozperftest/tests/data/samples/head.js create mode 100644 python/mozperftest/mozperftest/tests/data/samples/perftest_example.js create mode 100644 python/mozperftest/mozperftest/tests/data/samples/test_mochitest.html create mode 100644 python/mozperftest/mozperftest/tests/data/samples/test_mochitest_multiscript.html create mode 100644 python/mozperftest/mozperftest/tests/data/samples/test_perftest_WPT_init_file.js create mode 100644 python/mozperftest/mozperftest/tests/data/samples/test_perftest_android_startup.js create mode 100644 python/mozperftest/mozperftest/tests/data/samples/test_xpcshell.js create mode 100644 python/mozperftest/mozperftest/tests/data/samples/test_xpcshell_flavor2.js create mode 100644 python/mozperftest/mozperftest/tests/data/samples/xpcshell.ini create mode 100644 python/mozperftest/mozperftest/tests/data/xpcshell create mode 100644 python/mozperftest/mozperftest/tests/fetched_artifact.zip create mode 100644 python/mozperftest/mozperftest/tests/support.py create mode 100644 python/mozperftest/mozperftest/tests/test_android.py create mode 100644 python/mozperftest/mozperftest/tests/test_android_startup.py create mode 100644 python/mozperftest/mozperftest/tests/test_androidlog.py create mode 100644 python/mozperftest/mozperftest/tests/test_argparser.py create mode 100644 python/mozperftest/mozperftest/tests/test_browsertime.py create mode 100644 python/mozperftest/mozperftest/tests/test_change_detector.py create mode 100644 python/mozperftest/mozperftest/tests/test_consoleoutput.py create mode 100644 python/mozperftest/mozperftest/tests/test_constant.py create mode 100644 python/mozperftest/mozperftest/tests/test_environment.py create mode 100644 python/mozperftest/mozperftest/tests/test_functionaltestrunner.py create mode 100644 python/mozperftest/mozperftest/tests/test_fzf.py create mode 100644 python/mozperftest/mozperftest/tests/test_influx.py create mode 100644 python/mozperftest/mozperftest/tests/test_ir_schema.py create mode 100644 python/mozperftest/mozperftest/tests/test_layers.py create mode 100644 python/mozperftest/mozperftest/tests/test_logcat_transformer.py create mode 100644 python/mozperftest/mozperftest/tests/test_mach_commands.py create mode 100644 python/mozperftest/mozperftest/tests/test_macos.py create mode 100644 python/mozperftest/mozperftest/tests/test_metrics_utils.py create mode 100644 python/mozperftest/mozperftest/tests/test_mochitest.py create mode 100644 python/mozperftest/mozperftest/tests/test_notebookupload.py create mode 100644 python/mozperftest/mozperftest/tests/test_perfherder.py create mode 100644 python/mozperftest/mozperftest/tests/test_perftestetl.py create mode 100644 python/mozperftest/mozperftest/tests/test_perftestnotebook.py create mode 100644 python/mozperftest/mozperftest/tests/test_pingserver.py create mode 100644 python/mozperftest/mozperftest/tests/test_profile.py create mode 100644 python/mozperftest/mozperftest/tests/test_proxy.py create mode 100644 python/mozperftest/mozperftest/tests/test_runner.py create mode 100644 python/mozperftest/mozperftest/tests/test_script.py create mode 100644 python/mozperftest/mozperftest/tests/test_single_json_transformer.py create mode 100644 python/mozperftest/mozperftest/tests/test_transformer.py create mode 100644 python/mozperftest/mozperftest/tests/test_utils.py create mode 100644 python/mozperftest/mozperftest/tests/test_visualmetrics.py create mode 100644 python/mozperftest/mozperftest/tests/test_visualtools.py create mode 100644 python/mozperftest/mozperftest/tests/test_webpagetest.py create mode 100644 python/mozperftest/mozperftest/tests/test_xpcshell.py create mode 100644 python/mozperftest/mozperftest/tools.py create mode 100644 python/mozperftest/mozperftest/utils.py create mode 100644 python/mozperftest/perfdocs/config.yml create mode 100644 python/mozperftest/perfdocs/developing.rst create mode 100644 python/mozperftest/perfdocs/index.rst create mode 100644 python/mozperftest/perfdocs/running.rst create mode 100644 python/mozperftest/perfdocs/tools.rst create mode 100644 python/mozperftest/perfdocs/vision.rst create mode 100644 python/mozperftest/perfdocs/writing.rst create mode 100644 python/mozperftest/setup.cfg create mode 100644 python/mozperftest/setup.py create mode 100644 python/mozrelease/.ruff.toml create mode 100644 python/mozrelease/mozrelease/__init__.py create mode 100644 python/mozrelease/mozrelease/attribute_builds.py create mode 100644 python/mozrelease/mozrelease/balrog.py create mode 100644 python/mozrelease/mozrelease/buglist_creator.py create mode 100644 python/mozrelease/mozrelease/chunking.py create mode 100644 python/mozrelease/mozrelease/l10n.py create mode 100644 python/mozrelease/mozrelease/mach_commands.py create mode 100644 python/mozrelease/mozrelease/partner_repack.py create mode 100644 python/mozrelease/mozrelease/paths.py create mode 100644 python/mozrelease/mozrelease/platforms.py create mode 100644 python/mozrelease/mozrelease/scriptworker_canary.py create mode 100644 python/mozrelease/mozrelease/update_verify.py create mode 100644 python/mozrelease/mozrelease/util.py create mode 100644 python/mozrelease/mozrelease/versions.py create mode 100644 python/mozrelease/setup.py create mode 100644 python/mozrelease/test/data/Firefox-62.0.3.update.json create mode 100644 python/mozrelease/test/data/Firefox-62.0b11-update.json create mode 100644 python/mozrelease/test/data/Firefox-64.0b13.update.json create mode 100644 python/mozrelease/test/data/buglist_changesets.json create mode 100644 python/mozrelease/test/data/sample-update-verify.cfg create mode 100644 python/mozrelease/test/data/whatsnew-62.0.3.yml create mode 100644 python/mozrelease/test/data/whatsnew-release.yml create mode 100644 python/mozrelease/test/python.toml create mode 100644 python/mozrelease/test/test_balrog.py create mode 100644 python/mozrelease/test/test_buglist_creator.py create mode 100644 python/mozrelease/test/test_update_verify.py create mode 100644 python/mozrelease/test/test_versions.py create mode 100644 python/mozterm/.ruff.toml create mode 100644 python/mozterm/mozterm/__init__.py create mode 100644 python/mozterm/mozterm/terminal.py create mode 100644 python/mozterm/mozterm/widgets.py create mode 100644 python/mozterm/setup.cfg create mode 100644 python/mozterm/setup.py create mode 100644 python/mozterm/test/python.toml create mode 100644 python/mozterm/test/test_terminal.py create mode 100644 python/mozterm/test/test_widgets.py create mode 100644 python/mozversioncontrol/.ruff.toml create mode 100644 python/mozversioncontrol/mozversioncontrol/__init__.py create mode 100644 python/mozversioncontrol/mozversioncontrol/repoupdate.py create mode 100644 python/mozversioncontrol/setup.py create mode 100644 python/mozversioncontrol/test/conftest.py create mode 100644 python/mozversioncontrol/test/python.toml create mode 100644 python/mozversioncontrol/test/test_branch.py create mode 100644 python/mozversioncontrol/test/test_commit.py create mode 100644 python/mozversioncontrol/test/test_context_manager.py create mode 100644 python/mozversioncontrol/test/test_create_try_commit.py create mode 100644 python/mozversioncontrol/test/test_get_branch_nodes.py create mode 100644 python/mozversioncontrol/test/test_get_commit_patches.py create mode 100644 python/mozversioncontrol/test/test_get_mozilla_remote_args.py create mode 100644 python/mozversioncontrol/test/test_get_upstream_remotes.py create mode 100644 python/mozversioncontrol/test/test_push_to_try.py create mode 100644 python/mozversioncontrol/test/test_remove_current_commit.py create mode 100644 python/mozversioncontrol/test/test_update.py create mode 100644 python/mozversioncontrol/test/test_workdir_outgoing.py create mode 100644 python/mozversioncontrol/test/test_working_directory.py create mode 100644 python/sites/build.txt create mode 100644 python/sites/common.txt create mode 100644 python/sites/docs.txt create mode 100644 python/sites/ipython.txt create mode 100644 python/sites/lint.txt create mode 100644 python/sites/mach.txt create mode 100644 python/sites/manifest.txt create mode 100644 python/sites/perftest-side-by-side.txt create mode 100644 python/sites/perftest-test.txt create mode 100644 python/sites/python-test.txt create mode 100644 python/sites/repackage-deb.txt create mode 100644 python/sites/try.txt create mode 100644 python/sites/upload-generated-sources.txt create mode 100644 python/sites/vendor.txt create mode 100644 python/sites/watch.txt create mode 100644 python/sites/webcompat.txt create mode 100644 python/sites/wpt-interop.txt create mode 100644 python/sites/wpt.txt (limited to 'python') diff --git a/python/README b/python/README new file mode 100644 index 0000000000..e7de122d5c --- /dev/null +++ b/python/README @@ -0,0 +1,16 @@ +This directory contains common Python code. + +The basic rule is that if Python code is cross-module (that's "module" in the +Mozilla meaning - as in "module ownership") and is MPL-compatible, it should +go here. + +What should not go here: + +* Vendored python modules (use third_party/python instead) +* Python that is not MPL-compatible (see other-licenses/) +* Python that has good reason to remain close to its "owning" (Mozilla) + module (e.g. it is only being consumed from there). + +Historical information can be found at +https://bugzilla.mozilla.org/show_bug.cgi?id=775243 +https://bugzilla.mozilla.org/show_bug.cgi?id=1346025 diff --git a/python/docs/index.rst b/python/docs/index.rst new file mode 100644 index 0000000000..0c97270bbc --- /dev/null +++ b/python/docs/index.rst @@ -0,0 +1,228 @@ +================================= +Using third-party Python packages +================================= + +Mach and its associated commands have a variety of 3rd-party Python dependencies. Many of these +are vendored in ``third_party/python``, while others are installed at runtime via ``pip``. + +The dependencies of Mach itself can be found at ``python/sites/mach.txt``. Mach commands +may have additional dependencies which are specified at ``python/sites/.txt``. + +For example, the following Mach command would have its 3rd-party dependencies declared at +``python/sites/foo.txt``. + +.. code:: python + + @Command( + "foo-it", + virtualenv_name="foo", + ) + # ... + def foo_it_command(): + import specific_dependency + +The format of ``.txt`` files are documented further in the +:py:class:`~mach.requirements.MachEnvRequirements` class. + +Adding a Python package +======================= + +There's two ways of using 3rd-party Python dependencies: + +* :ref:`pip install the packages `. Python dependencies with native code must + be installed using ``pip``. This is the recommended technique for adding new Python dependencies. +* :ref:`Vendor the source of the Python package in-tree `. Dependencies of the Mach + core logic or of building Firefox itself must be vendored. + +.. note:: + + For dependencies that meet both restrictions (dependency of Mach/build, *and* has + native code), see the :ref:`mach-and-build-native-dependencies` section below. + +.. _python-pip-install: + +``pip install`` the package +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To add a ``pip install``-d package dependency, add it to your site's +``python/sites/.txt`` manifest file: + +.. code:: text + + ... + pypi:new-package== + ... + +.. note:: + + Some tasks are not permitted to use external resources, and for those we can + publish packages to an internal PyPI mirror. + See `how to upload to internal PyPI `_ + for more details. + +.. _python-vendor: + +Vendoring Python packages +~~~~~~~~~~~~~~~~~~~~~~~~~ + +To vendor a Python package, add it to ``third_party/python/requirements.in`` +and then run ``mach vendor python``. This will update the tree of pinned +dependencies in ``third_party/python/requirements.txt`` and download them all +into the ``third_party/python`` directory. + +Next, add that package and any new transitive dependencies (you'll see them added in +``third_party/python/requirements.txt``) to the associated site's dependency manifest in +``python/sites/.txt``: + +.. code:: text + + ... + vendored:third_party/python/new-package + vendored:third_party/python/new-package-dependency-foo + vendored:third_party/python/new-package-dependency-bar + ... + +.. note:: + + The following policy applies to **ALL** vendored packages: + + * Vendored PyPI libraries **MUST NOT** be modified + * Vendored libraries **SHOULD** be released copies of libraries available on + PyPI. + + * When considering manually vendoring a package, discuss the situation with + the ``#build`` team to ensure that other, more maintainable options are exhausted. + +.. note:: + + We require that it is possible to build Firefox using only a checkout of the source, + without depending on a package index. This ensures that building Firefox is + deterministic and dependable, avoids packages from changing out from under us, + and means we’re not affected when 3rd party services are offline. We don't want a + DoS against PyPI or a random package maintainer removing an old tarball to delay + a Firefox chemspill. Therefore, packages required by Mach core logic or for building + Firefox itself must be vendored. + +.. _mach-and-build-native-dependencies: + +Mach/Build Native 3rd-party Dependencies +======================================== + +There are cases where Firefox is built without being able to ``pip install``, but where +native 3rd party Python dependencies enable optional functionality. This can't be solved +by vendoring the platform-specific libraries, as then each one would have to be stored +multiple times in-tree according to how many platforms we wish to support. + +Instead, this is solved by pre-installing such native packages onto the host system +in advance, then having Mach attempt to use such packages directly from the system. +This feature is only viable in very specific environments, as the system Python packages +have to be compatible with Mach's vendored packages. + +.. note: + + All of these native build-specific dependencies **MUST** be optional requirements + as to support the "no strings attached" builds that only use vendored packages. + +To control this behaviour, the ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE`` environment +variable can be used: + +.. list-table:: ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE`` + :header-rows: 1 + + * - ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE`` + - Behaviour + * - ``"pip"`` + - Mach will ``pip install`` all needed dependencies from PyPI at runtime into a Python + virtual environment that's reused in future Mach invocations. + * - ``"none"`` + - Mach will perform the build using only vendored packages. No Python virtual environment + will be created for Mach. + * - ``"system"`` + - Mach will use the host system's Python packages as part of doing the build. This option + allows the usage of native Python packages without leaning on a ``pip install`` at + build-time. This is generally slower because the system Python packages have to + be asserted to be compatible with Mach. Additionally, dependency lockfiles are ignored, + so there's higher risk of breakage. Finally, as with ``"none"``, no Python virtualenv + environment is created for Mach. + * - ```` + - Same behaviour as ``"pip"`` if ``MOZ_AUTOMATION`` isn't set. Otherwise, uses + the same behaviour as ``"none"``. + +There's a couple restrictions here: + +* ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE`` only applies to the top-level ``"mach"`` site, + the ``"common"`` site and the ``"build"`` site. All other sites will use ``pip install`` at + run-time as needed. + +* ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"`` is not allowed when using any site other + than ``"mach"``, ``"common"`` or ``"build"``, because: + + * As described in :ref:`package-compatibility` below, packages used by Mach are still + in scope when commands are run, and + * The host system is practically guaranteed to be incompatible with commands' dependency + lockfiles. + +The ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE`` environment variable fits into the following use +cases: + +Mozilla CI Builds +~~~~~~~~~~~~~~~~~ + +We need access to the native packages of ``zstandard`` and ``psutil`` to extract archives and +get OS information respectively. Use ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"``. + +Mozilla CI non-Build Tasks +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We generally don't want to create a Mach virtual environment to avoid redundant processing, +but it's ok to ``pip install`` for specific command sites as needed, so leave +``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE`` unset (``MOZ_AUTOMATION`` implies the default +behaviour of ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"``). + +In cases where native packages *are* needed by Mach, use +``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="pip"``. + +Downstream CI Builds +~~~~~~~~~~~~~~~~~~~~ + +Sometimes these builds happen in sandboxed, network-less environments, and usually these builds +don't need any of the behaviour enabled by installing native Python dependencies. +Use ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"``. + +Gentoo Builds +~~~~~~~~~~~~~ + +When installing Firefox via the package manager, Gentoo generally builds it from source rather than +distributing a compiled binary artifact. Accordingly, users doing a build of Firefox in this +context don't want stray files created in ``~/.mozbuild`` or unnecessary ``pip install`` calls. +Use ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"``. + +Firefox Developers +~~~~~~~~~~~~~~~~~~ + +Leave ``MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE`` unset so that all Mach commands can be run, +Python dependency lockfiles are respected, and optional behaviour is enabled by installing +native packages. + +.. _package-compatibility: + +Package compatibility +===================== + +Mach requires that all commands' package requirements be compatible with those of Mach itself. +(This is because functions and state created by Mach are still usable from within the commands, and +they may still need access to their associated 3rd-party modules). + +However, it is OK for Mach commands to have package requirements which are incompatible with each +other. This allows the flexibility for some Mach commands to depend on modern dependencies while +other, more mature commands may still only be compatible with a much older version. + +.. note:: + + Only one version of a package may be vendored at any given time. If two Mach commands need to + have conflicting packages, then at least one of them must ``pip install`` the package instead + of vendoring. + + If a Mach command's dependency conflicts with a vendored package, and that vendored package + isn't needed by Mach itself, then that vendored dependency should be moved from + ``python/sites/mach.txt`` to its associated environment. diff --git a/python/gdbpp/gdbpp/__init__.py b/python/gdbpp/gdbpp/__init__.py new file mode 100644 index 0000000000..9edc626eb6 --- /dev/null +++ b/python/gdbpp/gdbpp/__init__.py @@ -0,0 +1,32 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import gdb +import gdb.printing + + +class GeckoPrettyPrinter(object): + pp = gdb.printing.RegexpCollectionPrettyPrinter("GeckoPrettyPrinters") + + def __init__(self, name, regexp): + self.name = name + self.regexp = regexp + + def __call__(self, wrapped): + GeckoPrettyPrinter.pp.add_printer(self.name, self.regexp, wrapped) + return wrapped + + +import gdbpp.enumset # noqa: F401 +import gdbpp.linkedlist # noqa: F401 +import gdbpp.owningthread # noqa: F401 +import gdbpp.smartptr # noqa: F401 +import gdbpp.string # noqa: F401 +import gdbpp.syncedcontext # noqa: F401 +import gdbpp.tarray # noqa: F401 +import gdbpp.thashtable # noqa: F401 + +gdb.printing.register_pretty_printer(None, GeckoPrettyPrinter.pp) diff --git a/python/gdbpp/gdbpp/enumset.py b/python/gdbpp/gdbpp/enumset.py new file mode 100644 index 0000000000..71315389c1 --- /dev/null +++ b/python/gdbpp/gdbpp/enumset.py @@ -0,0 +1,31 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import gdb + +from gdbpp import GeckoPrettyPrinter + + +@GeckoPrettyPrinter("mozilla::EnumSet", "^mozilla::EnumSet<.*>$") +class enumset_printer(object): + def __init__(self, value): + self.value = value + self.enum_type = value.type.template_argument(0) + + def children(self): + bitfield = self.value["mBitField"] + max_bit = (self.enum_type.sizeof * 8) - 1 + return ( + ("flag", gdb.Value(i).cast(self.enum_type)) + for i in range(0, max_bit) + if ((bitfield & (2**i)) != 0) + ) + + def to_string(self): + return str(self.value.type) + + def display_hint(self): + return "array" diff --git a/python/gdbpp/gdbpp/linkedlist.py b/python/gdbpp/gdbpp/linkedlist.py new file mode 100644 index 0000000000..1ba25a1cf0 --- /dev/null +++ b/python/gdbpp/gdbpp/linkedlist.py @@ -0,0 +1,48 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from gdbpp import GeckoPrettyPrinter + + +# mfbt's LinkedList is a doubly-linked list where the items in the list store +# the next/prev pointers as part of themselves rather than the list structure be +# its own independent data structure. This means: +# - Every item may belong to at most one LinkedList instance. +# - For our pretty printer, we only want to pretty-print the LinkedList object +# itself. We do not want to start printing every item in the list whenever +# we run into a LinkedListElement. +@GeckoPrettyPrinter("mozilla::LinkedList", "^mozilla::LinkedList<.*>$") +class linkedlist_printer(object): + def __init__(self, value): + self.value = value + # mfbt's LinkedList has the elements of the linked list subclass from + # LinkedListElement. We want its pointer type for casting purposes. + # + # (We want to list pointers since we expect all of these objects to be + # complex enough that we don't want to automatically expand them. The + # LinkedListElement type itself isn't small.) + self.t_ptr_type = value.type.template_argument(0).pointer() + + def children(self): + # Walk mNext until we loop back around to the sentinel. The sentinel + # item always exists and in the zero-length base-case mNext == sentinel, + # so extract that immediately and update it throughout the loop. + sentinel = self.value["sentinel"] + pSentinel = sentinel.address + pNext = sentinel["mNext"] + i = 0 + while pSentinel != pNext: + list_elem = pNext.dereference() + list_value = pNext.cast(self.t_ptr_type) + yield ("%d" % i, list_value) + pNext = list_elem["mNext"] + i += 1 + + def to_string(self): + return str(self.value.type) + + def display_hint(self): + return "array" diff --git a/python/gdbpp/gdbpp/owningthread.py b/python/gdbpp/gdbpp/owningthread.py new file mode 100644 index 0000000000..52055b3c99 --- /dev/null +++ b/python/gdbpp/gdbpp/owningthread.py @@ -0,0 +1,26 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import gdb + +from gdbpp import GeckoPrettyPrinter + + +@GeckoPrettyPrinter("nsAutoOwningThread", "^nsAutoOwningThread$") +class owning_thread_printer(object): + def __init__(self, value): + self.value = value + + def to_string(self): + prthread_type = gdb.lookup_type("PRThread").pointer() + prthread = self.value["mThread"].cast(prthread_type) + name = prthread["name"] + + # if the thread doesn't have a name try to get its thread id (might not + # work on !linux) + name = prthread["tid"] + + return name if name else "(PRThread *) %s" % prthread diff --git a/python/gdbpp/gdbpp/smartptr.py b/python/gdbpp/gdbpp/smartptr.py new file mode 100644 index 0000000000..1a9f503412 --- /dev/null +++ b/python/gdbpp/gdbpp/smartptr.py @@ -0,0 +1,60 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from gdbpp import GeckoPrettyPrinter + + +@GeckoPrettyPrinter("nsWeakPtr", "^nsCOMPtr$") +class weak_ptr_printer(object): + def __init__(self, value): + self.value = value + + def to_string(self): + proxy = self.value["mRawPtr"] + if not proxy: + return "[(%s) 0x0]" % proxy.type + + ref_type = proxy.dynamic_type + weak_ptr = proxy.cast(ref_type).dereference()["mObject"] + if not weak_ptr: + return "[(%s) %s]" % (weak_ptr.type, weak_ptr) + + return "[(%s) %s]" % (weak_ptr.dynamic_type, weak_ptr) + + +@GeckoPrettyPrinter("mozilla::StaticAutoPtr", "^mozilla::StaticAutoPtr<.*>$") +@GeckoPrettyPrinter("mozilla::StaticRefPtr", "^mozilla::StaticRefPtr<.*>$") +@GeckoPrettyPrinter("nsAutoPtr", "^nsAutoPtr<.*>$") +@GeckoPrettyPrinter("nsCOMPtr", "^nsCOMPtr<.*>$") +@GeckoPrettyPrinter("RefPtr", "^RefPtr<.*>$") +class smartptr_printer(object): + def __init__(self, value): + self.value = value["mRawPtr"] + + def children(self): + yield ("mRawPtr", self.value) + + def to_string(self): + if not self.value: + type_name = str(self.value.type) + else: + type_name = str(self.value.dereference().dynamic_type.pointer()) + + return "[(%s)]" % (type_name) + + +@GeckoPrettyPrinter("UniquePtr", "^mozilla::UniquePtr<.*>$") +class uniqueptr_printer(object): + def __init__(self, value): + self.value = value["mTuple"]["mFirstA"] + + def to_string(self): + if not self.value: + type_name = str(self.value.type) + else: + type_name = str(self.value.dereference().dynamic_type.pointer()) + + return "[(%s) %s]" % (type_name, str(self.value)) diff --git a/python/gdbpp/gdbpp/string.py b/python/gdbpp/gdbpp/string.py new file mode 100644 index 0000000000..b5722f2c62 --- /dev/null +++ b/python/gdbpp/gdbpp/string.py @@ -0,0 +1,21 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from gdbpp import GeckoPrettyPrinter + + +@GeckoPrettyPrinter("nsTSubstring", "^nsTSubstring<.*>$") +@GeckoPrettyPrinter("nsTAutoStringN", "^nsTAutoStringN<.*>$") +@GeckoPrettyPrinter("nsString", "^nsTString<.*>$") +class string_printer(object): + def __init__(self, value): + self.value = value + + def to_string(self): + return self.value["mData"] + + def display_hint(self): + return "string" diff --git a/python/gdbpp/gdbpp/syncedcontext.py b/python/gdbpp/gdbpp/syncedcontext.py new file mode 100644 index 0000000000..c9c80a5562 --- /dev/null +++ b/python/gdbpp/gdbpp/syncedcontext.py @@ -0,0 +1,40 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import re + +import gdb + +from gdbpp import GeckoPrettyPrinter + + +@GeckoPrettyPrinter( + "syncedcontext::FieldValues", "^mozilla::dom::syncedcontext::FieldValues<.*>$" +) +class synced_context_field_printer(object): + def __init__(self, value): + self.type = gdb.types.get_basic_type(value.type).template_argument(0) + self.value = value.cast(self.type) + self.IDX_re = re.compile(r"<(.*?),") + + def to_string(self): + return "" + + def children(self): + for base_field in self.type.fields(): + base = self.value[base_field] + for field in base.type.fields(): + field_value = base[field] + if gdb.types.has_field(field_value.type, "mField"): + field_name = self.IDX_re.search(f"{field_value.type.name}") + field_type = field.type.template_argument(1) + yield ( + f"Field<{field_name[1]}, {field_type}>", + field_value["mField"], + ) + + def display_hint(self): + return "array" diff --git a/python/gdbpp/gdbpp/tarray.py b/python/gdbpp/gdbpp/tarray.py new file mode 100644 index 0000000000..a5c82253b9 --- /dev/null +++ b/python/gdbpp/gdbpp/tarray.py @@ -0,0 +1,29 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from gdbpp import GeckoPrettyPrinter + + +@GeckoPrettyPrinter("InfallibleTArray", "^InfallibleTArray<.*>$") +@GeckoPrettyPrinter("FallibleTArray", "^FallibleTArray<.*>$") +@GeckoPrettyPrinter("AutoTArray", "^AutoTArray<.*>$") +@GeckoPrettyPrinter("nsTArray", "^nsTArray<.*>$") +class tarray_printer(object): + def __init__(self, value): + self.value = value + self.elem_type = value.type.template_argument(0) + + def children(self): + length = self.value["mHdr"].dereference()["mLength"] + data = self.value["mHdr"] + 1 + elements = data.cast(self.elem_type.pointer()) + return (("%d" % i, (elements + i).dereference()) for i in range(0, int(length))) + + def to_string(self): + return str(self.value.type) + + def display_hint(self): + return "array" diff --git a/python/gdbpp/gdbpp/thashtable.py b/python/gdbpp/gdbpp/thashtable.py new file mode 100644 index 0000000000..8b0294acf6 --- /dev/null +++ b/python/gdbpp/gdbpp/thashtable.py @@ -0,0 +1,152 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import gdb + +from gdbpp import GeckoPrettyPrinter + + +def walk_template_to_given_base(value, desired_tag_prefix): + """Given a value of some template subclass, walk up its ancestry until we + hit the desired type, then return the appropriate value (which will then + have that type). + """ + # Base case + t = value.type + # It's possible that we're dealing with an alias template that looks like: + # template + # using ManagedContainer = nsTHashtable>; + # In which case we want to strip the indirection, and strip_typedefs() + # accomplishes this. (Disclaimer: I tried it and it worked and it didn't + # break my other use cases, if things start exploding, do reconsider.) + t = t.strip_typedefs() + if t.tag.startswith(desired_tag_prefix): + return value + for f in t.fields(): + # we only care about the inheritance hierarchy + if not f.is_base_class: + continue + # This is the answer or something we're going to need to recurse into. + fv = value[f] + ft = fv.type + # slightly optimize by checking the tag rather than in the recursion + if ft.tag.startswith(desired_tag_prefix): + # found it! + return fv + return walk_template_to_given_base(fv, desired_tag_prefix) + return None + + +# The templates and their inheritance hierarchy form an onion of types around +# the nsTHashtable core at the center. All we care about is that nsTHashtable, +# but we register for the descendant types in order to avoid the default pretty +# printers having to unwrap those onion layers, wasting precious lines. +@GeckoPrettyPrinter("nsClassHashtable", "^nsClassHashtable<.*>$") +@GeckoPrettyPrinter("nsDataHashtable", "^nsDataHashtable<.*>$") +@GeckoPrettyPrinter("nsInterfaceHashtable", "^nsInterfaceHashtable<.*>$") +@GeckoPrettyPrinter("nsRefPtrHashtable", "^nsRefPtrHashtable<.*>$") +@GeckoPrettyPrinter("nsBaseHashtable", "^nsBaseHashtable<.*>$") +@GeckoPrettyPrinter("nsTHashtable", "^nsTHashtable<.*>$") +class thashtable_printer(object): + def __init__(self, outer_value): + self.outermost_type = outer_value.type + + value = walk_template_to_given_base(outer_value, "nsTHashtable<") + self.value = value + + self.entry_type = value.type.template_argument(0) + + # -- Determine whether we're a hashTABLE or a hashSET + # If we're a table, the entry type will be a nsBaseHashtableET template. + # If we're a set, it will be something like nsPtrHashKey. + # + # So, assume we're a set if we're not nsBaseHashtableET< + # (It should ideally also be true that the type ends with HashKey, but + # since nsBaseHashtableET causes us to assume "mData" exists, let's + # pivot based on that.) + self.is_table = self.entry_type.tag.startswith("nsBaseHashtableET<") + + # While we know that it has a field `mKeyHash` for the hash-code and + # book-keeping, and a DataType field mData for the value (if we're a + # table), the key field frustratingly varies by key type. + # + # So we want to walk its key type to figure out the field name. And we + # do mean field name. The field object is no good for subscripting the + # value unless the field was directly owned by that value's type. But + # by using a string name, we save ourselves all that fanciness. + + if self.is_table: + # For nsBaseHashtableET, we want the KeyClass + key_type = self.entry_type.template_argument(0) + else: + # If we're a set, our entry type is the key class already! + key_type = self.entry_type + self.key_field_name = None + for f in key_type.fields(): + # No need to traverse up the type hierarchy... + if f.is_base_class: + continue + # ...just to skip the fields we know exist... + if f.name == "mKeyHash" or f.name == "mData": + continue + # ...and assume the first one we find is the key. + self.key_field_name = f.name + break + + def children(self): + table = self.value["mTable"] + + # mEntryCount is the number of occupied slots/entries in the table. + # We can use this to avoid doing wasted memory reads. + entryCount = table["mEntryCount"] + if entryCount == 0: + return + + # The table capacity is tracked "cleverly" in terms of how many bits + # the hash needs to be shifted. CapacityFromHashShift calculates this + # quantity, but may be inlined, so we replicate the calculation here. + hashType = gdb.lookup_type("mozilla::HashNumber") + hashBits = hashType.sizeof * 8 + capacity = 1 << (hashBits - table["mHashShift"]) + + # Pierce generation-tracking EntryStore class to get at buffer. The + # class instance always exists, but this char* may be null. + store = table["mEntryStore"]["mEntryStore"] + + key_field_name = self.key_field_name + + # The entry store is laid out with hashes for all possible entries + # first, followed by all the entries. + pHashes = store.cast(hashType.pointer()) + pEntries = pHashes + capacity + pEntries = pEntries.cast(self.entry_type.pointer()) + seenCount = 0 + for i in range(0, int(capacity)): + entryHash = (pHashes + i).dereference() + # An entry hash of 0 means empty, 1 means deleted sentinel, so skip + # if that's the case. + if entryHash <= 1: + continue + + entry = (pEntries + i).dereference() + yield ("%d" % i, entry[key_field_name]) + if self.is_table: + yield ("%d" % i, entry["mData"]) + + # Stop iterating if we know there are no more occupied slots. + seenCount += 1 + if seenCount >= entryCount: + break + + def to_string(self): + # The most specific template type is the most interesting. + return str(self.outermost_type) + + def display_hint(self): + if self.is_table: + return "map" + else: + return "array" diff --git a/python/l10n/fluent_migrations/__init__.py b/python/l10n/fluent_migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python/l10n/fluent_migrations/bug_1552333_aboutCertError.py b/python/l10n/fluent_migrations/bug_1552333_aboutCertError.py new file mode 100644 index 0000000000..5c8300e01f --- /dev/null +++ b/python/l10n/fluent_migrations/bug_1552333_aboutCertError.py @@ -0,0 +1,40 @@ +# coding=utf8 + +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + +import fluent.syntax.ast as FTL +from fluent.migrate.helpers import transforms_from +from fluent.migrate.helpers import VARIABLE_REFERENCE +from fluent.migrate import COPY, REPLACE + + +def migrate(ctx): + """Bug 1552333 - Migrate strings from pipnss.properties to aboutCertError.ftl""" + ctx.add_transforms( + "browser/browser/aboutCertError.ftl", + "browser/browser/aboutCertError.ftl", + transforms_from( + """ +cert-error-symantec-distrust-admin = { COPY(from_path, "certErrorSymantecDistrustAdministrator") } +""", + from_path="security/manager/chrome/pipnss/pipnss.properties", + ), + ) + ctx.add_transforms( + "browser/browser/aboutCertError.ftl", + "browser/browser/aboutCertError.ftl", + [ + FTL.Message( + id=FTL.Identifier("cert-error-symantec-distrust-description"), + value=REPLACE( + "security/manager/chrome/pipnss/pipnss.properties", + "certErrorSymantecDistrustDescription1", + { + "%1$S": VARIABLE_REFERENCE("hostname"), + }, + normalize_printf=True, + ), + ), + ], + ) diff --git a/python/l10n/fluent_migrations/bug_1635548_browser_context.py b/python/l10n/fluent_migrations/bug_1635548_browser_context.py new file mode 100644 index 0000000000..33bd0efc95 --- /dev/null +++ b/python/l10n/fluent_migrations/bug_1635548_browser_context.py @@ -0,0 +1,82 @@ +# coding=utf8 + +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + +import fluent.syntax.ast as FTL +from fluent.migrate.helpers import transforms_from, VARIABLE_REFERENCE +from fluent.migrate import REPLACE, COPY + + +def migrate(ctx): + """Bug 1635548 - Migrate browser-context.inc to Fluent, part {index}""" + target = "toolkit/toolkit/global/textActions.ftl" + reference = "toolkit/toolkit/global/textActions.ftl" + ctx.add_transforms( + target, + reference, + transforms_from( + """ +text-action-spell-add-to-dictionary = + .label = { COPY(from_path, "spellAddToDictionary.label") } + .accesskey = { COPY(from_path, "spellAddToDictionary.accesskey") } + +text-action-spell-undo-add-to-dictionary = + .label = { COPY(from_path, "spellUndoAddToDictionary.label") } + .accesskey = { COPY(from_path, "spellUndoAddToDictionary.accesskey") } + +text-action-spell-check-toggle = + .label = { COPY(from_path, "spellCheckToggle.label") } + .accesskey = { COPY(from_path, "spellCheckToggle.accesskey") } + +text-action-spell-dictionaries = + .label = { COPY(from_path, "spellDictionaries.label") } + .accesskey = { COPY(from_path, "spellDictionaries.accesskey") } +""", + from_path="toolkit/chrome/global/textcontext.dtd", + ), + ) + + target = "toolkit/toolkit/global/textActions.ftl" + reference = "toolkit/toolkit/global/textActions.ftl" + ctx.add_transforms( + target, + reference, + transforms_from( + """ +text-action-spell-add-dictionaries = + .label = { COPY(from_path, "spellAddDictionaries.label") } + .accesskey = { COPY(from_path, "spellAddDictionaries.accesskey") } +""", + from_path="browser/chrome/browser/browser.dtd", + ), + ) + + target = "browser/browser/browserContext.ftl" + reference = "browser/browser/browserContext.ftl" + ctx.add_transforms( + target, + reference, + [ + FTL.Message( + id=FTL.Identifier("main-context-menu-open-link-in-container-tab"), + attributes=[ + FTL.Attribute( + FTL.Identifier("label"), + REPLACE( + "browser/chrome/browser/browser.properties", + "userContextOpenLink.label", + {"%1$S": VARIABLE_REFERENCE("containerName")}, + ), + ), + FTL.Attribute( + FTL.Identifier("accesskey"), + COPY( + "browser/chrome/browser/browser.dtd", + "openLinkCmdInTab.accesskey", + ), + ), + ], + ) + ], + ) diff --git a/python/l10n/fluent_migrations/bug_1786186_mobile_aboutConfig.py b/python/l10n/fluent_migrations/bug_1786186_mobile_aboutConfig.py new file mode 100644 index 0000000000..99c6673f92 --- /dev/null +++ b/python/l10n/fluent_migrations/bug_1786186_mobile_aboutConfig.py @@ -0,0 +1,65 @@ +# coding=utf8 + +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + +import fluent.syntax.ast as FTL +from fluent.migrate.helpers import transforms_from +from fluent.migrate.transforms import COPY + + +def migrate(ctx): + """Bug 1786186 - Migrate mobile about:config to Fluent, part {index}""" + + target = "mobile/android/mobile/android/aboutConfig.ftl" + + ctx.add_transforms( + target, + target, + transforms_from( + """ + +config-toolbar-search = + .placeholder = { COPY(path1, "toolbar.searchPlaceholder") } +config-new-pref-name = + .placeholder = { COPY(path1, "newPref.namePlaceholder") } +config-new-pref-value-boolean = { COPY(path1, "newPref.valueBoolean") } +config-new-pref-value-string = { COPY(path1, "newPref.valueString") } +config-new-pref-value-integer = { COPY(path1, "newPref.valueInteger") } +config-new-pref-string = + .placeholder = { COPY(path1, "newPref.stringPlaceholder") } +config-new-pref-number = + .placeholder = { COPY(path1, "newPref.numberPlaceholder") } +config-new-pref-cancel-button = { COPY(path1, "newPref.cancelButton") } +config-context-menu-copy-pref-name = + .label = { COPY(path1, "contextMenu.copyPrefName") } +config-context-menu-copy-pref-value = + .label = { COPY(path1, "contextMenu.copyPrefValue") } +""", + path1="mobile/android/chrome/config.dtd", + ), + ) + + source = "mobile/android/chrome/config.properties" + ctx.add_transforms( + target, + target, + [ + FTL.Message( + id=FTL.Identifier("config-new-pref-create-button"), + value=COPY(source, "newPref.createButton"), + ), + FTL.Message( + id=FTL.Identifier("config-new-pref-change-button"), + value=COPY(source, "newPref.changeButton"), + ), + FTL.Message( + id=FTL.Identifier("config-pref-toggle-button"), + value=COPY(source, "pref.toggleButton"), + ), + FTL.Message( + id=FTL.Identifier("config-pref-reset-button"), + value=COPY(source, "pref.resetButton"), + ), + ], + ) diff --git a/python/l10n/fluent_migrations/bug_1793572_webrtc.py b/python/l10n/fluent_migrations/bug_1793572_webrtc.py new file mode 100644 index 0000000000..eb07f939a8 --- /dev/null +++ b/python/l10n/fluent_migrations/bug_1793572_webrtc.py @@ -0,0 +1,771 @@ +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + +import fluent.syntax.ast as FTL +from fluent.migrate.helpers import TERM_REFERENCE, VARIABLE_REFERENCE +from fluent.migrate.transforms import ( + COPY, + COPY_PATTERN, + PLURALS, + REPLACE, + REPLACE_IN_TEXT, +) + + +def migrate(ctx): + """Bug 1793572 - Convert WebRTC strings to Fluent, part {index}.""" + + source = "browser/chrome/browser/webrtcIndicator.properties" + browser = "browser/chrome/browser/browser.properties" + browser_ftl = "browser/browser/browser.ftl" + target = "browser/browser/webrtcIndicator.ftl" + + ctx.add_transforms( + target, + target, + [ + FTL.Message( + id=FTL.Identifier("webrtc-indicator-window"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("title"), + value=COPY_PATTERN(target, "webrtc-indicator-title"), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-sharing-camera-and-microphone"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("tooltiptext"), + value=COPY( + source, "webrtcIndicator.sharingCameraAndMicrophone.tooltip" + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-sharing-camera"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("tooltiptext"), + value=COPY(source, "webrtcIndicator.sharingCamera.tooltip"), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-sharing-microphone"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("tooltiptext"), + value=COPY(source, "webrtcIndicator.sharingMicrophone.tooltip"), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-sharing-application"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("tooltiptext"), + value=COPY( + source, "webrtcIndicator.sharingApplication.tooltip" + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-sharing-screen"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("tooltiptext"), + value=COPY(source, "webrtcIndicator.sharingScreen.tooltip"), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-sharing-window"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("tooltiptext"), + value=COPY(source, "webrtcIndicator.sharingWindow.tooltip"), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-sharing-browser"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("tooltiptext"), + value=COPY(source, "webrtcIndicator.sharingBrowser.tooltip"), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-menuitem-control-sharing"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY(source, "webrtcIndicator.controlSharing.menuitem"), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-menuitem-control-sharing-on"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=REPLACE( + source, + "webrtcIndicator.controlSharingOn.menuitem", + {"%1$S": VARIABLE_REFERENCE("streamTitle")}, + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-menuitem-sharing-camera-with"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=REPLACE( + source, + "webrtcIndicator.sharingCameraWith.menuitem", + {"%1$S": VARIABLE_REFERENCE("streamTitle")}, + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-menuitem-sharing-microphone-with"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=REPLACE( + source, + "webrtcIndicator.sharingMicrophoneWith.menuitem", + {"%1$S": VARIABLE_REFERENCE("streamTitle")}, + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-menuitem-sharing-application-with"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=REPLACE( + source, + "webrtcIndicator.sharingApplicationWith.menuitem", + {"%1$S": VARIABLE_REFERENCE("streamTitle")}, + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-menuitem-sharing-screen-with"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=REPLACE( + source, + "webrtcIndicator.sharingScreenWith.menuitem", + {"%1$S": VARIABLE_REFERENCE("streamTitle")}, + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-menuitem-sharing-window-with"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=REPLACE( + source, + "webrtcIndicator.sharingWindowWith.menuitem", + {"%1$S": VARIABLE_REFERENCE("streamTitle")}, + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-indicator-menuitem-sharing-browser-with"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=REPLACE( + source, + "webrtcIndicator.sharingBrowserWith.menuitem", + {"%1$S": VARIABLE_REFERENCE("streamTitle")}, + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier( + "webrtc-indicator-menuitem-sharing-camera-with-n-tabs" + ), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=PLURALS( + source, + "webrtcIndicator.sharingCameraWithNTabs.menuitem", + VARIABLE_REFERENCE("tabCount"), + foreach=lambda n: REPLACE_IN_TEXT( + n, + {"#1": VARIABLE_REFERENCE("tabCount")}, + ), + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier( + "webrtc-indicator-menuitem-sharing-microphone-with-n-tabs" + ), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=PLURALS( + source, + "webrtcIndicator.sharingMicrophoneWithNTabs.menuitem", + VARIABLE_REFERENCE("tabCount"), + foreach=lambda n: REPLACE_IN_TEXT( + n, + {"#1": VARIABLE_REFERENCE("tabCount")}, + ), + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier( + "webrtc-indicator-menuitem-sharing-application-with-n-tabs" + ), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=PLURALS( + source, + "webrtcIndicator.sharingApplicationWithNTabs.menuitem", + VARIABLE_REFERENCE("tabCount"), + foreach=lambda n: REPLACE_IN_TEXT( + n, + {"#1": VARIABLE_REFERENCE("tabCount")}, + ), + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier( + "webrtc-indicator-menuitem-sharing-screen-with-n-tabs" + ), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=PLURALS( + source, + "webrtcIndicator.sharingScreenWithNTabs.menuitem", + VARIABLE_REFERENCE("tabCount"), + foreach=lambda n: REPLACE_IN_TEXT( + n, + {"#1": VARIABLE_REFERENCE("tabCount")}, + ), + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier( + "webrtc-indicator-menuitem-sharing-window-with-n-tabs" + ), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=PLURALS( + source, + "webrtcIndicator.sharingWindowWithNTabs.menuitem", + VARIABLE_REFERENCE("tabCount"), + foreach=lambda n: REPLACE_IN_TEXT( + n, + {"#1": VARIABLE_REFERENCE("tabCount")}, + ), + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier( + "webrtc-indicator-menuitem-sharing-browser-with-n-tabs" + ), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=PLURALS( + source, + "webrtcIndicator.sharingBrowserWithNTabs.menuitem", + VARIABLE_REFERENCE("tabCount"), + foreach=lambda n: REPLACE_IN_TEXT( + n, + {"#1": VARIABLE_REFERENCE("tabCount")}, + ), + ), + ) + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-item-camera"), + value=REPLACE( + browser, + "getUserMedia.sharingMenuCamera", + { + "%1$S (": FTL.TextElement(""), + "%1$S(": FTL.TextElement(""), + ")": FTL.TextElement(""), + ")": FTL.TextElement(""), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-item-microphone"), + value=REPLACE( + browser, + "getUserMedia.sharingMenuMicrophone", + { + "%1$S (": FTL.TextElement(""), + "%1$S(": FTL.TextElement(""), + ")": FTL.TextElement(""), + ")": FTL.TextElement(""), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-item-audio-capture"), + value=REPLACE( + browser, + "getUserMedia.sharingMenuAudioCapture", + { + "%1$S (": FTL.TextElement(""), + "%1$S(": FTL.TextElement(""), + ")": FTL.TextElement(""), + ")": FTL.TextElement(""), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-item-application"), + value=REPLACE( + browser, + "getUserMedia.sharingMenuApplication", + { + "%1$S (": FTL.TextElement(""), + "%1$S(": FTL.TextElement(""), + ")": FTL.TextElement(""), + ")": FTL.TextElement(""), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-item-screen"), + value=REPLACE( + browser, + "getUserMedia.sharingMenuScreen", + { + "%1$S (": FTL.TextElement(""), + "%1$S(": FTL.TextElement(""), + ")": FTL.TextElement(""), + ")": FTL.TextElement(""), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-item-window"), + value=REPLACE( + browser, + "getUserMedia.sharingMenuWindow", + { + "%1$S (": FTL.TextElement(""), + "%1$S(": FTL.TextElement(""), + ")": FTL.TextElement(""), + ")": FTL.TextElement(""), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-item-browser"), + value=REPLACE( + browser, + "getUserMedia.sharingMenuBrowser", + { + "%1$S (": FTL.TextElement(""), + "%1$S(": FTL.TextElement(""), + ")": FTL.TextElement(""), + ")": FTL.TextElement(""), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-sharing-menuitem-unknown-host"), + value=COPY(browser, "getUserMedia.sharingMenuUnknownHost"), + ), + FTL.Message( + id=FTL.Identifier("webrtc-sharing-menuitem"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=FTL.Pattern( + [FTL.TextElement("{ $origin } ({ $itemList })")] + ), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-sharing-menu"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY(browser, "getUserMedia.sharingMenu.label"), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY(browser, "getUserMedia.sharingMenu.accesskey"), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-camera"), + value=REPLACE( + browser, + "getUserMedia.shareCamera3.message", + {"%1$S": VARIABLE_REFERENCE("origin")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-microphone"), + value=REPLACE( + browser, + "getUserMedia.shareMicrophone3.message", + {"%1$S": VARIABLE_REFERENCE("origin")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-screen"), + value=REPLACE( + browser, + "getUserMedia.shareScreen4.message", + {"%1$S": VARIABLE_REFERENCE("origin")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-camera-and-microphone"), + value=REPLACE( + browser, + "getUserMedia.shareCameraAndMicrophone3.message", + {"%1$S": VARIABLE_REFERENCE("origin")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-camera-and-audio-capture"), + value=REPLACE( + browser, + "getUserMedia.shareCameraAndAudioCapture3.message", + {"%1$S": VARIABLE_REFERENCE("origin")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-screen-and-microphone"), + value=REPLACE( + browser, + "getUserMedia.shareScreenAndMicrophone4.message", + {"%1$S": VARIABLE_REFERENCE("origin")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-screen-and-audio-capture"), + value=REPLACE( + browser, + "getUserMedia.shareScreenAndAudioCapture4.message", + {"%1$S": VARIABLE_REFERENCE("origin")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-audio-capture"), + value=REPLACE( + browser, + "getUserMedia.shareAudioCapture3.message", + {"%1$S": VARIABLE_REFERENCE("origin")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-speaker"), + value=REPLACE( + browser, + "selectAudioOutput.shareSpeaker.message", + {"%1$S": VARIABLE_REFERENCE("origin")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-camera-unsafe-delegation"), + value=REPLACE( + browser, + "getUserMedia.shareCameraUnsafeDelegation2.message", + { + "%1$S": VARIABLE_REFERENCE("origin"), + "%2$S": VARIABLE_REFERENCE("thirdParty"), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-microphone-unsafe-delegations"), + value=REPLACE( + browser, + "getUserMedia.shareMicrophoneUnsafeDelegations2.message", + { + "%1$S": VARIABLE_REFERENCE("origin"), + "%2$S": VARIABLE_REFERENCE("thirdParty"), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-screen-unsafe-delegation"), + value=REPLACE( + browser, + "getUserMedia.shareScreenUnsafeDelegation2.message", + { + "%1$S": VARIABLE_REFERENCE("origin"), + "%2$S": VARIABLE_REFERENCE("thirdParty"), + }, + ), + ), + FTL.Message( + id=FTL.Identifier( + "webrtc-allow-share-camera-and-microphone-unsafe-delegation" + ), + value=REPLACE( + browser, + "getUserMedia.shareCameraAndMicrophoneUnsafeDelegation2.message", + { + "%1$S": VARIABLE_REFERENCE("origin"), + "%2$S": VARIABLE_REFERENCE("thirdParty"), + }, + ), + ), + FTL.Message( + id=FTL.Identifier( + "webrtc-allow-share-camera-and-audio-capture-unsafe-delegation" + ), + value=REPLACE( + browser, + "getUserMedia.shareCameraAndAudioCaptureUnsafeDelegation2.message", + { + "%1$S": VARIABLE_REFERENCE("origin"), + "%2$S": VARIABLE_REFERENCE("thirdParty"), + }, + ), + ), + FTL.Message( + id=FTL.Identifier( + "webrtc-allow-share-screen-and-microphone-unsafe-delegation" + ), + value=REPLACE( + browser, + "getUserMedia.shareScreenAndMicrophoneUnsafeDelegation2.message", + { + "%1$S": VARIABLE_REFERENCE("origin"), + "%2$S": VARIABLE_REFERENCE("thirdParty"), + }, + ), + ), + FTL.Message( + id=FTL.Identifier( + "webrtc-allow-share-screen-and-audio-capture-unsafe-delegation" + ), + value=REPLACE( + browser, + "getUserMedia.shareScreenAndAudioCaptureUnsafeDelegation2.message", + { + "%1$S": VARIABLE_REFERENCE("origin"), + "%2$S": VARIABLE_REFERENCE("thirdParty"), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-allow-share-speaker-unsafe-delegation"), + value=REPLACE( + browser, + "selectAudioOutput.shareSpeakerUnsafeDelegation.message", + { + "%1$S": VARIABLE_REFERENCE("origin"), + "%2$S": VARIABLE_REFERENCE("thirdParty"), + }, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-share-screen-warning"), + value=COPY(browser, "getUserMedia.shareScreenWarning2.message"), + ), + FTL.Message( + id=FTL.Identifier("webrtc-share-browser-warning"), + value=REPLACE( + browser, + "getUserMedia.shareFirefoxWarning2.message", + {"%1$S": TERM_REFERENCE("brand-short-name")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-share-screen-learn-more"), + value=COPY(browser, "getUserMedia.shareScreen.learnMoreLabel"), + ), + FTL.Message( + id=FTL.Identifier("webrtc-pick-window-or-screen"), + value=COPY(browser, "getUserMedia.pickWindowOrScreen.label"), + ), + FTL.Message( + id=FTL.Identifier("webrtc-share-entire-screen"), + value=COPY(browser, "getUserMedia.shareEntireScreen.label"), + ), + FTL.Message( + id=FTL.Identifier("webrtc-share-pipe-wire-portal"), + value=COPY(browser, "getUserMedia.sharePipeWirePortal.label"), + ), + FTL.Message( + id=FTL.Identifier("webrtc-share-monitor"), + value=REPLACE( + browser, + "getUserMedia.shareMonitor.label", + {"%1$S": VARIABLE_REFERENCE("monitorIndex")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-share-application"), + value=PLURALS( + browser, + "getUserMedia.shareApplicationWindowCount.label", + VARIABLE_REFERENCE("windowCount"), + foreach=lambda n: REPLACE_IN_TEXT( + n, + { + "#1": VARIABLE_REFERENCE("appName"), + "#2": VARIABLE_REFERENCE("windowCount"), + }, + ), + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-action-allow"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY(browser, "getUserMedia.allow.label"), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY(browser, "getUserMedia.allow.accesskey"), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-action-block"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY_PATTERN( + browser_ftl, "popup-screen-sharing-block.label" + ), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY_PATTERN( + browser_ftl, "popup-screen-sharing-block.accesskey" + ), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-action-always-block"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY_PATTERN( + browser_ftl, "popup-screen-sharing-always-block.label" + ), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY_PATTERN( + browser_ftl, + "popup-screen-sharing-always-block.accesskey", + ), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-action-not-now"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY(browser, "getUserMedia.notNow.label"), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY(browser, "getUserMedia.notNow.accesskey"), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("webrtc-remember-allow-checkbox"), + value=COPY(browser, "getUserMedia.remember"), + ), + FTL.Message( + id=FTL.Identifier("webrtc-mute-notifications-checkbox"), + value=COPY_PATTERN(browser_ftl, "popup-mute-notifications-checkbox"), + ), + FTL.Message( + id=FTL.Identifier("webrtc-reason-for-no-permanent-allow-screen"), + value=REPLACE( + browser, + "getUserMedia.reasonForNoPermanentAllow.screen3", + {"%1$S": TERM_REFERENCE("brand-short-name")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-reason-for-no-permanent-allow-audio"), + value=REPLACE( + browser, + "getUserMedia.reasonForNoPermanentAllow.audio", + {"%1$S": TERM_REFERENCE("brand-short-name")}, + ), + ), + FTL.Message( + id=FTL.Identifier("webrtc-reason-for-no-permanent-allow-insecure"), + value=REPLACE( + browser, + "getUserMedia.reasonForNoPermanentAllow.insecure", + {"%1$S": TERM_REFERENCE("brand-short-name")}, + ), + ), + ], + ) + + ctx.add_transforms( + browser_ftl, + browser_ftl, + [ + FTL.Message( + id=FTL.Identifier("popup-select-window-or-screen"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY(browser, "getUserMedia.selectWindowOrScreen2.label"), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY( + browser, "getUserMedia.selectWindowOrScreen2.accesskey" + ), + ), + ], + ), + ], + ) diff --git a/python/l10n/fluent_migrations/bug_1812135_newtab_moz_toggle_labels.py b/python/l10n/fluent_migrations/bug_1812135_newtab_moz_toggle_labels.py new file mode 100644 index 0000000000..27db47b0b5 --- /dev/null +++ b/python/l10n/fluent_migrations/bug_1812135_newtab_moz_toggle_labels.py @@ -0,0 +1,30 @@ +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + +import fluent.syntax.ast as FTL +from fluent.migrate.helpers import transforms_from + + +def migrate(ctx): + """Bug 1812135 - Convert some newtab customiation panel strings to use a label, part {index}""" + + translations_ftl = "browser/browser/newtab/newtab.ftl" + + ctx.add_transforms( + translations_ftl, + translations_ftl, + transforms_from( + """ +newtab-custom-shortcuts-toggle = + .label = {COPY_PATTERN(from_path, "newtab-custom-shortcuts-title")} + .description = {COPY_PATTERN(from_path, "newtab-custom-shortcuts-subtitle")} +newtab-custom-pocket-toggle = + .label = {COPY_PATTERN(from_path, "newtab-custom-pocket-title")} + .description = {COPY_PATTERN(from_path, "newtab-custom-pocket-subtitle")} +newtab-custom-recent-toggle = + .label = {COPY_PATTERN(from_path, "newtab-custom-recent-title")} + .description = {COPY_PATTERN(from_path, "newtab-custom-recent-subtitle")} +""", + from_path=translations_ftl, + ), + ) diff --git a/python/l10n/fluent_migrations/bug_1814969_contextualIdentity.py b/python/l10n/fluent_migrations/bug_1814969_contextualIdentity.py new file mode 100644 index 0000000000..10a6bd5690 --- /dev/null +++ b/python/l10n/fluent_migrations/bug_1814969_contextualIdentity.py @@ -0,0 +1,101 @@ +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + +import fluent.syntax.ast as FTL +from fluent.migrate.transforms import COPY, COPY_PATTERN + + +def migrate(ctx): + """Bug 1814969 - Convert contextual identity service strings to Fluent, part {index}.""" + + source = "browser/chrome/browser/browser.properties" + alltabs = "browser/browser/allTabsMenu.ftl" + target = "toolkit/toolkit/global/contextual-identity.ftl" + ctx.add_transforms( + target, + target, + [ + FTL.Message( + id=FTL.Identifier("user-context-personal"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY(source, "userContextPersonal.label"), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY(source, "userContextPersonal.accesskey"), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("user-context-work"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY(source, "userContextWork.label"), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY(source, "userContextWork.accesskey"), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("user-context-banking"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY(source, "userContextBanking.label"), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY(source, "userContextBanking.accesskey"), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("user-context-shopping"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY(source, "userContextShopping.label"), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY(source, "userContextShopping.accesskey"), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("user-context-none"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY(source, "userContextNone.label"), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY(source, "userContextNone.accesskey"), + ), + ], + ), + FTL.Message( + id=FTL.Identifier("user-context-manage-containers"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("label"), + value=COPY_PATTERN( + alltabs, "all-tabs-menu-manage-user-context.label" + ), + ), + FTL.Attribute( + id=FTL.Identifier("accesskey"), + value=COPY_PATTERN( + alltabs, "all-tabs-menu-manage-user-context.accesskey" + ), + ), + ], + ), + ], + ) diff --git a/python/l10n/fluent_migrations/bug_1844783_mozMessageBarShopping.py b/python/l10n/fluent_migrations/bug_1844783_mozMessageBarShopping.py new file mode 100644 index 0000000000..468839693c --- /dev/null +++ b/python/l10n/fluent_migrations/bug_1844783_mozMessageBarShopping.py @@ -0,0 +1,45 @@ +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + +from fluent.migrate import COPY_PATTERN +from fluent.migrate.helpers import transforms_from + + +def migrate(ctx): + """Bug 1844783 - Use new moz-message-bar in shopping components, part {index}.""" + shopping_ftl = "browser/browser/shopping.ftl" + ctx.add_transforms( + shopping_ftl, + shopping_ftl, + transforms_from( + """ +shopping-message-bar-generic-error = + .heading = {COPY_PATTERN(from_path, "shopping-message-bar-generic-error-title2")} + .message = {COPY_PATTERN(from_path, "shopping-message-bar-generic-error-message")} + +shopping-message-bar-warning-not-enough-reviews = + .heading = {COPY_PATTERN(from_path, "shopping-message-bar-warning-not-enough-reviews-title")} + .message = {COPY_PATTERN(from_path, "shopping-message-bar-warning-not-enough-reviews-message2")} + +shopping-message-bar-warning-product-not-available = + .heading = {COPY_PATTERN(from_path, "shopping-message-bar-warning-product-not-available-title")} + .message = {COPY_PATTERN(from_path, "shopping-message-bar-warning-product-not-available-message2")} + +shopping-message-bar-thanks-for-reporting = + .heading = {COPY_PATTERN(from_path, "shopping-message-bar-thanks-for-reporting-title")} + .message = {COPY_PATTERN(from_path, "shopping-message-bar-thanks-for-reporting-message2")} + +shopping-message-bar-warning-product-not-available-reported = + .heading = {COPY_PATTERN(from_path, "shopping-message-bar-warning-product-not-available-reported-title2")} + .message = {COPY_PATTERN(from_path, "shopping-message-bar-warning-product-not-available-reported-message2")} + +shopping-message-bar-page-not-supported = + .heading = {COPY_PATTERN(from_path, "shopping-message-bar-page-not-supported-title")} + .message = {COPY_PATTERN(from_path, "shopping-message-bar-page-not-supported-message")} + +shopping-survey-thanks = + .heading = {COPY_PATTERN(from_path, "shopping-survey-thanks-message")} +""", + from_path=shopping_ftl, + ), + ) diff --git a/python/l10n/fluent_migrations/bug_1844850_mozMessageBar_unifiedExtensionsPanel.py b/python/l10n/fluent_migrations/bug_1844850_mozMessageBar_unifiedExtensionsPanel.py new file mode 100644 index 0000000000..b7a4c919eb --- /dev/null +++ b/python/l10n/fluent_migrations/bug_1844850_mozMessageBar_unifiedExtensionsPanel.py @@ -0,0 +1,36 @@ +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + +import fluent.syntax.ast as FTL + +from fluent.migrate import COPY_PATTERN + + +def migrate(ctx): + """Bug 1844850 - Use moz-message-bar in the unified extensions panel, part {index}.""" + unifiedExtensions_ftl = "browser/browser/unifiedExtensions.ftl" + ctx.add_transforms( + unifiedExtensions_ftl, + unifiedExtensions_ftl, + [ + FTL.Message( + id=FTL.Identifier("unified-extensions-mb-quarantined-domain-message-3"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("heading"), + value=COPY_PATTERN( + unifiedExtensions_ftl, + "unified-extensions-mb-quarantined-domain-title", + ), + ), + FTL.Attribute( + id=FTL.Identifier("message"), + value=COPY_PATTERN( + unifiedExtensions_ftl, + "unified-extensions-mb-quarantined-domain-message-2", + ), + ), + ], + ), + ], + ) diff --git a/python/l10n/fluent_migrations/bug_1845150_search_engine_notification.py b/python/l10n/fluent_migrations/bug_1845150_search_engine_notification.py new file mode 100644 index 0000000000..125baa4c1f --- /dev/null +++ b/python/l10n/fluent_migrations/bug_1845150_search_engine_notification.py @@ -0,0 +1,32 @@ +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + +import re +import fluent.syntax.ast as FTL +from fluent.migrate.transforms import TransformPattern + + +class STRIP_LABEL(TransformPattern): + # Used to remove `