Open Bug 1919109 Opened 1 year ago Updated 6 months ago

Wrap each push backend as XPCOM component

Categories

(Core :: DOM: Push Subscriptions, task)

task

Tracking

()

People

(Reporter: saschanaz, Assigned: saschanaz)

References

Details

Currently it's all JS modules and that makes it impossible to have a system compatible with Android.

We already somehow have backend system for http2 (which should be removed)/websocket, we should be able to wrap it into XPCOM component.

We need to make sure the existing Android component can also fit into XPCOM one.

(In reply to Kagami Rosylight [:saschanaz] (they/them) from comment #0)

Currently it's all JS modules and that makes it impossible to have a system compatible with Android.

I don't think this is really true -- JS modules are pretty flexible -- but I think there is a deeper truth, which is that we have a well-understood way to let implementations vary between Gecko applications and it's not JS modules, it's XPCOM.

We already somehow have backend system for http2 (which should be removed)/websocket, we should be able to wrap it into XPCOM component.

We need to make sure the exitsing Android component can also fit into XPCOM one.

The key distinction is that Android is an "autopush bridge" implementation, meaning that a "last mile router" like FCM or APNS delivers message to devices rather than Gecko keeping a socket of some description open.

Assignee: nobody → krosylight

Marking bug 1874394 as the blocker as I don't feel confident to do anything without a good test.

Depends on: 1874394

But to run any test in WPT we need to make sure it doesn't hit the mozilla push server but a local mock service (to prevent external network communication which deliberately causes crash in any testing environment). That would need this refactoring? 🤔

Depends on: 1925306
See Also: → 1802846
You need to log in before you can comment on or make changes to this bug.