Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#10106 closed defect (fixed)

[patch][ccla]IE: PermissionDenied exception in _Templated.js on window unload

Reported by: Douglas Hays Owned by: Douglas Hays
Priority: high Milestone: 1.4
Component: Dijit Version: 1.4.0b
Keywords: Cc:
Blocked By: Blocking:

Description

Run the attached onunloadbug.html with any IE browser.
1) click the button to create a widget in the main window.
2) click the button to create a widget in the iframe.
3) click the button to destroy the iframe widget.
4) click the button to reload the iframe.
5) press the browser refresh button (or F5).
PermissionDenied? exception is thrown from the onunload handler in _Templated.js.

Attachments (3)

onunloadbug.html (1.2 KB) - added by Douglas Hays 10 years ago.
test file
iframesrc.html (144 bytes) - added by Douglas Hays 10 years ago.
test iframe source file
10106.patch (477 bytes) - added by Douglas Hays 10 years ago.
possible fix to avoid nodeType check on a different document's node

Download all attachments as: .zip

Change History (7)

Changed 10 years ago by Douglas Hays

Attachment: onunloadbug.html added

test file

Changed 10 years ago by Douglas Hays

Attachment: iframesrc.html added

test iframe source file

Changed 10 years ago by Douglas Hays

Attachment: 10106.patch added

possible fix to avoid nodeType check on a different document's node

comment:1 Changed 10 years ago by Douglas Hays

Summary: IE: PermissionDenied exception in _Templated.js on window unload[patch][ccla]IE: PermissionDenied exception in _Templated.js on window unload

comment:2 Changed 10 years ago by bill

Owner: changed from bill to Douglas Hays

Dijit doesn't support creating widgets into an iframe using dojo from the main document.

Having said that, this change looks harmless so I don't mind you putting it in.

comment:3 Changed 10 years ago by Douglas Hays

Resolution: fixed
Status: newclosed

(In [20582]) Fixes #10106. In the unload handler that empties the template cache, call dojo.destroy if the cached value is an object instead of referencing nodeType that can cause IE to throw an exception if the node's document has been reloaded. The cached value is either a simple string or a DOM tree (object). nodeType=1 was already checked before the cache was populated with the node object.

comment:4 Changed 10 years ago by bill

Milestone: tbd1.4
Note: See TracTickets for help on using tickets.