Rationale: This was a Mozilla oversight and/or error.
This change has caused harm and is causing users to switch back to
Chrome, Safari or Edge for their WebStart needs.
JNLP is not an executable and should not be treated as such. JNLP should
be treated the same as any (e.g. Word) document and allowed to be opened
with the designated program.
A JNLP file will not cause execution on a system unless it has a valid
signature, and the user explicitly authorizes the launching based on
information provided by the signature. Moreover, there will even be a
check by the Java environment to see if the Java runtime (if there is
one) is current, and prompt the user to update if required.
This reverts commit 21495c58976e3cbbfe54d2e54d1fd67e36dff2a6 and
modifies ApplicationReputation.cpp to keep the list in sync (was a
discrepancy before).
Surprisingly, this was previously not done.
Also, some of this code seems to be incorrect or,
at the very least, wasn't clear what it was trying to do.
This creates a number of stubs and leaves some surrounding code that may be irrelevant (eg. recorded time stamps, status variables).
Stub resolution/removal should be a follow-up to this.
- `--enable-official-branding` implies `MC_OFFICIAL` (no need to specifically set it)
- `--enable-official-vendor` can be used to set `MC_OFFICIAL` on builds without `--enable-official-branding` that should still be considered official release versions.
- `MC_OFFICIAL` implies `--enable-release`, meaning `DEVELOPER_OPTIONS` isn't set
- `MC_OFFICIAL` makes `nsXULAppInfo.getIsOfficial` return `true`
- `MC_OFFICIAL` makes `AppConstants.MOZILLA_OFFICIAL` (for compatibility in extensions) and `AppConstants.MC_OFFICIAL` return `true`
- Optional, for the time being: `MOZILLA_OFFICIAL` is still present in some places in case someone wants to build a Mozilla-alike official application and has the rights and necessary keys to use Mozilla-official third-party services. This must always be combined with `MC_OFFICIAL` to have a sane combination of defines. This may be removed in the future.