Skip NavigationDesign Science: How Science Communicates
Products Solutions Store Support Reference Company View Cart
 
 
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 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 6.0. 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

  1. 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. 
  2. 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.
  3. MathML entity names that are unknown to IE, but start with an entity name that is known, are returned mangled to MathPlayer. For example, "&centerdot"; 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.
  4. Versions of IE prior to 6.0 Service Pack 1 don't support Unicode Plane 1 numerical entity references (e.g. 𝔄).
  5. 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.
  6. 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.
  7. The integral sign in the Symbol font displays incorrectly at large point sizes. Here is a page that demonstrates the problem.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.