Skip to content

Repository files navigation

phpBB Browser Push Notifications

This is the repository for the development of the phpBB Browser Push Notifications extension.

Build Status codecov

An official phpBB extension that allows board users to receive browser-based push notifications.

Important: Only official release versions validated by the phpBB Extensions Team should be installed on a live forum. Pre-release (beta, RC) versions downloaded from this repository are only to be used for testing on offline/development forums and are not officially supported.

Contributing

Please fork this repository and submit a pull request to contribute to this extension.

To run this extension from the repo (and not from a pre-built package) on a local server, perform the following tasks:

  • Fork phpbb-extensions/webpushnotifications to your GitHub account, then create a local clone of it:
    git clone https://github.com/your_github_name/webpushnotifications.git
  • Install this extension's dependencies (from the root of your webpushnotifications repo):
    cd webpushnotifications # navigate into the root of your webpushnotifications repo
    php composer.phar install # installs extension's 3rd-party dependencies 
  • Install the extension to your local phpBB forum by moving your local repo to the proper phpBB directory:
    cd ../ # back out one directory level
    mv webpushnotifications path_to_phpBB/ext/phpbb # move webpushnotifications to your phpBB/ext/phpbb directory
    cd path_to_phpBB # navigate to your phpBB forum's root directory
    php bin/phpbbcli.php extension:enable phpbb/webpushnotifications # install the extension

Browser Support

The table covers current stable browsers using the standards-based Push API, Notifications API, and Service Workers. “Background delivery” means delivery when the site is not open. A fully quit desktop browser is called out separately. Last reviewed September 2026.

Web browser Platform Web Push support Background delivery
Google Chrome Windows, macOS, Linux ✅ Yes ⚠️ Only while Chrome or its background process is running
ChromeOS ✅ Yes ✅ Yes, while the device is running
Android ✅ Yes ✅ Yes, unless the app is force-stopped or background activity is restricted
Safari macOS Ventura or later (Safari 16.1+) ✅ Yes ✅ Yes, even when Safari is not running
Microsoft Edge Windows, macOS, Linux ✅ Yes ✅ Yes, subject to browser and OS background settings
Android ✅ Yes ✅ Yes, unless the app is force-stopped or background activity is restricted
Mozilla Firefox Windows, macOS, Linux ✅ Yes ❌ No after Firefox is fully quit
Android ✅ Yes ✅ Yes, unless the app is force-stopped or background activity is restricted
Opera Windows, macOS, Linux ✅ Yes ⚠️ Only while Opera or its background process is running
Android ✅ Yes ✅ Yes, unless the app is force-stopped or background activity is restricted
Samsung Internet Android ✅ Yes ✅ Yes, unless the app is force-stopped or background activity is restricted
Home Screen web app iOS/iPadOS 16.4+ ✅ Yes, after installation to the Home Screen ✅ Yes
Opera Mini Mobile ❌ No ❌ No

On iOS and iPadOS, Web Push is not available to a normal browser tab. It belongs to an installed Home Screen web app and works regardless of which browser added that app to the Home Screen. The extension provides the required standalone web app manifest. Notification permission must be requested from a direct user interaction.

All supported platforms require user permission and a secure context (https://, with http://localhost allowed for development). Private browsing, enterprise policy, notification settings, Focus/Do Not Disturb modes, power-saving features, and OS background restrictions can prevent delivery.

References: Push API compatibility, Push API, Web Push on iOS and iPadOS, Web Push on macOS, Edge website notifications, and Firefox Web Push notifications.

Testing Push Notifications

Testing push notifications necessitates user-to-user interactions to observe the notification behavior accurately. Follow the steps outlined below to effectively test push notifications (the browser recommendations are what we have seen work in local environments):

  1. User Account Setup:

    • Create at least two distinct board user accounts for testing purposes.
    • Using Google Chrome, visit UCP -> Board Preferences -> Edit notification options for User Account 1 and enable Push Notifications (and enable all web push notification types if necessary). Your browser may ask you to allow notifications, which you should accept. Leave Chrome open and running the background.
  2. Message, Quote, or Reply Interaction:

    • Initiate a user-to-user interaction by performing one of the following actions using User Account 2 in separate browser such as Firefox, Edge or Safari:
      • Private Message: Send a direct message from User Account 2 to User Account 1.
      • Quote: Quote a post or message authored by User Account 1 using User Account 2.
      • Reply: Respond to a post or message authored by User Account 1 using User Account 2.
  3. Observing Push Notifications:

    • Once the interaction is performed from User Account 2 to engage with User Account 1, you promptly should see a notification from Google Chrome for User Account 1.
  4. Caveats for Local Testing

    • Local testing of Push Notifications only works from a http://localhost address or if your local test server has a secure SSL certificate, e.g.: https://local.phpbb.board.
    • Depending on your local server's setup, operating system, and browsers, it is still possible that testing push notifications may not work (for example, in a local environment running on macOS, only Chrome will show notifications).

License

GNU General Public License v2

About

Enables Browser Push Notifications for your phpBB forum

Resources

Stars

4 stars

Watchers

9 watching

Forks

Releases

Contributors

Languages