Bug 785528 - Don't allow deletion of doctype nodes in the markup panel. r=jwalker

This commit is contained in:
Dave Camp 2012-08-24 17:59:48 -07:00
Родитель e65c310989
Коммит 631a4a7a86
1 изменённых файлов: 8 добавлений и 5 удалений

Просмотреть файл

@ -136,11 +136,7 @@ MarkupView.prototype = {
switch(aEvent.keyCode) { switch(aEvent.keyCode) {
case Ci.nsIDOMKeyEvent.DOM_VK_DELETE: case Ci.nsIDOMKeyEvent.DOM_VK_DELETE:
case Ci.nsIDOMKeyEvent.DOM_VK_BACK_SPACE: case Ci.nsIDOMKeyEvent.DOM_VK_BACK_SPACE:
let node = this._selectedContainer.node; this.deleteNode(this._selectedContainer.node);
let doc = nodeDocument(node);
if (node != doc && node != doc.documentElement) {
this.deleteNode(this._selectedContainer.node);
}
break; break;
case Ci.nsIDOMKeyEvent.DOM_VK_HOME: case Ci.nsIDOMKeyEvent.DOM_VK_HOME:
this.navigate(this._containers.get(this._rootNode.firstChild)); this.navigate(this._containers.get(this._rootNode.firstChild));
@ -204,6 +200,13 @@ MarkupView.prototype = {
*/ */
deleteNode: function MC__deleteNode(aNode) deleteNode: function MC__deleteNode(aNode)
{ {
let doc = nodeDocument(node);
if (node === doc ||
node === doc.documentElement ||
node.nodeType == Ci.nsIDOMNode.DOCUMENT_TYPE_NODE) {
return;
}
let parentNode = aNode.parentNode; let parentNode = aNode.parentNode;
let sibling = aNode.nextSibling; let sibling = aNode.nextSibling;