IPC has been deprecated, Mojo is the way to go, so we should move Notifications over to use Mojo instead.
This also gives us the opportunity to remove some intermediate layers and define the API in Blink, allowing it to be shared across the board.
Based on conversation with Noel: we're now using RendererInterfaceBinders for making the browser process authoritative about the origin (#c23), which is much better, but there is a known race condition for non-sync Mojo calls.
It's OK to continue development behind a flag, but we shouldn't enable the new Mojo-based code path by default until Issue 729021 has been fixed. Balazs (engedy@) is actively working on that.
> we're now using RendererInterfaceBinders for making the browser process authoritative about the origin (#c23), which is much better, but there is a known race condition for non-sync Mojo calls.
Yeap. The race potential is that the Origin is read on the browser-side, instead of using the Origin provided by the renderer in the API request.
Note that if you do need to move ahead, and not worry about issue 729021 for now, there's a subtle way to use RendererInterfaceBinders (RIB) for the non-sync case that sammc@ recommended.
- move your stuff into RIB
- but leave the Origin on the API (so no change in behavior)
- add a TODO to remove the Origin from the API later
HTH.
Splitting out two sub-issues of this bug:
1. Non persistent notifications (in progress) - Issue 796990
2. Persistent notifications (not started) - Issue 796991
Comment 1 by miguelg@chromium.org
, Mar 17 2016