rollbar.js icon indicating copy to clipboard operation
rollbar.js copied to clipboard

Logging errors to rollbar from service worker script in chrome extension with manifest v3 does not work

Open tan-linx opened this issue 3 years ago • 2 comments

Logging errors to rollbar from the service worker script within a chrome extension does not work. Does anyone have the same issues regarding building a chrome extension with manifest v3 and has found a solution?

We investigated this issue but didn't get further. In manifest v3, instead of background pages, service workers are used which don't have access to the DOM. But it seems like rollbar still depends on the window global #141. The UMD version of Rollbar didn't fix this issue. Therefore it might also be related to updated security configurations?

tan-linx avatar Aug 04 '22 13:08 tan-linx

I'm having similar problems:

  • the snippet included in the example doesn't work because it uses window like you've mentioned
  • the rollbar package from npm doesn't work either because the transport logic throws Error: No way to send a request.
No way to send a request
    at a (transport.js:120:21)
    at s (transport.js:91:18)
    at i.post (transport.js:62:3)
    at s.postItem (api.js:52:18)
    at o._makeApiRequest (queue.js:159:14)
    at o.addItem (queue.js:99:10)
    at o.<anonymous> (notifier.js:81:16)
    at s (notifier.js:111:7)
    at Array.itemToPayload (transforms.js:18:3)
    at s (notifier.js:115:16) undefined
telemetry.js:518 

peter-unify avatar Aug 06 '22 11:08 peter-unify

As I understand for now is that rollbarjs uses XMLHttpRequest method which is not allowed in service worker scripts as of chrome manifest version 3. It should use new fetch API.

https://github.com/rollbar/rollbar.js/blob/c2c5310df90cdefcb8cfe8142377a4ee3987796b/dist/rollbar.js#L3452

agendfuture avatar Aug 09 '22 13:08 agendfuture

Thank you for these reports. We're working on this and aiming to have a release by Nov 30.

waltjones avatar Nov 16 '22 02:11 waltjones

@waltjones That's great to hear, also ran into this blocker with our MV3 chrome extension.

In the meantime, others may be able to workaround this by using apple502j/xhr-shim to "polyfill" XHR back into your service worker.

jccr avatar Nov 23 '22 22:11 jccr

This has been released now in v2.26.0.

waltjones avatar Nov 30 '22 19:11 waltjones