When an element is re-translated, the textContent is currently dropped.
To avoid that, make it an explicit part of the message.
This requires changing the l10n message ID.
Ideally, the message ID wouldn't change, but that is not possible until
the content can be preserved as a feature, i.e.
https://github.com/projectfluent/fluent.js/issues/169
Differential Revision: https://phabricator.services.mozilla.com/D179323
When an element is re-translated, the textContent is currently dropped.
To avoid that, make it an explicit part of the message.
This requires changing the l10n message ID.
Ideally, the message ID wouldn't change, but that is not possible until
the content can be preserved as a feature, i.e.
https://github.com/projectfluent/fluent.js/issues/169
Differential Revision: https://phabricator.services.mozilla.com/D179323
We have less constraints on the minimum supported clang-cl version, and
it would unlock C++17 inline variables (which had a bug on Windows
targets in clang up-to 8.x).
Differential Revision: https://phabricator.services.mozilla.com/D179037
Its implementation in python3 is just wrapping pprint.pprint, and
there's only one use.
The python2 implementation is obviously dead code.
Differential Revision: https://phabricator.services.mozilla.com/D179179
As this is the only string in `services/`, let's simplify by moving it under `toolkit/` and removing `services/sync/locales/` as empty.
On advice from markh, the ON_NEW_DEVICE_ID notification is delayed during device registration & updates until the update has been written to storage.
Differential Revision: https://phabricator.services.mozilla.com/D178805
The l10n migration shows a diff for `addon-downloading-and-verifying`,
`addon-confirm-install-message`, and `addon-confirm-install-unsigned-message`
due to the en-US source having `1` rather than `one` variants.
For `addon-confirm-install-some-unsigned-message`,
the en-US source has a single-variant plural selector for localization to new languages.
In addition to moving strings from `browser.properties` to the new `addonNotifications.ftl`,
there's some shuffling of strings to & from `browser.ftl` as well.
The intent is to collect the more rarely used strings out of files loaded during startup,
especially as many of the notification strings need to be formatted in a sync context.
For the most part, string keys are left roughly the same as they were in .properties.
With some guidance, some rationalisation might make sense as a part of this for the
rather wide selection of prefixes in this set:
- `addon-`
- `site-permission-install-`
- `webext-`
- `xpinstall-`
The `addon-install-started` and `addon-install-failed` notifications appear to need sync l10n formatting,
as using async format calls before their `PopupNotifications.show()` leads to test failures in
`toolkit/mozapps/extensions/test/xpinstall/browser_doorhanger_installs.js`.
Differential Revision: https://phabricator.services.mozilla.com/D178235
This changes the arguments of `ExtensionData.formatPermissionStrings()`.
The second `bundle` arg is dropped, and a `localization` option is added.
Call sites in m-c are updated, but this will also need a matching update for Thunderbird.
A few Thunderbird test cases will also need to be updated,
as they currently point to a non-existing localization file paths
"messenger/addons.ftl" and "messenger/addonPermissions.ftl".
As discussed at the addon workweek,
the Fluent l10n keys for extension permissions match the pattern:
webext-perms-description-{name}
where `{name}` is the permission's sanitized name.
A fluent-lint exception is added for the capitalization of these generated names.
To allow for message updates and subsequent l10n identifier updates,
a `PERMISSION_L10N_ID_OVERRIDES` map is provided.
Because Fluent localization keys are not enumerable
and attempting to format a missing key is an error,
the `PERMISSIONS_WITH_MESSAGE` set must be kept in sync with message updates.
Differential Revision: https://phabricator.services.mozilla.com/D158663
Use a new executable for the GMP process named "<App Name> Media Plugin Helper" so that the content processes (using the plugin-container executable) and the GMP process can be signed with different entitlements allowing for the use of more secure entitlements.
To get the benefits of using a new executable for GMP, additional changes are needed in the codesigning infrastructure repo to enable signing plugin-container and the new executable with a reduced set of entitlements.
The executable is built as media-plugin-helper and then renamed to "<App Name> Media Plugin Helper" so it appears with a user friendly name in Activity Monitor. For example, "Firefox Media Plugin Helper". (The GMP process runs with limited privileges preventing it from setting its own "nice" process name.)
Limit the change to Nightly at this time to allow validation of using a new executable and then enabling the strong entitlements.
Differential Revision: https://phabricator.services.mozilla.com/D175796
The Fluent migration will show a diff for two en-US messages:
- `popup-warning-message` singular variant does not include `{ $popupCount }`, so is more appropriately using `1` rather than `one` as its key.
- `popup-warning-exceeded-message` has only one variant in English, but using the plural selector forces its use for new locales.
Differential Revision: https://phabricator.services.mozilla.com/D177666
Because the preprocessor handles both comments in the form of
# some comment
And commands in the form of
#some command
And due to C preprocessor heritage, people tend to write
# some command
which is considered a comment and not a command. Detect this situation
and generate an hard error when meeting such ambiguous commands.
Differential Revision: https://phabricator.services.mozilla.com/D176912
The five strings used by the component are collected into one new file.
The dropped `menuUndoCloseWindowSingleTabLabel` is the same in all locales,
so it was easier to recreate its contents in the custom Fluent migration transform.
Differential Revision: https://phabricator.services.mozilla.com/D177614
The l10n migration shows a diff, as the singular form of the en-US source string is more appropriately categorized as `1` rather than `one` due to its lack of a `{ $tabCount }` reference.
Differential Revision: https://phabricator.services.mozilla.com/D177612
The Fluent migration script for this will show a diff,
as the en-US source includes a plural selector with only one variant.
This is intentional, as it'll make new localizations use a plural editor.
Differential Revision: https://phabricator.services.mozilla.com/D177605
Because the preprocessor handles both comments in the form of
# some comment
And commands in the form of
#some command
And due to C preprocessor heritage, people tend to write
# some command
which is considered a comment and not a command. Detect this situation
and generate an hard error when meeting such ambiguous commands.
Differential Revision: https://phabricator.services.mozilla.com/D176912