Closed Bug 39965 Opened 25 years ago Closed 6 years ago

Layout should permit pluggable support for new frame types

Categories

(Core :: Layout, defect, P3)

defect

Tracking

()

RESOLVED WONTFIX
Future

People

(Reporter: endico, Unassigned)

References

Details

(Keywords: helpwanted)

[10:46:24] <shaver> it would be a week's work, tops, to make mathML and SVG pluggable, I think [10:46:37] <shaver> (transformiix already is, I think) [10:47:06] <shaver> hyatt, waterson, brendan, blizzard, me -- we all know how to do it [10:47:10] <shaver> it's not rocket science [10:47:19] <dawn> i thought the layout engine needed redesigning to allow plugability [10:47:30] <shaver> depends how loose you want the coupling [10:47:49] <shaver> there would still be some binary dependencies [10:48:04] <shaver> (on a common library, which contained the base frame stuff)[10:48:25] <shaver> but it would mean that people would at least have the _choice_ to build plugins that might break with the next release [10:48:46] <shaver> and we could build and ship svg.xpi, mathml.xpi, etc. [10:48:56] <shaver> (which would be guaranteed to match, binary-wise0 [10:49:50] <dawn> that would be a lot better than building xpi's that completely replace the layout libs [10:50:09] <shaver> yes [10:50:15] <shaver> because we could mix and match [10:50:28] <shaver> I should write up a bug, with our combined knowledge of how to attack the problem [10:50:31] <dawn> combining mathml and svg would rock so much [10:52:21] <shaver> dawn: could you file a bug, against me, cc:ing hyatt and waterson and brendan and blizzard? [10:52:41] <shaver> "Layout should permit pluggable support for new frame/content types" [10:52:56] <shaver> mention that I should dump my brain there [10:53:41] <dawn> shaver: if you dump your brain there can i copy and sell it? [10:54:09] <shaver> dawn: we'll need to figure out the royalty terms, but I'm a reasonable man
So here's how I'd do it: - Move all the core frame and content stuff into libgeckobase.so, which would be a library and not a component (like libxpcom). We could even move all of the current non-XUL/MathML/SVG/XBL stuff into the library, since we're not doing this to reduce binary dependence. - Teach nsCSSFrameConstructor to dispatch to a frame factory based on the namespace of the element - Make frame factories for XUL, HTML (a thin layer around the library), XBL, SVG, etc. that register in the frame-factory category for their namespaces This wouldn't really reduce binary dependencies at all -- if someone makes a change to nsFrame, the previous day's XUL plugin will crash all over -- but it would at least allow us to be modular. And if someone wanted to trade space for binary independence, they could pull all the frame goop into libxulbulletproof.so.
Blocks: 43121
Summary: Layout should permit pluggable support for new frame/content types → Layout should permit pluggable support for new frame types
Adjusting summary. Layout does permit support for pluggable content types.
adding helpwanted keyword
Keywords: helpwanted
Adding that this bug blocks bug 33339 - HTML <RUBY> support
Blocks: ruby
We all know what a joke it is, but I'll accept this to keep terry's bot from spamming me.
Status: NEW → ASSIGNED
Who's a lazy quitter? _I_'m a lazy quitter. (We all knew that waterson was going to end up doing the heavy lifting here, didn't we?)
Assignee: shaver → waterson
Status: ASSIGNED → NEW
Keywords: mozilla0.9
See also bug 51684
Status: NEW → ASSIGNED
Target Milestone: --- → Future
Who am I kidding.
Assignee: waterson → buster
Status: ASSIGNED → NEW
Build reassigning Buster's bugs to Marc.
Assignee: buster → attinasi
Pluggable frame/content types are important for using the Mozilla architecture in independent projects. Thus one could write new objects for custom functionality, and wrap them in XUL for the UI. I am fairly new to the project, but I would be willing to code some of this, given the proper guidance. What do you think of having namespaces register some sort of nsIFrameFactory, just as we currently have nsIElementFactory? I think this should have 'embed' keyword, but I don't have privs for that.
Blocks: 192409
This came up again in bug 184746
Assignee: attinasi → misc
Blocks: dbaron
Component: Layout → Layout: Misc Code
OS: Linux → All
Priority: P3 → --
QA Contact: petersen → nobody
Hardware: PC → All
Target Milestone: Future → ---
Priority: -- → P3
Target Milestone: --- → Future
No longer blocks: dbaron
Blocks: dbaron
Now formats like XForms can be implemented as extension, what is the status of this bug?
Assignee: layout.misc-code → nobody
QA Contact: nobody → layout.misc-code
I don't think this bug is relevant anymore. It seems the project has moved in the opposite direction by making most features non-optional. Removing --disable-mathml in bug 660762 as an example.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
Product: Core → Core Graveyard
Component: Layout: Misc Code → Layout
Product: Core Graveyard → Core
You need to log in before you can comment on or make changes to this bug.