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 browser notification permission request logic #13543

Merged
merged 4 commits into from
Oct 12, 2020

Conversation

ClearlyClaire
Copy link
Contributor

@ClearlyClaire ClearlyClaire commented Apr 24, 2020

Issue

Up until now, the notification permission was requested by Mastodon after a random amount of time within the first 2 minutes of running it, which, in addition to being unpleasant and not very predictable, does not work on Firefox anymore, because it now requires the request to be a result of user interaction.

Proposed changes

  • Add some code to track the state of the permission (since it can be changed at any moment by the user)
    Note: this does not always work, as for some reason, Firefox does not report “prompt” states and report them as “granted” instead (with no change event between the two)
  • Request permission whenever the user manually turns on a alert setting that was off (partially done, error message missing when the permission is denied)
    Peek 25-04-2020 00-40
    Peek 25-04-2020 14-29
  • Add a red badge to the notification column's settings button whenever the permissions aren't sufficient to honor the selected settings
    Peek 25-04-2020 14-53
    Peek 25-04-2020 14-54
  • Add the same red badge on the notification icon in navigation panels/tabs when the notification column isn't mounted
  • Request notification permission at the end of the tutorial, and set the settings according to the response, instead of requesting permissions within two minutes of runtime
    Peek 25-04-2020 15-10

Other things to investigate

  • Does the push notifications have the same issues?

@ClearlyClaire ClearlyClaire force-pushed the fixes/notifications-request branch from aa80a17 to b36b8e9 Compare April 24, 2020 22:49
@ClearlyClaire ClearlyClaire force-pushed the fixes/notifications-request branch 2 times, most recently from 103e9b4 to dff239b Compare April 25, 2020 13:15
@ClearlyClaire ClearlyClaire marked this pull request as ready for review April 25, 2020 13:15
@ClearlyClaire
Copy link
Contributor Author

Implemented everything I planned to. However, I have not checked whether push notifications are currently properly handled, but I can do that in the future if the approach proposed here is accepted.

@ClearlyClaire ClearlyClaire force-pushed the fixes/notifications-request branch from dff239b to cc48ca4 Compare April 26, 2020 08:49
@ClearlyClaire ClearlyClaire requested a review from Gargron April 27, 2020 12:11
@stale
Copy link

stale bot commented Aug 25, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the status/wontfix This will not be worked on label Aug 25, 2020
@ClearlyClaire
Copy link
Contributor Author

Ping @Gargron

@stale stale bot removed the status/wontfix This will not be worked on label Aug 25, 2020
@ClearlyClaire ClearlyClaire force-pushed the fixes/notifications-request branch from cc48ca4 to c482fc2 Compare September 30, 2020 17:06
@ClearlyClaire
Copy link
Contributor Author

Rebased on master.

@Gargron Gargron merged commit f54ca3d into mastodon:master Oct 12, 2020
mashirozx added a commit to mashirozx/mastodon that referenced this pull request Oct 16, 2020
* Bump babel-jest from 26.3.0 to 26.5.2 (mastodon#14945)

Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 26.3.0 to 26.5.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v26.5.2/packages/babel-jest)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @github/webauthn-json from 0.5.5 to 0.5.6 (mastodon#14946)

Bumps [@github/webauthn-json](https://github.com/github/webauthn-json) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/github/webauthn-json/releases)
- [Commits](github/webauthn-json@v0.5.5...v0.5.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump sass from 1.26.11 to 1.26.12 (mastodon#14947)

Bumps [sass](https://github.com/sass/dart-sass) from 1.26.11 to 1.26.12.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](sass/dart-sass@1.26.11...1.26.12)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint-plugin-react from 7.21.2 to 7.21.3 (mastodon#14950)

Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.21.2 to 7.21.3.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](jsx-eslint/eslint-plugin-react@v7.21.2...v7.21.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump mini-css-extract-plugin from 0.11.0 to 0.11.3 (mastodon#14949)

Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.11.0 to 0.11.3.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](webpack-contrib/mini-css-extract-plugin@v0.11.0...v0.11.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump jest from 26.4.2 to 26.5.2 (mastodon#14951)

Bumps [jest](https://github.com/facebook/jest) from 26.4.2 to 26.5.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](jestjs/jest@v26.4.2...v26.5.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint from 7.6.0 to 7.10.0 (mastodon#14948)

Bumps [eslint](https://github.com/eslint/eslint) from 7.6.0 to 7.10.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](eslint/eslint@v7.6.0...v7.10.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* update themes

* Remove dependency on goldfinger gem (mastodon#14919)

There are edge cases where requests to certain hosts timeout when
using the vanilla HTTP.rb gem, which the goldfinger gem uses. Now
that we no longer need to support OStatus servers, webfinger logic
is so simple that there is no point encapsulating it in a gem, so
we can just use our own Request class. With that, we benefit from
more robust timeout code and IPv4/IPv6 resolution.

Fix mastodon#14091

* Fix unread notification marker not updating when mounting column (mastodon#14954)

* Fix issue checking for last unread notification when there are gaps (mastodon#14960)

* add & fix themes

* update theme

* fix theme

* fix theme

* Add IP-based rules (mastodon#14963)

* Fix browser notification permission request logic (mastodon#13543)

* Add notification permission handling code

* Request notification permission when enabling any notification setting

* Add badge to notification settings when permissions insufficient

* Disable alerts by default, requesting permission and enable them on onboarding

* Add duration parameter to muting. (mastodon#13831)

* Adding duration to muting.

* Remove useless checks

* helm: add optional cron job to run `tootctl remove media` (mastodon#14396)

* Change how CDN_HOST is passed down to make assets build reproducible (mastodon#14381)

* Change how CDN_HOST is passed down to make assets build reproducible

* Change webpacker/webpack configuration to dynamically load publicPath based on meta header

* Fix embedded layout missing the cdn-host meta header

* Bump compression-webpack-plugin from 6.0.2 to 6.0.3 (mastodon#14979)

Bumps [compression-webpack-plugin](https://github.com/webpack-contrib/compression-webpack-plugin) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/webpack-contrib/compression-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/compression-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](webpack-contrib/compression-webpack-plugin@v6.0.2...v6.0.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump sass-loader from 10.0.2 to 10.0.3 (mastodon#14977)

Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 10.0.2 to 10.0.3.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](webpack-contrib/sass-loader@v10.0.2...v10.0.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump imports-loader from 1.1.0 to 1.2.0 (mastodon#14976)

Bumps [imports-loader](https://github.com/webpack-contrib/imports-loader) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/webpack-contrib/imports-loader/releases)
- [Changelog](https://github.com/webpack-contrib/imports-loader/blob/master/CHANGELOG.md)
- [Commits](webpack-contrib/imports-loader@v1.1.0...v1.2.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump tzinfo-data from 1.2020.1 to 1.2020.2 (mastodon#14966)

Bumps [tzinfo-data](https://github.com/tzinfo/tzinfo-data) from 1.2020.1 to 1.2020.2.
- [Release notes](https://github.com/tzinfo/tzinfo-data/releases)
- [Commits](tzinfo/tzinfo-data@v1.2020.1...v1.2020.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump rubocop from 0.92.0 to 0.93.0 (mastodon#14967)

Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.92.0 to 0.93.0.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](rubocop/rubocop@v0.92.0...v0.93.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump file-loader from 6.1.0 to 6.1.1 (mastodon#14974)

Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 6.1.0 to 6.1.1.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](webpack-contrib/file-loader@v6.1.0...v6.1.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint-plugin-react from 7.21.3 to 7.21.4 (mastodon#14968)

Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.21.3 to 7.21.4.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](jsx-eslint/eslint-plugin-react@v7.21.3...v7.21.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump terser-webpack-plugin from 4.2.2 to 4.2.3 (mastodon#14971)

Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 4.2.2 to 4.2.3.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](webpack-contrib/terser-webpack-plugin@v4.2.2...v4.2.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint from 7.10.0 to 7.11.0 (mastodon#14975)

Bumps [eslint](https://github.com/eslint/eslint) from 7.10.0 to 7.11.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](eslint/eslint@v7.10.0...v7.11.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump sass from 1.26.12 to 1.27.0 (mastodon#14973)

Bumps [sass](https://github.com/sass/dart-sass) from 1.26.12 to 1.27.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](sass/dart-sass@1.26.12...1.27.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump jest from 26.5.2 to 26.5.3 (mastodon#14969)

Bumps [jest](https://github.com/facebook/jest) from 26.5.2 to 26.5.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](jestjs/jest@v26.5.2...v26.5.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix a bear check when the activity object is nil (mastodon#14981)

* Change how missing desktop notifications permission is displayed (mastodon#14985)

Add missing controls for new notification type

* Fix strings that could not be translated (mastodon#14980)

* Fix translation string (mastodon#14986)

* update theme

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
Co-authored-by: ThibG <thib@sitedethib.com>
Co-authored-by: OSAMU SATO <satosamu@gmail.com>
Co-authored-by: Alex Dunn <dunn.alex@gmail.com>
Co-authored-by: Takeshi Umeda <noel.yoshiba@gmail.com>
Co-authored-by: mayaeh <mayaeh@marimo-net.org>
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.

3 participants