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

Disable FCM (Firebase Cloud Messaging) #2143

Closed
pilgrim-brave opened this issue Nov 14, 2018 · 12 comments · Fixed by brave/brave-core#908
Closed

Disable FCM (Firebase Cloud Messaging) #2143

pilgrim-brave opened this issue Nov 14, 2018 · 12 comments · Fixed by brave/brave-core#908
Assignees
Labels
audit-non-blocking privacy/connect This requires making a network connection to a third-party service. QA/No release-notes/exclude

Comments

@pilgrim-brave
Copy link

FCM (Firebase Cloud Messaging) is the successor to GCM (Google Cloud Messaging), which was disabled in #1716

Public-facing documentation: https://firebase.google.com/docs/cloud-messaging/

As far as Chromium code is concerned, all messages are routed through Google servers, as per https://firebase.google.com/docs/cloud-messaging/server

FCM is used internally in Chromium for syncing bookmarks and other things, but it is also general purpose push messaging system which is available to untrusted JavaScript web applications, as per https://firebase.google.com/docs/cloud-messaging/js/client

We should disable all FCM support.

@pilgrim-brave pilgrim-brave self-assigned this Nov 14, 2018
@pilgrim-brave pilgrim-brave added the privacy/connect This requires making a network connection to a third-party service. label Nov 14, 2018
@pilgrim-brave pilgrim-brave added this to the 1.x Backlog milestone Nov 14, 2018
pilgrim-brave added a commit to brave/brave-core that referenced this issue Nov 14, 2018
@pilgrim-brave pilgrim-brave added this to P3, P4, & P5 Backlog in Network Audit Nov 14, 2018
@pilgrim-brave pilgrim-brave moved this from P3, P4, & P5 Backlog to In Progress in Network Audit Nov 14, 2018
@pilgrim-brave pilgrim-brave moved this from In Progress to Pending review in Network Audit Nov 14, 2018
Network Audit automation moved this from Pending review to Completed Nov 15, 2018
@pilgrim-brave pilgrim-brave modified the milestones: 1.x Backlog, 0.59.x - Nightly Nov 15, 2018
@felschr
Copy link

felschr commented Mar 18, 2019

I'm kinda confused. I've recently implemented FCM on a website of mine and the push notifications are working in Chrome, Firefox & Edge but not in Brave.
Do these changes prevent Brave from receiving push messages from FCM or even from using the Push API in general?

Or is there just a different configuration required?
I'm using the firebase client library and found that the following promise does not complete:

return swRegistration.pushManager.subscribe({
    userVisibleOnly: true,
    applicationServerKey: publicVapidKey
});

The promise is always stuck in status pending. In the other mentioned browsers it works.

UPDATE: Just tested this on Brave for Android and it's working over there.

@pilgrim-brave
Copy link
Author

Brave on desktop does not support FCM. Brave on Android will stop supporting it in the future.

@felschr
Copy link

felschr commented Mar 18, 2019

What about the Push API?

@diracdeltas
Copy link
Member

@pilgrim-brave since we're getting a bunch of complaints about notifications apparently not working in brave, how hard is it to re-enable FCM but without direct connections to G? (either via a Brave proxy like we do with safebrowsing/etc. or just running our own FCM server)

@diracdeltas
Copy link
Member

for reference, mozilla runs their own push service for firefox https://support.mozilla.org/en-US/kb/push-notifications-firefox

@pilgrim-brave
Copy link
Author

I don't know offhand. FCM server is not open source. I'm not sure what Mozilla is using on the server side.

@juliusza
Copy link

I want to point out that we use FCM to push real time alerts to our customers (not adds). We choose to use google infrastructure to host all our content, so FCM is a natural choice to distribute messages without much development overhead. Even with the shields down the FCM is not available, which will leave users wondering why feature does not work with brave.

In general, I see the trend here is "disable X - it's used to track" including important browser features like sendBeacon(). Please consider implications of disabling/blocking things and also make it transparent to users to what exactly is blocked. Until then I can only stop using brave as my default browser.

@mlncstr
Copy link

mlncstr commented Sep 6, 2019

After a few hours of frustration... at least I have an explanation.

@davidzwa
Copy link

davidzwa commented Dec 8, 2019

It's one thing that this feature is disabled, it's another thing that it so hard to find information on this. As developer you're basically left to your own devices when the console presents you with 'Push Service not registered'.

Ok, so there's a switch in settings to re-enable Google Messaging on Brave-dev. Ok, you really don't want us to use this in production. So, what alternative do you propose us to use?
Angular, Background Workers, what would we be able use? Enlighten us, please.

MQTT, AMQP, I dont care. Something.

@bsclifton
Copy link
Member

cc: @rebron

There's a potential for this and similar features (ex: Remote Debugging) to present an infobar or other mechanism to point out that something was blocked (and that there is a corresponding setting in brave://settings to enable)

@bsclifton
Copy link
Member

also see #2408 - this is a case where it would be great to have a visual indicator that functionality is being impaired

@shadow1349
Copy link

shadow1349 commented Nov 25, 2020

I'm not sure why, but blocking FCM has also broken Firebase Callable Functions in Angular. Here's a comment I made for it:

angular/angularfire#2475 (comment)

I don't think there is much the Angular team can do to fix it since it seems the issue is on Brave itself. Now my whole app is broken in Brave since I rely on callable functions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
audit-non-blocking privacy/connect This requires making a network connection to a third-party service. QA/No release-notes/exclude
Projects
No open projects
Network Audit
  
Completed
Development

Successfully merging a pull request may close this issue.

9 participants