Bug 574460 - Fix handling of permission deletion notifications in preference dialogs. Original patch by Mehdi Mulani. r=unfocused

This commit is contained in:
Michael Pruett 2014-07-06 13:35:00 +02:00
parent aab6e2e516
commit deb4bdcc72
2 changed files with 22 additions and 4 deletions

View File

@ -236,10 +236,17 @@ var gPermissionManager = {
}
this._tree.treeBoxObject.invalidate();
}
// No UI other than this window causes this method to be sent a "deleted"
// notification, so we don't need to implement it since Delete is handled
// directly by the Permission Removal handlers. If that ever changes, those
// implementations will have to move into here.
else if (aData == "deleted") {
for (var i = 0; i < this._permissions.length; i++) {
if (this._permissions[i].host == permission.host) {
this._permissions.splice(i, 1);
this._view._rowCount--;
this._tree.treeBoxObject.rowCountChanged(this._view.rowCount - 1, -1);
this._tree.treeBoxObject.invalidate();
break;
}
}
}
}
},

View File

@ -114,6 +114,17 @@ function windowLoad(event, win, dialog) {
pm.remove("test.com", "popup");
},
},
{
test: function() {
url.value = "test.com";
btnAllow.doCommand();
pm.remove("test.com", "cookie");
is(tree.view.rowCount, 0, "display should update when cookie permission is deleted");
},
observances: [{ type: "cookie", host: "test.com", data: "added",
capability: allow },
{ type: "cookie", host: "test.com", data: "deleted" }]
},
];
let permObserver = {