Closed Bug 853283 Opened 9 years ago Closed 9 years ago

nsNavigatorSH::NewResolve breaks when resolving over Xrays

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla22

People

(Reporter: bholley, Assigned: bholley)

References

Details

Attachments

(1 file)

The situation with XPCWN Xrays and resolve hooks is super tenuous. In particular, the resolve hooks have to be aware that |obj| might be an Xray wrapper, and need to be sure to define the associated properties on |obj| (which then gets intercepted the second time through by the Xray isResolving machinery) rather than the underlying reflector.

With my GWNOJO patches, I ran into marionette orange related to the fact that marionette actually appears to be running the test code over Xrays. And the nsNavigatorSH NewResolve hook expects |obj| to be the bonafide reflector, because it grabs the global object and expects that to be the window.

It's easy to fix the Resolve hook here, but Marionette also probably shouldn't be using Xrays. I'll file another bug for that.
Comment on attachment 727496 [details] [diff] [review]
Grab the window directly from the navigator in nsNavigatorSH::NewResolve. v1

Oof, good catch.
Attachment #727496 - Flags: review?(mrbkap) → review+
D'oh, it looks like this is something I should have noticed in my Xray NewResolve audit.  Oh well.
Backed out because something in Bobby's mega-push caused Windows debug bustage.
https://hg.mozilla.org/integration/mozilla-inbound/rev/de90200c61e1
It appears the issue was a needs-clobber. Re-landed.
https://hg.mozilla.org/integration/mozilla-inbound/rev/4489ed4085ab
https://hg.mozilla.org/mozilla-central/rev/4489ed4085ab
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla22
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.