Last Comment Bug 638430 - <select> doesn't render correctly in iframe within a panel where we use swapFrameLoaders on it!
: <select> doesn't render correctly in iframe within a panel where we use swapF...
Status: RESOLVED FIXED
[blocks jetpack]
:
Product: Core
Classification: Components
Component: XP Toolkit/Widgets: XUL (show other bugs)
: Trunk
: All All
: -- normal (vote)
: mozilla7
Assigned To: Timothy Nikkel (:tnikkel)
:
: Neil Deakin
Mentors:
Depends on:
Blocks: 449734 633854 649144
  Show dependency treegraph
 
Reported: 2011-03-03 06:53 PST by Alexandre Poirot [:ochameau]
Modified: 2011-06-06 06:29 PDT (History)
16 users (show)
mounir: in‑testsuite?
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Minimal testcase that can be run in js console (1.83 KB, text/javascript)
2011-03-03 06:53 PST, Alexandre Poirot [:ochameau]
no flags Details
patch (6.24 KB, patch)
2011-05-28 11:23 PDT, Timothy Nikkel (:tnikkel)
roc: review+
Details | Diff | Splinter Review

Description Alexandre Poirot [:ochameau] 2011-03-03 06:53:21 PST
Created attachment 516585 [details]
Minimal testcase that can be run in js console

The title tells all the story.
This error, having <select> not working in a panel, only happens when you get all these conditions:
- a panel
- with an iframe inside of it
- another iframe anywhere else
- a <select> inside of this second iframe
- and you are swaping iframe content with swapFrameLoaders from the second iframe to the first one that is in the panel.


Just to be clear, <select> are working fine in panel, even inside an iframe.

I've added that this platform bug is blocking addon-sdk bug 633854, 
but we may try to find some simplier alternative to avoid this current one.
Comment 1 Boris Zbarsky [:bz] (still a bit busy) 2011-03-03 08:35:11 PST
Presumably a regression from bug 449734: we're not reparenting the combobox widget.

Of course the fix to lazily create those widgets would fix this too...
Comment 2 Myk Melez [:myk] [@mykmelez] 2011-03-31 22:01:39 PDT
Boris: any thoughts on when this might get fixed?  A fix would be really handy for addon developers, who use popup panels with HTML forms containing select menus to solicit preferences from addon users.
Comment 3 Boris Zbarsky [:bz] (still a bit busy) 2011-04-01 05:13:32 PDT
Now that bug 610391 landed, I would expect this is fixed.  Is it not?
Comment 4 Boris Zbarsky [:bz] (still a bit busy) 2011-04-01 05:14:31 PDT
And are the addon developers in question seriously using swapFrameLoaders?
Comment 5 Myk Melez [:myk] [@mykmelez] 2011-04-01 11:51:13 PDT
Based on Alex's testcase in comment 0, it looks like this is still broken.

Alex: can you test again and confirm?

Boris: it isn't the addon developers who are using swapFrameLoaders; the API implementers are using them under-the-covers as part of the implementation of the Panels API.
Comment 6 Boris Zbarsky [:bz] (still a bit busy) 2011-04-01 11:57:07 PDT
> Based on Alex's testcase in comment 0, it looks like this is still broken.

Ah, indeed.  In that case, I'm not sure what's going on here.
Comment 7 Alexandre Poirot [:ochameau] 2011-04-01 12:39:22 PDT
No it's still buggy on today's windows nightly.
Comment 8 Timothy Nikkel (:tnikkel) 2011-04-06 11:31:32 PDT
Determining exactly what broke this would be useful. There seems to be a large range of nightlies (somewhere in sept 2010 to around jan 2011) where the testcase doesn't open a panel at all so I can't narrow it down.
Comment 9 Anthony Hughes (:ashughes) [GFX][QA][Mentor] 2011-05-27 12:59:08 PDT
Any change with the latest Nightly?
Comment 10 Timothy Nikkel (:tnikkel) 2011-05-28 11:23:23 PDT
Created attachment 535874 [details] [diff] [review]
patch

Ehsan's work to only create dropdown widgets when we open the dropdown probably fixed most of this already. But it is not completely fixed.

If we swap frame loaders while a dropdown is open we'll probably still have bugs, but I doubt it matters.

We weren't computing the display root view correctly (the frame version was correct). We were looking for a floating view that is a child of a non-floating view. But when we have a dropdown in a panel the dropdown is the display root but its parent is floating (because floating-ness gets propagated to all child views, more or less).
Comment 11 Timothy Nikkel (:tnikkel) 2011-05-28 13:01:01 PDT
(In reply to comment #10)
> (because floating-ness gets propagated to all child views, more or less).

It doesn't always get propagated, but the view removing/inserting that swapping the frame loaders does I guess means that it gets propagated.
Comment 12 Robert O'Callahan (:roc) (email my personal email if necessary) 2011-05-29 14:21:26 PDT
Comment on attachment 535874 [details] [diff] [review]
patch

Review of attachment 535874 [details] [diff] [review]:
-----------------------------------------------------------------
Comment 13 Timothy Nikkel (:tnikkel) 2011-05-29 20:17:09 PDT
http://hg.mozilla.org/projects/cedar/rev/04b969002ce8
Comment 14 Mounir Lamouri (:mounir) 2011-05-30 06:01:37 PDT
Pushed:
http://hg.mozilla.org/mozilla-central/rev/04b969002ce8

Note You need to log in before you can comment on or make changes to this bug.