mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 15:23:51 +00:00
f7cb13e745
When the notification server callback is executed by the Windows notification system, it invokes Firefox with additional command line parameters, most importantly the Windows-specific notification "Windows tag". If no appropriate Firefox is running, the command line will be processed, the provided Windows tag will be inspected (and seen to not be registered with this running Firefox instance) and a "launch URL" stored as part of the Windows notification itself opened (if one is provided). If an appropriate Firefox is running, the remoting protocol will forward this command line to the running instance. If the instance recognizes the provided `--notification-windowsTag`, the command line will be ignored. When the notification server exits, Windows will fallback to the Windows 8.1 style notification callbacks registered for this Windows tag and the existing (non notification server) behaviour will occur. In fact, the server therefore waits for a Windows tag-specific system event to be signalled by the invoked Firefox (or a sibling process). If we were to return `S_OK` from the notification server immediately, and a running Firefox process would handle the notification via Windows 8.1-style notification callbacks, then Windows would fall back to those callbacks. The invoked callbacks unregister themselves upon completion, often before the launched Firefox has an opportunity to process the command line. By waiting for this system event, we allow the invoked Firefox to process the command line while its own notification callbacks are registered and therefore recognize that its callbacks will handle the notification. Differential Revision: https://phabricator.services.mozilla.com/D154468 |
||
---|---|---|
.. | ||
actors | ||
components | ||
content | ||
crashreporter | ||
docs | ||
library | ||
locales | ||
modules | ||
mozapps | ||
profile | ||
system | ||
themes | ||
xre | ||
.eslintrc.js | ||
l10n-registry.manifest | ||
moz.build | ||
moz.configure | ||
toolkit.mozbuild |