'Report Site Issue' doesn't work with Fission enabled
Categories
(Web Compatibility :: Tooling & Investigations, defect, P2)
Tracking
(firefox77 fixed)
| Tracking | Status | |
|---|---|---|
| firefox77 | --- | fixed |
People
(Reporter: neha, Assigned: twisniewski)
Details
(Whiteboard: [fission:m5])
Attachments
(1 file)
Trying to report site issue with Fission enabled does not work. It fails with the error:
"SecurityError: Permission denied to access property "windowUtils" on cross-origin object"
| Reporter | ||
Updated•6 years ago
|
Updated•6 years ago
|
Comment 1•6 years ago
|
||
Yeah, we should probably fix this soon. Neha, are there pointers to similar types of bugs that have been fixed or guides we can use? Thanks
Comment 2•6 years ago
|
||
I can't point you to any similar issues, but I can tell you the general problem and solution. The code here walks the entire frame tree for a tab trying to gather inner window IDs:
However, when one of those frames is out-of-process, you don't have a real window object, only a remote window proxy, with limited functionality. That proxy isn't allowed to know any more about the window than a cross-origin website would, so it doesn't know its inner window ID.
The solution is probably to walk the entire browsing context tree for the tab in the parent process (calling .getChildren() on each the same way you currently traverse window.frames), get .currentWindowGlobal.innerWindowID from each, and then collect the console messages in the parent process rather than the child.
Comment 3•6 years ago
|
||
That said, if you want to continue doing the kind of processing on the console messages that you currently do, you're going to need to create a JSWindowActor that processes just the messages for the window it's tied to in the content process, and then in the parent, send a separate query to the actor for the current window global of each BrowsingContext, rather than just collecting the logging in the parent.
Comment 4•6 years ago
|
||
Thanks, Kris.
Comment 6•6 years ago
|
||
I notice this problem today on mail.google.com in regular (non-fission) Nightly. Report Site Issue works in all other tabs, just not in my pinned gmail tabs. Full messages below:
SecurityError: Permission denied to access property "windowUtils" on cross-origin object data:function getInfoFrameScript(messageName) { /* eslint-env mozilla/frame-script:16
SecurityError: Permission denied to access property "windowUtils" on cross-origin object data:function getInfoFrameScript(messageName) { /* eslint-env mozilla/frame-script:16
| Assignee | ||
Comment 7•6 years ago
|
||
modify report-site-issue to use a JSWindowActorChild to gather tab info
Updated•6 years ago
|
| Assignee | ||
Comment 8•6 years ago
|
||
@Panos, I see the same error, but it seems to go away with the patch I just attached.
| Assignee | ||
Comment 10•6 years ago
|
||
This is stuck waiting for review. kmag, any chance you could take a look, since you're the one who suggested this solution in comments 2 and 3?
Comment 11•6 years ago
|
||
Comment 12•6 years ago
|
||
| bugherder | ||
Updated•5 years ago
|
Description
•