| TechNote #106: |
Last modified: 01/18/05 |
MathPlayer Problems Due To Internet Explorer Bugs & Limitations
The information in this document applies to:
|
MathPlayer (all versions)
|
|
Issue
MathPlayer tightly integrates with Internet Explorer 6.0 and 7.0 using Microsoft's
Behaviors technology. Although we believe MathPlayer to be a solid piece of
software, it has some rough edges that are due to bugs and limitations in
Internet Explorer. We hope that Microsoft will address these problems in a
future version. We offer this list in the hope that MathPlayer users will also
encourage Microsoft to do so.
Some of these bugs are easy to understand, others are somewhat technical and
internal. In some cases, we've been able to work around the problem in
MathPlayer but there are usually less than desirable consequences as a result.
We will definitely work with Microsoft to help explain and define any of these
problems. In the following, Internet Explorer is abbreviated as IE.
Internet Explorer Bugs & Limitations
- Erratic behavior when scaling in Print Preview for
Internet Explorer 6 and 7. Print Preview of a page with MathPlayer math in
it erratically drops out bits of the page content. Additionally if one scales the print preview, the display
erratically flashes blocks of black. This bug has been reported to Microsoft
for review.
- When a MathPlayer object is embedded in a table, it does not cause the scroll bar
to appear when the window is narrower than the table's contents.
Here is a test page that demonstrates
the problem. A possibly related problem is that when a MathPlayer
object is in a table which is temporarily made invisible via the CSS
visibility property, the MathPlayer object does not reappear when the table
is made visible again.
- When a MathPlayer equation is inserted into a table cell that does not
have a fixed size, the equation may be partially truncated.
Here is a test page that
demonstrates this problem.
- MathML entity names that are unknown to IE, but start with an entity name
that is known, are returned mangled to MathPlayer. For example,
"¢erdot"; is returned as if the source were "¢erdot". There is
evidently some sort of error correction mechanism involved that is attempting
to correct what IE thinks are bad entity names. Here is a list of the
problematic names.
- Entity names that begin with "cent": centerdot;
- Entity names that begin with "copy": copysr;
- Entity names that begin with "div": divideontimes;
- Entity names that begin with "gt": gtcc, gtcir, gtdot, gtlPar, gtquest,
gtrapprox, gtrarr, gtrdot, gtreqless, gtreqqless, gtrless, gtrsim;
- Entity names that begin with "lt": ltcc, ltcir, ltdot, lthree, ltimes,
ltlarr, ltquest, ltri, ltrie, ltrif, ltrPar;
- Entity names that begin with "not": notindot, notinva, notinvb, notinvc,
notni, notniva, notnivb, notnivc;
- Entity names that begin with "para": parallel;
- Entity names that begin with "times": timesb, timesbar, timesd.
- Versions of IE prior to 6.0 Service Pack 1 don't support Unicode Plane 1 numerical entity references (e.g.
𝔄).
- IE sometimes removes space following the </math> tag. It seems to do so
when there is no start tag on the same line.
Here is a test page that demonstrates
the problem.
- When a page containing MathPlayer-compatible MathML is saved using IE's
"Web page, complete" format using the Save As command, the
MathPlayer processing instructions (PIs) are removed causing the math not
to display. Here is a page that demonstrates
the problem.
- The integral sign in the Symbol font displays incorrectly at large point
sizes. Here is a page that demonstrates
the problem.
- The IHTMLPaintSite methods InvalidateRect and InvalidateRgn do not work. IE seems to
keep our object's position incorrectly so when we use this interface, the area
invalidated and redisplayed is not where our equation is on the page. MathPlayer works
around this by invalidating the object's size instead. However, this causes
the document to be reformatted unnecessarily, making interactive response
slow.
- Printing on a PostScript printer causes the Windows' GDI API TextOut to fail.
The printer device context (DC) that IE passes to MathPlayer appears to not be
an ordinary printer DC.
- IE 6.0 appears to have a resource leak involving the
IHTMLAttributeCollection interface. Whenever the "item" method of this
interface (or the enumerator interface) is used to get an IDispatchPtr for an
attribute item, IE uses a huge amount of memory (eg, 170 Mb instead of 34 Mb
for a single page) and "thrashes" the disk, even on computers with plenty of
RAM (512 Mb on our test computer). Unfortunately, this is the only way to
enumerate an element's explicitly set attributes and, therefore, it is
required to perform attribute validation.
- In an HTML page with a <base> tag that specifies a location on a
different server from the one on which the document is located, opening a
popup window causes a security exception. This has the side effect
that on such a page, the MathPlayer splash screen and about box are
disabled, as are all tooltip <maction> elements within
equations. While this is perhaps not technically a bug in IE, lack of
a programmatic way for a Behavior such as MathPlayer to establish trust and
open a popup window is a gap in the API that should be addressed.
- Popup windows cause the "Source" and "Text Size" menu
items in the "View" menu to do nothing. Here is a page that demonstrates
the problem. MathPlayer uses a popup window for it's splash screen
so the "Source" and "Text Size" menu items do nothing
when MathPlayer starts up.
Getting This Problem Addressed by Microsoft
Only Microsoft can address problems with Internet Explorer. We encourage all
users who experience these problems to report them to Microsoft so that they can
appreciate the need to devote additional programming resources to addressing
them.
While we have reported these problems and they may be discussed in Microsoft
Knowledge Base articles, it is important that their customers continue to report
their experience so that Microsoft can appreciate how widespread
this is.
You can report these issues and any other problems you have with Internet
Explorer at
http://register.microsoft.com/mswish/suggestion.asp.
If you can contact their Technical Support Staff by telephone your report will
carry even more weight. You can contact Microsoft Technical Support at (800)
936-5700.
If you have any other updated information that may relate to this, please
contact us via email or phone. And if any of the above data does not seem to
correlate with what you have found we would like to know this too. Your
assistance is very much appreciated.
|