Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fix] Remove soft-prompt in Notifications.requestPermission #1101

Merged
merged 1 commit into from Aug 25, 2023

Conversation

jkasten2
Copy link
Member

@jkasten2 jkasten2 commented Aug 23, 2023

Description

One Line Summary

Developers who call OneSignal.Notifications.requestPermission() already take the browser's requirement for a user gesture into account want to directly show the native notification permission prompt so we are removing the conditional soft-prompt.

Details

Some developers want to directly display the native notification permission prompt. However we were trying to detect if a user interaction was required without considering if the developer already met it.

There isn't a browser API to detect if the user interaction was met at either the global level or stacktrace to detect this for them. There also isn't any errors thrown or returned to show one as a fallback either. We don't want to require a parameter so instead simply just always attempt to show the native prompt.

Validation

Tests

Tested on Windows 11 22H2 on Firefox 102.14.0esr.

Info

Checklist

  • All the automated tests pass or I explained why that is not possible
  • I have personally tested this on my machine or explained why that is not possible
  • I have included test coverage for these changes or explained why they are not needed

Programming Checklist
Interfaces:

  • Don't use default export
  • New interfaces are in model files

Functions:

  • Don't use default export
  • All function signatures have return types
  • Helpers should not access any data but rather be given the data to operate on.

Typescript:

  • No Typescript warnings
  • Avoid silencing null/undefined warnings with the exclamation point

Other:

  • Iteration: refrain from using elem of array syntax. Prefer forEach or use map
  • Avoid using global OneSignal accessor for context if possible. Instead, we can pass it to function/constructor so that we don't call OneSignal.context

Screenshots

Info

Checklist

  • I have included screenshots/recordings of the intended results or explained why they are not needed

Related Tickets

Fixes #1098


This change is Reviewable

Developers want to directly display the native notification permission
prompt. However we were trying to detect if a user interaction was
required without considering if the developer already met it.

There isn't a browser API to detect if the user interaction was met
at either the global level or stacktrace to detect this for them. There
also isn't any errors thrown or returned to show one as a fallback either.
We don't want to require a parameter so instead simply just always attempt
to show the native prompt.
@jkasten2 jkasten2 changed the title rm soft-prompt in Notifications.requestPermission [Fixe] Remove soft-prompt in Notifications.requestPermission Aug 23, 2023
@jkasten2 jkasten2 changed the title [Fixe] Remove soft-prompt in Notifications.requestPermission [Fix] Remove soft-prompt in Notifications.requestPermission Aug 23, 2023
@jkasten2 jkasten2 merged commit 5eca501 into main Aug 25, 2023
2 checks passed
@jkasten2 jkasten2 deleted the fix/notification_request_permission_rm_soft_prompt branch August 25, 2023 20:39
@jkasten2 jkasten2 mentioned this pull request Sep 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: Firefox always shows soft-prompt when calling Notifications.requestPermission()
2 participants