Closed Bug 987369 Opened 10 years ago Closed 10 years ago

Fail to hit "debugger;" statement: `aRawObj.location is null`

Categories

(DevTools :: Debugger, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Firefox 31

People

(Reporter: Gijs, Assigned: msucan)

References

Details

(Whiteboard: [chrome-debug])

Attachments

(2 files, 1 obsolete file)

I'm sorry that this isn't a reduced testcase. But here goes for STR:

1. Get fx-team tip (ish).
2. Apply these patches:

http://pastebin.mozilla.org/4675405
http://pastebin.mozilla.org/4675406


3. Rebuild (these patches should only need ./mach build browser/base browser/components )

4. Run:

./mach mochitest-browser browser/components/customizableui/test/browser_975719_customtoolbars_behaviour.js --jsdebugger

5. Click "run the test"

6. At the first debugger; instance, click continue

ER:
hit the second debugger; instance

AR:

 0:13.91 TEST-INFO | chrome://mochitests/content/browser/browser/components/customizableui/test/browser_975719_customtoolbars_behaviour.js | Console message: [JavaScript Error: "Got an exception during TA__pauseAndRespond: aRawObj.location is null:
 0:13.91 ObjectWithURL@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:3704:7
 0:13.91 ObjectActor.prototype.grip@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:2939:1
 0:13.91 ThreadActor.prototype.objectGrip@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:2032:5
 0:13.91 ThreadActor.prototype.createValueGrip@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:1985:9
 0:13.91 EnvironmentActor.prototype._bindings@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:4458:9
 0:13.91 EnvironmentActor.prototype.form@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:4378:7
 0:13.91 FrameActor.prototype.form@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:4165:7
 0:13.91 ThreadActor.prototype._paused@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:1856:7
 0:13.91 ThreadActor.prototype._pauseAndRespond@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:820:1
 0:13.91 ThreadActor.prototype.onDebuggerStatement@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:2173:1
 0:13.91 resetShouldDealWithCustomToolbars@chrome://mochitests/content/browser/browser/components/customizableui/test/browser_975719_customtoolbars_behaviour.js:114:1
 0:13.91 TaskImpl_run@resource://gre/modules/Task.jsm:298:1
 0:13.91 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:707:11
 0:13.91 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:586:7
 0:13.91 " {file: "resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js" line: 5280}]
Confirmed :(

Got an exception during TA__pauseAndRespond: aRawObj.location is null:
ObjectWithURL@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:3704:7
ObjectActor.prototype.grip@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:2939:1
ThreadActor.prototype.objectGrip@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:2032:5
ThreadActor.prototype.createValueGrip@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:1985:9
EnvironmentActor.prototype._bindings@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:4458:9
EnvironmentActor.prototype.form@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:4378:7
FrameActor.prototype.form@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:4165:7
ThreadActor.prototype._paused@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:1856:7
ThreadActor.prototype._pauseAndRespond@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:820:1
ThreadActor.prototype.onDebuggerStatement@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/script.js:2173:1
resetShouldDealWithCustomToolbars@chrome://mochitests/content/browser/browser/components/customizableui/test/browser_975719_customtoolbars_behaviour.js:114:1
TaskImpl_run@resource://gre/modules/Task.jsm:298:1
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:707:11
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:586:7
Looks like this is failing in a change introduced by Mihai for the pretty objects in the console. Can you take a look at this Mihai?
Flags: needinfo?(mihai.sucan)
Summary: Not hitting debugger statements → Fail to hit "debugger;" statement: `aRawObj.location is null`
Whiteboard: [chrome-debug]
We can land this in the meantime to fix the debugger's behavior so it doesn't completely crap itself. Probably good anyways for when addons start adding previewers.

Should still fix the underlying issue, though.
Attachment #8396012 - Flags: review?(bbenvie)
Comment on attachment 8396012 [details] [diff] [review]
Report errors in previewers and keep trying to find a valid previewer

Review of attachment 8396012 [details] [diff] [review]:
-----------------------------------------------------------------

Simple change, LGTM.
Attachment #8396012 - Flags: review?(bbenvie) → review+
Attached patch 175110.diffSplinter Review
Now with commit message.

Tree's closed, will let someone else commit for me.
Attachment #8396012 - Attachment is obsolete: true
Attachment #8396075 - Flags: review+
Attached patch bug987369-1.diffSplinter Review
In ObjectWithURL we assumed nsIDOMWindows always have a location object. It seems that's not the case.
Attachment #8396282 - Flags: review?(bbenvie)
Flags: needinfo?(mihai.sucan)
Comment on attachment 8396282 [details] [diff] [review]
bug987369-1.diff

Review of attachment 8396282 [details] [diff] [review]:
-----------------------------------------------------------------

Interesting. Do you know under what circumstances a window won't have a location property?
Attachment #8396282 - Flags: review?(bbenvie) → review+
(In reply to Brandon Benvie [:benvie] from comment #10)
> Comment on attachment 8396282 [details] [diff] [review]
> bug987369-1.diff
> 
> Review of attachment 8396282 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> Interesting. Do you know under what circumstances a window won't have a
> location property?

As it looks window objects can be created and later they get a document with a location. We'd have to ask the platform people for a more detailed explanation.

Thanks for the review.
OS: Mac OS X → All
Hardware: x86 → All
Comment on attachment 8396075 [details] [diff] [review]
175110.diff

This was checked in.
Attachment #8396075 - Flags: checkin+
https://hg.mozilla.org/integration/fx-team/rev/66fd59700cbe
Assignee: nobody → mihai.sucan
Keywords: checkin-needed
Whiteboard: [chrome-debug] → [chrome-debug][fixed-in-fx-team]
https://hg.mozilla.org/mozilla-central/rev/66fd59700cbe
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Whiteboard: [chrome-debug][fixed-in-fx-team] → [chrome-debug]
Target Milestone: --- → Firefox 31
QA Whiteboard: [qa-]
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: