Opened 10 years ago

Closed 4 years ago

#10777 closed defect (wontfix)

Dialog: dialog containing VML object causes errors requiring browser restart in IE8

Reported by: navtej Owned by: bill
Priority: high Milestone: future
Component: Dijit Version: 1.4.0
Keywords: Cc: navtej.sadhal@…
Blocked By: Blocking:

Description

Browser: Internet Explorer 8

OS: Windows XP

Steps to reproduce:

  1. open the attached file with Internet Explorer 8
  2. Click the "Show me!" button on the page to bring up the dialog containing VML.
  3. Close the dialog.
  4. Click the "Show me!" button a second time.
  5. see the error saying simply "Failed"
  6. after this any pages that use VML will throw this error until you restart the browser.

This is most likely a flaw in IE8, but it would be great to have some kind of workaround. VML is used in the place of SVG for IE and thus used by things like Google Maps to draw driving directions. This bug means we can't place a Google Map inside a dijit.Dialog, which seems like a pretty common use case.

Attachments (2)

ie8vml.html (1.3 KB) - added by navtej 10 years ago.
simple test case
tryCatch.patch (3.2 KB) - added by bill 9 years ago.
patch to try/catch to avoid failures on VML nodes

Download all attachments as: .zip

Change History (11)

Changed 10 years ago by navtej

Attachment: ie8vml.html added

simple test case

comment:1 Changed 10 years ago by navtej

It appears that setting "autofocus=false" on the dialog might alleviate this.

comment:2 Changed 9 years ago by bill

The focus problem was fixed in [22268] but I get errors on your test page during page load (the parser tries to access child.nodeType etc. of the VML node), and on page unload for the same reason. IE is really touchy about what properties on VML nodes can be accessed. The same problems happen on 1.4 though. Leaving this open for now, not sure what we want to do about those errors.

comment:3 Changed 9 years ago by bill

Milestone: tbd1.6
Owner: set to bill
Status: newassigned
Summary: dijit.Dialog containing VML object causes errors requiring browser restart in IE8Dialog: dialog containing VML object causes errors requiring browser restart in IE8

Hmm, the fix in [22268] doesn't seem to work for me. IE8 throws a "Failed" exception accessing any attribute of the VML node in the test case, including node.scopeName.

I wonder if there is a better way than try/catch to weed out non-HTML nodes. Whatever fix we do needs to go into scan() in dojo/parser.js, and both findWidgets() and _getTabNavigable() in dijit/_base/manager.js.

comment:4 Changed 9 years ago by bill

Hmm, and now the fix is working for me...

Changed 9 years ago by bill

Attachment: tryCatch.patch added

patch to try/catch to avoid failures on VML nodes

comment:5 Changed 9 years ago by bill

Milestone: 1.61.7

Didn't get around to adding this for 1.6, I attached the prospective patch and will do it for 1.7.

comment:6 Changed 8 years ago by Adam Peller

moved to 1.7.1 for consideration. Please move to 1.8 as appropriate.

comment:7 Changed 8 years ago by Adam Peller

Milestone: 1.71.7.1

actually moving to 1.7.1

comment:8 Changed 8 years ago by bill

Milestone: 1.7.1future

comment:9 Changed 4 years ago by bill

Resolution: wontfix
Status: assignedclosed

Realistically this won't be fixed. IE8 is near EOL (and so is VML).

Note: See TracTickets for help on using tickets.