Can't undo/redo from unloaded viewers

NEW
Unassigned

Status

Other Applications
DOM Inspector
8 years ago
7 years ago

People

(Reporter: crussell, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Steps to reproduce:
1. Go to http://example.com
2. Find the node for the first paragraph in the DOM Nodes viewer.
3. Delete it.
4. Switch to the JS Object viewer.
5. Try to undo the node deletion.

Expected results:
Successful undeletion; the paragraph should now be present on the page again.

Actual results:
Error: uncaught exception: [Exception... "'[JavaScript Error: "(void 0) is not a constructor" {file: "chrome://inspector/content/viewers/dom/dom.js" line: 1106}]' when calling method: [nsITransaction::undoTransaction]"  nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)"  location: "JS frame :: chrome://inspector/content/inspector.xml :: execCommand :: line 252"  data: yes]

A lot of viewers' transactions reference the global |viewer|, usually to do something like select a row in their XUL tree.  If you unload the originating viewer however, the global |viewer| will no longer be accessible to them.  Distilling the operations into better MVC separation (by having the transaction operate on the model and having the viewer manipulate itself via transaction listeners) doesn't seem to help either.  Details are in bug 310370, comment 41.
No longer blocks: 310370
You need to log in before you can comment on or make changes to this bug.