1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-06 11:43:51 +00:00

docs(notification-processing): [PM-19877] System Notification Implementation - Added markdown document.

This commit is contained in:
Patrick Pimentel
2025-07-22 15:24:10 -04:00
parent 72d22128b2
commit 67415a9d70
3 changed files with 40 additions and 21 deletions

View File

@@ -60,8 +60,6 @@ export class BrowserSystemNotificationService implements SystemNotificationsServ
break;
case DeviceType.FirefoxExtension:
this.logService.info("Creating firefox notification");
await browser.notifications.create(createInfo.id, {
iconUrl: "https://avatars.githubusercontent.com/u/15990069?s=200",
message: createInfo.title,

View File

@@ -0,0 +1,40 @@
# Platform Actions API
## ActionsService.openPopup()
This document outlines the current behavior of `ActionsService.openPopup()` across different browsers, specifically in two contexts:
- **Window Context**: When the call is triggered from an active browser window (e.g., from a tab's script).
- **Background Service Worker Context**: When the call is made from a background context, such as a service worker.
The `openPopup()` method has limitations in some environments due to browser-specific restrictions or bugs. Below is a compatibility chart detailing the observed behavior.
---
## Compatibility Table
| Browser | Window Context | Background Service Worker Context |
| ------- | ------------------- | --------------------------------- |
| Safari | ✅ Works | ❌ Fails |
| Firefox | ❌ Fails | ❌ Fails |
| Chrome | ✅ Works | ✅ Works |
| Edge | 🟡 Untested | 🟡 Untested |
| Vivaldi | ⚠️ Ambiguous (Bug?) | ⚠️ Ambiguous (Bug?) |
| Opera | ✅ Works | ❌ Fails silently |
---
## Notes
- **Safari**: Only works when `openPopup()` is triggered from a window context. Attempts from background service workers fail.
- **Firefox**: Does not appear to support `openPopup()` in either context.
- **Chrome**: Fully functional in both contexts.
- **Edge**: Behavior has not been tested.
- **Vivaldi**: `openPopup()` results in an error that _might_ be related to running in a background context, but the cause is currently unclear.
- **Opera**: Works from window context. Background calls fail silently with no error message.
---
## Summary
When implementing `ActionsService.openPopup()`, prefer triggering it from a window context whenever possible to maximize cross-browser compatibility. Full background service worker support is only reliable in **Chrome**.

View File

@@ -1,25 +1,6 @@
export abstract class ActionsService {
/**
* Opens the popup if it is supported.
*
* --- Limitations ---
*
* These are conditions that work where can open a popup programmatically from:
*
* Safari Web Browser -> Safari Extension
* - Requires gesture
* Chrome Web Browser -> Chrome Extension
* Chrome Extension Service Worker -> Chrome Extension
*
* These are conditions that are known to not work:
* Firefox Web Browser -> Firefox Extension
* Vivaldi Extension Background Service Worker -> Vivaldi Extension
* Safari Extension Background Service Worker -> Safari Extension
* Firefox Extension Background Service Worker -> Firefox Extension
* Opera Extension Background Service Worker -> Opera Extension
*
* These are unknown conditions:
* Edge
*/
abstract openPopup(): Promise<void>;
}