зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
c2fca6da5e
Коммит
94754a321a
|
@ -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() {
|
||||
|
|
Загрузка…
Ссылка в новой задаче