Closed
Bug 1268688
Opened 9 years ago
Closed 9 years ago
Start browser element API when swapFrameLoaders moves from XUL to HTML frame
Categories
(Core :: DOM: Core & HTML, defect, P1)
Core
DOM: Core & HTML
Tracking
()
Tracking | Status | |
---|---|---|
firefox49 | --- | fixed |
People
(Reporter: jryans, Assigned: jryans)
References
Details
(Whiteboard: [multiviewport] [mvp-rdm] btpp-active)
Attachments
(1 file)
In bug 1242644, we added support for swapFrameLoaders with <iframe mozbrowser>, including across frame types (XUL <-> HTML).
One edge case that comes up is:
1. Create XUL frame A
2. Create HTML frame B
3. swapFrameLoaders
4. Try to use APIs from BrowserElement.webidl
Currently the APIs fail because:
* BrowserElementParent.js is listening on the old message manager and needs to switch to the new one
* The frame script BrowserElementChild.js has not been loaded for the frame that moved into HTML
Assignee | ||
Comment 1•9 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/49567/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/49567/
Attachment #8746782 -
Flags: review?(bzbarsky)
Assignee | ||
Comment 2•9 years ago
|
||
Updated•9 years ago
|
Whiteboard: [multiviewport][triage] → [multiviewport][triage] btpp-active
Updated•9 years ago
|
Iteration: --- → 49.1 - May 9
Flags: qe-verify-
Priority: -- → P1
Whiteboard: [multiviewport][triage] btpp-active → [multiviewport] [mvp-rdm] btpp-active
![]() |
||
Comment 3•9 years ago
|
||
Comment on attachment 8746782 [details]
MozReview Request: Bug 1268688 - Start browser API for frames swapping to HTML. r=bz
https://reviewboard.mozilla.org/r/49567/#review46559
::: dom/base/nsFrameLoader.cpp:1006
(Diff revision 1)
> otherShell->BackingScaleFactorChanged();
>
> ourDoc->FlushPendingNotifications(Flush_Layout);
> otherDoc->FlushPendingNotifications(Flush_Layout);
>
> + // Initialize browser API if needed now that owner content has changed.
This won't "tear down" the browser API in the place where it should no longer exist, right? Should it?
::: dom/base/nsFrameLoader.cpp:1014
(Diff revision 1)
> +
> mInSwap = aOther->mInSwap = false;
>
> - Unused << mRemoteBrowser->SendSwappedWithOtherRemoteLoader();
> - Unused << aOther->mRemoteBrowser->SendSwappedWithOtherRemoteLoader();
> + // Send an updated tab context since owner content type may have changed.
> + MutableTabContext ourContext;
> + rv = GetNewTabContext(&ourContext);
This will ignore the signed package stuff, if any. Is that OK?
r=me
Attachment #8746782 -
Flags: review?(bzbarsky) → review+
Assignee | ||
Comment 4•9 years ago
|
||
https://reviewboard.mozilla.org/r/49567/#review46559
> This won't "tear down" the browser API in the place where it should no longer exist, right? Should it?
That's correct, for a frame that moves from HTML -> XUL, the browser API is still running, even though it can't be accessed since the API is not exposed for such elements. I think that's okay for now, but if we find that it causes problems, we can add an explicit tear down step in follow up work.
I also noticed that since the child frame script side is always loaded, it may repeat its setup unnecessarily (in the HTML -> HTML swap case, for example). I'll add a guard to make sure the child frame script aborts early if its work is already done.
> This will ignore the signed package stuff, if any. Is that OK?
Yes, that seems okay to me. I am not aware of a current use case for swapFrameLoaders where signed packages are also used. If someone tries to use it, we'll currently crash the child, since the new tab context would have missing / different signed package info. We can address this in the future if it comes up.
Comment 6•9 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
status-firefox49:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
Comment 7•9 years ago
|
||
This is causing a crash as described here: https://bugzilla.mozilla.org/show_bug.cgi?id=1271792
Assignee | ||
Comment 8•9 years ago
|
||
(In reply to Tanvi Vyas [:tanvi] from comment #7)
> This is causing a crash as described here:
> https://bugzilla.mozilla.org/show_bug.cgi?id=1271792
I'll reply in the new bug.
Updated•6 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•