Closed Bug 1216309 Opened 5 years ago Closed 5 years ago

Debugger fails to open additional scripts in Service Worker toolbox.

Categories

(DevTools :: Debugger, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: janx, Assigned: ejpbruel)

References

(Blocks 1 open bug)

Details

Steps to reproduce:

1. Go to https://simple-push-demo.appspot.com/ and Enable Push Notifications (for some reason, Firefox wants you to "Always Allow" or "Always Reject", I don't see a "Allow Just Now").
2. Open another tab for about:debugging#workers. The SW "https://simple-push-demo.appspot.com/service-worker.js" should be listed.
3. Click on "Debug" next to it.

Expected: A toolbox opens with a working Debugger.

Actually: A toolbox opens with an empty Debugger showing "Error loading this URL: /scripts/indexdbwrapper.js"

Full error log:

> EMITTING: emit(connectionchange, opened, [object Object]) from undefined() -> undefined
> EMITTING: emit(newGlobal, [object Object]) from undefined() -> undefined
> DevToolsUtils.dbg_assert is deprecated! Use DevToolsUtils.assert instead!
> dbg_assert@resource://gre/modules/devtools/shared/DevToolsUtils.js:449:13
> ThreadActor.prototype._paused@resource://gre/modules/devtools/server/actors/script.js:1528:1
> ThreadActor.prototype.onAttach@resource://gre/modules/devtools/server/actors/script.js:644:20
> @resource://gre/modules/devtools/server/worker.js:84:5
> EventListener.handleEvent*@resource://gre/modules/devtools/server/worker.js:40:1
> EMITTING: emit(newSource, [object Object]) from undefined() -> undefined
> EMITTING: emit(newSource, [object Object]) from undefined() -> undefined
> SourceActor threw an exception: [object Object]
> DBG-SERVER: Got an exception during SA_onSource: undefined:
> undefined

Eddy, any thoughts on this issue?
Flags: needinfo?(ejpbruel)
Component: Developer Tools: about:debugging → Developer Tools: Debugger
I'm not sure what's causing this. I will put looking into this on my todo list, but my priority for the time being is to implement service worker discovery.
Assignee: nobody → ejpbruel
Flags: needinfo?(ejpbruel)
This is blocking Push Service Workers, and Eddy is very busy with other Service Worker stuff.

Nick, do you think you could have a quick look at this debugger issue? I'd like us to at least have a better understanding of where the problem might be.
Flags: needinfo?(nfitzgerald)
I'll take a look.
Flags: needinfo?(nfitzgerald)
(In reply to Jan Keromnes [:janx] from comment #0)
> Steps to reproduce:
> 
> 1. Go to https://simple-push-demo.appspot.com/ and Enable Push Notifications
> (for some reason, Firefox wants you to "Always Allow" or "Always Reject", I
> don't see a "Allow Just Now").
> 2. Open another tab for about:debugging#workers. The SW
> "https://simple-push-demo.appspot.com/service-worker.js" should be listed.

I don't get the service worker listed here. I tried refreshing both about:debugging and the demo page. I tried sending a push notification with the curl command on the demo page. The script never showed up in the service workers section in about:debugging.
Nick, thanks a lot for looking into this.

You might have e10s enabled, that's why you don't see the service worker (Alex fixes that issue in bug 1225473). Please either apply Alex's patch, or disable e10s, to be able to reproduce this issue.
Depends on: 1225473
Flags: needinfo?(nfitzgerald)
FYI, I'm on vacation all this week, so won't be able to look into this until the next week.
Flags: needinfo?(nfitzgerald)
Flags: needinfo?(nfitzgerald)
Hum. It is working for me on Nightly?

Jan, could you give it another try?
And may be write a test against this?
Hmm, actually the problem is not with Push Service Workers, but with additional scripts in a Service Worker.

The STR in comment 0 are still valid, except:

> Actually: A toolbox opens with an empty Debugger showing "Error loading this URL: /scripts/indexdbwrapper.js"

New Actually: A toolbox opens with a Debugger that lists the file "indexdbwrapper.js", but is unable to open it (if you try, it breaks showing "Error loading this URL: /scripts/indexdbwrapper.js").

The error log still shows:

> EMITTING: emit(newSource, [object Object]) from undefined() -> undefined
> EMITTING: emit(newSource, [object Object]) from undefined() -> undefined
> SourceActor threw an exception: [object Object]
> DBG-SERVER: Got an exception during SA_onSource: undefined:
> undefined

My guess is that the Debugger tries to directly access the URI "/scripts/indexdbwrapper.js" instead of accessing the full URL "https://simple-push-demo.appspot.com/scripts/indexdbwrapper.js".
Blocks: sw-devtools
No longer blocks: 1209699, 1214248
Summary: Impossible to debug Push Service Worker in about:debugging. → Debugger fails to open additional scripts in Service Worker toolbox.
For some reason, this issue stopped reproducing on the latest mozilla-central. I guess that's good news!
Status: NEW → RESOLVED
Closed: 5 years ago
Flags: needinfo?(nfitzgerald)
Resolution: --- → FIXED
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.