Closed
Bug 128408
Opened 23 years ago
Closed 23 years ago
XBL Select widgets crash in embedding apps
Categories
(Core :: Layout: Form Controls, defect)
Core
Layout: Form Controls
Tracking
()
VERIFIED
FIXED
mozilla1.0
People
(Reporter: bryner, Assigned: bryner)
References
Details
(Keywords: topembed+)
Attachments
(1 file, 1 obsolete file)
(deleted),
patch
|
janv
:
review+
shaver
:
superreview+
roc
:
approval+
|
Details | Diff | Splinter Review |
Ok, this is definitely a blocker for turning on XBL form controls. From what I
can tell, here's the problem:
At the time that we construct an outlinerbodyframe, the binding for the
outlinercols has not yet loaded, so we have not yet constructed a
nsOutlinerColFrame. This causes outliner's intrinsic sizing to crash. Making
the binding load synchronously turns out to be a fair bit of work, but something
we may have to do anyway.
In order for synchronous loading of the binding to work, we would need to sync
load the resources (stylesheets) for the base binding. This would entail
extending the CSS loader to support sync loading, and causing XBL to use this
facility when you ask for a binding to be sync loaded (I think this would always
be desired if you are sync loading the binding, hyatt correct me if I'm wrong).
The CSS loader already supports sync loading of agent sheets, so this would
just be a general extension of that mechanism (I don't think we awnt to actually
load the binding stylesheets _as_ agent sheets).
The other option would be to duplicate the outlinercols binding into select.xml
so that it won't use scoped stylesheets. I'd prefer not to do this, as it means
that the two copies wouldn't be able to share prototype bindings (hence a slight
footprint hit). On the plus side, it would break the dependency on toolkit.jar;
not sure this is all that important since we can already generate a minimal
embed.jar.
Assignee | ||
Comment 1•23 years ago
|
||
One more note: the reason this doesn't happen in Mozilla is that the outlinercol
binding can load synchronously from the XUL cache.
nsbeta1+'ing since this will obviously block 112713.
Assignee | ||
Comment 2•23 years ago
|
||
A third way to fix this would be to make OutlinerBodyFrame able to function with
its column frames constructed later; this seems like a bad idea all-around
because it would generate extra reflows as the outliner resizes.
Assignee | ||
Comment 3•23 years ago
|
||
cc'ing jud since this affects embeddding
Assignee | ||
Comment 4•23 years ago
|
||
Well, there turns out to be an easy way to fix this...
Assignee | ||
Comment 5•23 years ago
|
||
Also fixing the forced sync loading of the select binding, which was probably
never working right. This fixes the problem of mysterious missing select
widgets.
Attachment #72247 -
Attachment is obsolete: true
Comment 6•23 years ago
|
||
Comment on attachment 72266 [details] [diff] [review]
patch #2
looks good
r=varga
Attachment #72266 -
Flags: review+
Comment on attachment 72266 [details] [diff] [review]
patch #2
sr=shaver.
Attachment #72266 -
Flags: superreview+
Comment on attachment 72266 [details] [diff] [review]
patch #2
a=roc+moz for trunk
Attachment #72266 -
Flags: approval+
Assignee | ||
Comment 9•23 years ago
|
||
Checked in on the trunk.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Updated•23 years ago
|
QA Contact: madhur → tpreston
You need to log in
before you can comment on or make changes to this bug.
Description
•