Closed Bug 1248292 Opened 8 years ago Closed 8 years ago

[e10s] window.opener is null if a popup window opened from an iframe inside chrome

Categories

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

46 Branch
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX
Tracking Status
e10s + ---

People

(Reporter: awcalibr, Unassigned)

References

Details

Attachments

(1 file)

(deleted), application/x-xpinstall
Details
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:44.0) Gecko/20100101 Firefox/44.0
Build ID: 20160205155049

Steps to reproduce:

I placed an iframe with webpage to a XUL addon page. If webpage opens a new popup window by window.open this new popup can't close itself and window.opener is set to null for this popup.

Steps:

1. Install an attached test addon
2. Navigate to chrome://fftestaddon/content/test.xul
3. Click on "Open Window" button


Actual results:

Popup opened with text: "Opener available? No". window.opener for this popup was null. And  the window can't close itself with an error message: "Scripts may not close windows that were not opened by script."


Expected results:

window.opener should be set for the popup window. Popup window should be able to close itself by window.close.

You can see the working scenario if enter directly to web page http://fvdspeeddial.com/ff-opener-issue/page.html or install the test addon on Firefox <= 45.
Component: Untriaged → DOM: Core & HTML
Product: Firefox → Core
(In reply to Denis from comment #0)
> User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:44.0)
> Gecko/20100101 Firefox/44.0
> Build ID: 20160205155049
> 
> Steps to reproduce:
> 
> I placed an iframe with webpage to a XUL addon page. If webpage opens a new
> popup window by window.open this new popup can't close itself and
> window.opener is set to null for this popup.
> 
> Steps:
> 
> 1. Install an attached test addon


Where is the add-on attached?
Flags: needinfo?(awcalibr)
Attached file test_addon.xpi (deleted) —
test addon
Flags: needinfo?(awcalibr)
sorry, It seems that I didn't attach it previously. Now I attached it.
I tested both scenarios (add-on and webpage) and the pop-up closes itself after displaying:
Opener available? Yes
Parent available? Yes
Top available? Yes
Parent location: http://fvdspeeddial.com/ff-opener-issue/popup.html
Top location: http://fvdspeeddial.com/ff-opener-issue/popup.html
Message sent


FF44, Win 7. Is it an issue specific to OSX?
No, this issue happens only on Firefox >= 46
Sorry, I have been confused by the UA in your 1st message.

New test with FF47:
1) e10s disabled: 
chrome://fftestaddon/content/test.xul > OK
http://fvdspeeddial.com/ff-opener-issue/page.html > OK

2) e10s enabled:
chrome://fftestaddon/content/test.xul > BROKEN
http://fvdspeeddial.com/ff-opener-issue/page.html > OK

So e10s issue with window.close() between the chrome parent window and the child window, I guess.
Blocks: e10s
OS: Unspecified → All
Hardware: Unspecified → All
Summary: window.opener is null if a popup window opened from an iframe inside chrome → [e10s] window.opener is null if a popup window opened from an iframe inside chrome
I tested with FF42 and e10s enabled, it's broken too. So probably just fully broken with e10s, whatever the version.
(In reply to Denis from comment #5)
> No, this issue happens only on Firefox >= 46

For the record, you see that because e10s is only enabled in FF46+.
Thanks, I forgot that in ff developer edition and nightly e10s enabled by default. So is this kind of bug or feature? Or need to wait for e10s for their answer?
It's a bug because e10s is still in development.
This is something for the extension to deal with, if it wants to continue loading remote iframes this way.
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
Sorry for touching the resolved issue, but I have the same issue with my WebExtension addon, I can't understand what is wrong with the way my extension loads the remote iframe, is there any other way to load the iframe so it will open windows with opener set correctly? In my chrome extension this works fine: opener is set correctly and window.close() works without any errors.
(In reply to Denis from comment #12)
> Sorry for touching the resolved issue, but I have the same issue with my
> WebExtension addon, I can't understand what is wrong with the way my
> extension loads the remote iframe, is there any other way to load the iframe
> so it will open windows with opener set correctly? In my chrome extension
> this works fine: opener is set correctly and window.close() works without
> any errors.

In the WebExtension case, this is probably because the iframe and the new window run in separate processes. Extension <iframe>s in content pages run in the web content process. If they open new windows with extension URLs, those will generally run in the extension process, which means that they can't directly access their opener window. We could change that, but it would result in those windows only having access to a restricted set of APIs, which is not what most people want.

The probably works in Chrome because Chrome now runs extension <iframe>s in the extension process, even when they're children of content pages. Firefox doesn't support these kinds of cross-process <iframe>s in web content, which means there's no possibility of direct access between those two windows.
Thank you for the explanation, it is a bit sad that the behaviour is different among browsers, but I think it is a quite rare case because not many people complain about that, so probably it is not worth changing.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: