Mask object for context masquerade. It is used to artificially restrict the capabilities of context instances. It is intended to simplify cross-browser testing without actually using different browsers.
A mask can be instantiated in four different ways:
Intended use; when the context's static masquerade is set, all subsequent instances apply that mask:
Context.masquerade = ContextMasquerade.fromHash('288M01-o');
Defines the backend (currently either 'webgl1' or 'webgl2').
Extensions that the context should conceal support of. This only affects supported extensions, which will be reported to be not supported.
Extensions that the context should strive to support. The support can only go as far as the extensions are actually supported.
Functions that the context should delete during construction. Since WebGL context functions cannot be deleted they are undefined instead.
Tries to generate a mask based on GET parameters: if msqrd_h is present, its value is interpreted as extensions hash and a mask is generated from hash. If no hash was found, presence of msqrd_p is evaluated and if found, a mask is generated from preset identifier.
Generates a mask based on an extensions hash (encoding backend and extensions_strive). If extensions are strived for, all extensions that are not explicitly mentioned will be added to the list of concealed extensions.
Hash that is to be decoded for backend and extensions data.
Creates a context mask based on a preset. Note that the presence of an extensions_hash overrides the backend, extensions_strive, as well as extensions_conceal. Only the functions_undefine will be preserved in that case.
Name of a preset as specified in masquerade.json.