mozinfo

mozinfo is a solution for representing a subset of build configuration and run-time data.

mozinfo data is typically accessed through a mozinfo.json file which is written to the object directory during build configuration. The code for writing this file lives in mozbuild.mozinfo.

mozinfo.json is an object/dictionary of simple string values.

The attributes in mozinfo.json are used for many purposes. One use is to filter tests for applicability to the current build. For more on this, see Test Manifests.

mozinfo.json Attributes

mozinfo currently records the following attributes.

appname

The application being built.

Value comes from MOZ_APP_NAME from config.status.

Optional.

asan

Whether address sanitization is enabled.

Values are true and false.

Always defined.

bin_suffix

The file suffix for binaries produced with this build.

Values may be an empty string, as not all platforms have a binary suffix.

Always defined.

bits

The number of bits in the CPU this build targets.

Values are typically 32 or 64.

Universal Mac builds do not have this key defined.

Unknown processor architectures (see processor below) may not have this key defined.

Optional.

buildapp

The path to the XUL application being built.

For desktop Firefox, this is browser. For Fennec, it’s mobile/android.

crashreporter

Whether the crash reporter is enabled for this build.

Values are true and false.

Always defined.

datareporting

Whether data reporting (MOZ_DATA_REPORTING) is enabled for this build.

Values are true and false.

Always defined.

debug

Whether this is a debug build.

Values are true and false.

Always defined.

devedition

Whether this is a devedition build.

Values are true and false.

Always defined.

healthreport

Whether the Health Report feature is enabled.

Values are true and false.

Always defined.

mozconfig

The path of the mozconfig file used to produce this build.

Optional.

nightly_build

Whether this is a nightly build.

Values are true and false.

Always defined.

os

The operating system the build is produced for. Values for tier-1 supported platforms are linux, win, mac, and android. For other platforms, the value is the lowercase version of the OS_TARGET variable from config.status.

Always defined.

processor

Information about the processor architecture this build targets.

Values come from TARGET_CPU, however some massaging may be performed.

If the build is a universal build on Mac (it targets both 32-bit and 64-bit), the value is universal-x86-x86_64.

If the value starts with arm, the value is arm.

If the value starts with a string of the form i[3-9]86], the value is x86.

Always defined.

release_or_beta

Whether this is a release or beta build.

Values are true and false.

Always defined.

stylo

Whether the Stylo styling system is being used.

Values are true and false.

Always defined.

tests_enabled

Whether tests are enabled for this build.

Values are true and false.

Always defined.

toolkit

The widget toolkit in case. The value comes from the MOZ_WIDGET_TOOLKIT config.status variable.

Always defined.

topsrcdir

The path to the source directory the build came from.

Always defined.

topobjdir

The path to the obj directory the build came from.

Always defined.

webrender

Whether or not WebRender is enabled as the Gecko compositor.

Values are true and false.

Always defined.