Bug 3251 - Implement MathML (master bug)
: Implement MathML (master bug)
Status: ASSIGNED
Product: WebKit
Classification: Unclassified
Component: MathML
: 412
: All All
: P2 Normal
Assigned To: Alex Milowski
: InRadar, ReviewedForRadar
Depends on: 38377 49309 99623 15302 29529 33703 33964 34228 34275 34277 34278 34347 34741 36452 36525 36528 36540 37044 37497 37763 38327 40327 40827 40986 41535 41895 41961 42041 42067 42373 42472 43481 43503 71725
Blocks: html5test
  Show dependency treegraph
 
Reported: 2005-06-01 16:23 PDT by Dave Hyatt
Modified: 2013-04-25 07:27 PDT (History)
40 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dave Hyatt 2005-06-01 16:23:53 PDT
This is a master bug to track the landing of an initial implementation of MathML for Web Kit.
Comment 1 Adele Peterson 2005-06-14 14:49:02 PDT
This is also in Radar as <rdar://problem/3142835> Would like MathML support 
Comment 2 Jacques Distler 2005-06-16 15:16:03 PDT
MathML support requires an extensive set of glyphs, not present in the fonts
customarily distributed with MacOSX.

To this end, the STIX Fonts Project ( http://www.stixfonts.org/ )is of interest.
Sometime in 2005 (or so they say), a full Unicode-compatible mathematical font
set will be available under a royalty-free licence (
http://www.stixfonts.org/user_license.html ).
Comment 3 Luca Padovani 2005-07-05 13:10:34 PDT
GtkMathView is a C++ rendering engine for MathML documents. It provides an
interactive view that can be used for browsing and editing MathML markup.
Despite its name, GtkMathView is modular and the actual MathML rendering engine
is completely independent of Gtk (and of any graphic platform). Currently
GtkMathView supports 3 different backends: for Gtk, for SVG (does not use any
graphic library), for AbiWord. GtkMathView's frontend (the way it reads the
MathML document) is also modular, and it supports both tree-based document
models as well as stream interfaces as well as application-specific models.
GtkMathView has very good support for Computer Modern fonts (both Type1 and
TrueType versions) and support for other font families can be added easily.

It seems to me like this is a good opportunity to make GtkMathView somewhat more
popular, and for you not to reinvent the wheel and to start with an already
working code base. I'd be glad to hear from other developers if they think it
would be feasible to (re)use GtkMathView or some of its code base for adding
MathML support to Webkit. I anticipate that I'm totally new to development on
the Apple platform, but it'd be terrific if any piece of this (hard!) work,
which has going on for more than 5 years, could be of some help.

http://helm.cs.unibo.it/software/mml-widget/

Feel free to contact me for any question you may have.
Comment 4 YAMASHITA Makoto 2006-01-13 17:58:42 PST
(In reply to comment #3)
SVG <text> support is coming into being. Is it realistic to have the SVG engine
do the rendering job? Looks like gtkMathView can provide in-memory SVG tree with
a few modifications.
Comment 5 David Kilzer (:ddkilzer) 2006-01-20 05:26:20 PST
GtkMathView is licensed by the GPL.  Is that license compatible with WebKit?
Comment 6 Luca Padovani 2006-01-23 01:56:52 PST
(In reply to comment #4)
> SVG <text> support is coming into being. Is it realistic to have the SVG engine
> do the rendering job? Looks like gtkMathView can provide in-memory SVG tree with
> a few modifications.

Indeed it is possible to have an "SVG tree" generated by GtkMathView. Note that the
rendering of MathML into SVG uses very little capabilities of SVG itself. Basically, all
that is needed is text rendering, reliable font selection, and colored rectangles. In
fact, I suspect it would probably be easier to directly interface GtkMathView with
the rendering interface used by the SVG engine, although have never glanced at how
that works.

In reply to comment #5, I might consider switching to a less strict licence, as long as
GtkMathView remains open source.
Comment 7 YAMASHITA Makoto 2006-01-23 16:15:03 PST
(In reply to comment #6)
> Basically, all
> that is needed is text rendering, reliable font selection, and colored
> rectangles. In
With my quick experiment, the nightly build can render outputs (including greek letters, integral, square roots and the red square for missing? glyphs) of mathmlsvg quite fine using Bakoma fonts.

> to directly interface GtkMathView with
> the rendering interface used by the SVG engine
Well, we need to investigate on this more, perhaps it would mean to handle CSS frames or something?
In any case, in view of kmathml, this approach might be of temporary ad-hoc nature and then we can pursue the easiest rather than structural beauty...
Comment 8 Maciej Stachowiak 2006-02-25 00:44:42 PST
WebKit code must be under an LGPL-compatible license.
Comment 9 Alexey Proskuryakov 2008-07-01 05:55:21 PDT
*** Bug 19840 has been marked as a duplicate of this bug. ***
Comment 10 Alexander Willner 2008-11-24 20:34:02 PST
(In reply to comment #5)
> GtkMathView is licensed by the GPL.  Is that license compatible with WebKit?
(In reply to comment #8)
> WebKit code must be under an LGPL-compatible license.

GtkMathView is LGPL software since Oct 15, 2007 and also WebKits SVG support is mature now. With everything sorted out, only someone who can integrate it into WebKit is missing ;)
Comment 11 David Kilzer (:ddkilzer) 2008-11-25 05:41:43 PST
Hyatt is not working on this; reassigning to webkit-unassigned.

Comment 12 David Kilzer (:ddkilzer) 2008-11-25 05:44:44 PST
(In reply to comment #10)
> (In reply to comment #5)
> > GtkMathView is licensed by the GPL.  Is that license compatible with WebKit?
> (In reply to comment #8)
> > WebKit code must be under an LGPL-compatible license.
> 
> GtkMathView is LGPL software since Oct 15, 2007 and also WebKits SVG support is
> mature now. With everything sorted out, only someone who can integrate it into
> WebKit is missing ;)

Will that work on all platforms once the Gtk dependencies are removed?  I suppose the SVG backend would work best in this case.

http://helm.cs.unibo.it/mml-widget/

Comment 13 Mark Rowe (bdash) 2009-02-24 11:09:25 PST
*** Bug 24127 has been marked as a duplicate of this bug. ***
Comment 14 JoeJava 2009-11-02 06:19:50 PST
A MaTHML Browser testing page is:

https://eyeasme.com/Joe/MathML/MathML_browser_test
Comment 15 Alex Milowski 2010-01-22 12:47:45 PST
Added all the current MathML related issues in the "Depends On" field.
Comment 16 Alex Milowski 2010-01-27 15:03:03 PST
Added the debug layout patch.
Comment 17 Alex Milowski 2010-01-28 10:46:05 PST
Added MathML CSS patch
Comment 18 Alex Milowski 2010-01-28 11:11:18 PST
Added bugs for munder/over and msubsup support.
Comment 19 Alex Milowski 2010-01-29 14:34:46 PST
Added patch for mrow and stretchy operator support.
Comment 20 Alex Milowski 2010-02-08 21:08:18 PST
Added mfrac patch bug (34741).
Comment 21 Alex Milowski 2010-02-10 11:42:45 PST
Removed bug 27413 from the depends on field.

I believe this bug (27413) is not related to MathML.  While I may be able to
do the same using a chunk of MathML encoded markup, this bug has to
do with specifically detecting and transforming sequences of unicode characters.

Such a transformation's implementation might want to use the MathML fraction
rendering object but it isn't really directly related to MathML's implementation.
Comment 22 Alex Milowski 2010-06-13 01:40:29 PDT
Added patch for RenderStyle change.