Bug 1233803 - Outlaw usage of sessionHistory CPOW in browser code. r=felipe

--HG--
extra : commitid : 1BiGRhthHhR
extra : rebase_source : 43f1f73a6f2a2f363a4320c7ec25865359183ef0
extra : histedit_source : eb5f9c2e8e996977b2e01392d5a871b439ccdaca
This commit is contained in:
Mike Conley 2016-01-04 15:49:22 -05:00
Родитель c2fca6da5e
Коммит 94754a321a
2 изменённых файлов: 8 добавлений и 30 удалений

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

@ -35,13 +35,7 @@ RemoteWebNavigation.prototype = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebNavigation, Ci.nsISupports]),
swapBrowser: function(aBrowser) {
if (this._messageManager) {
this._messageManager.removeMessageListener("WebNavigation:setHistory", this);
}
this._browser = aBrowser;
this._messageManager = aBrowser.messageManager;
this._messageManager.addMessageListener("WebNavigation:setHistory", this);
},
LOAD_FLAGS_MASK: 65535,
@ -118,9 +112,14 @@ RemoteWebNavigation.prototype = {
referringURI: null,
_sessionHistory: null,
get sessionHistory() { return this._sessionHistory; },
set sessionHistory(aValue) { },
// Bug 1233803 - accessing the sessionHistory of remote browsers should be
// done in content scripts.
get sessionHistory() {
throw Cr.NS_ERROR_NOT_IMPLEMENTED;
},
set sessionHistory(aValue) {
throw Cr.NS_ERROR_NOT_IMPLEMENTED;
},
_sendMessage: function(aMessage, aData) {
try {
@ -130,14 +129,6 @@ RemoteWebNavigation.prototype = {
Cu.reportError(e);
}
},
receiveMessage: function(aMessage) {
switch (aMessage.name) {
case "WebNavigation:setHistory":
this._sessionHistory = aMessage.objects.history;
break;
}
}
};
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([RemoteWebNavigation]);

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

@ -223,19 +223,6 @@ var WebNavigation = {
addMessageListener("WebNavigation:LoadURI", this);
addMessageListener("WebNavigation:Reload", this);
addMessageListener("WebNavigation:Stop", this);
// Send a CPOW for the sessionHistory object. We need to make sure
// it stays alive as long as the content script since CPOWs are
// weakly held.
let history = this.webNavigation.sessionHistory;
this._sessionHistory = history;
sendAsyncMessage("WebNavigation:setHistory", {}, {history: history});
addEventListener("unload", this.uninit);
},
uninit: function() {
this._sessionHistory = null;
},
get webNavigation() {