Created
April 13, 2016 18:41
-
-
Save rpl/317a0eef57aba69a131eaf59d8daa312 to your computer and use it in GitHub Desktop.
"rename webNavigation MessageManager message names" proposals
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/toolkit/modules/addons/WebNavigation.jsm b/toolkit/modules/addons/WebNavigation.jsm | |
--- a/toolkit/modules/addons/WebNavigation.jsm | |
+++ b/toolkit/modules/addons/WebNavigation.jsm | |
@@ -20,23 +20,25 @@ Cu.import("resource://gre/modules/Servic | |
// onCreatedNavigationTarget, onHistoryStateUpdated | |
var Manager = { | |
listeners: new Map(), | |
init() { | |
Services.mm.addMessageListener("Extension:DOMContentLoaded", this); | |
Services.mm.addMessageListener("Extension:StateChange", this); | |
- Services.mm.addMessageListener("Extension:LocationChange", this); | |
+ Services.mm.addMessageListener("Extension:DocumentChange", this); | |
+ Services.mm.addMessageListener("Extension:HistoryChange", this); | |
Services.mm.loadFrameScript("resource://gre/modules/WebNavigationContent.js", true); | |
}, | |
uninit() { | |
Services.mm.removeMessageListener("Extension:StateChange", this); | |
- Services.mm.removeMessageListener("Extension:LocationChange", this); | |
+ Services.mm.removeMessageListener("Extension:DocumentChange", this); | |
+ Services.mm.removeMessageListener("Extension:HistoryChange", this); | |
Services.mm.removeMessageListener("Extension:DOMContentLoaded", this); | |
Services.mm.removeDelayedFrameScript("resource://gre/modules/WebNavigationContent.js"); | |
Services.mm.broadcastAsyncMessage("Extension:DisableWebNavigation"); | |
}, | |
addListener(type, listener) { | |
if (this.listeners.size == 0) { | |
this.init(); | |
@@ -65,18 +67,22 @@ var Manager = { | |
}, | |
receiveMessage({name, data, target}) { | |
switch (name) { | |
case "Extension:StateChange": | |
this.onStateChange(target, data); | |
break; | |
- case "Extension:LocationChange": | |
- this.onLocationChange(target, data); | |
+ case "Extension:DocumentChange": | |
+ this.onDocumentChange(target, data); | |
+ break; | |
+ | |
+ case "Extension:HistoryChange": | |
+ this.onHistoryChange(target, data); | |
break; | |
case "Extension:DOMContentLoaded": | |
this.onLoad(target, data); | |
break; | |
} | |
}, | |
@@ -92,25 +98,29 @@ var Manager = { | |
} else { | |
let error = `Error code ${data.status}`; | |
this.fire("onErrorOccurred", browser, data, {error, url}); | |
} | |
} | |
} | |
}, | |
- onLocationChange(browser, data) { | |
+ onDocumentChange(browser, data) { | |
+ let url = data.location; | |
+ | |
+ this.fire("onCommitted", browser, data, {url}); | |
+ }, | |
+ | |
+ onHistoryChange(browser, data) { | |
let url = data.location; | |
if (data.isReferenceFragmentUpdated) { | |
this.fire("onReferenceFragmentUpdated", browser, data, {url}); | |
} else if (data.isHistoryStateUpdated) { | |
this.fire("onHistoryStateUpdated", browser, data, {url}); | |
- } else { | |
- this.fire("onCommitted", browser, data, {url}); | |
} | |
}, | |
onLoad(browser, data) { | |
this.fire("onDOMContentLoaded", browser, data, {url: data.url}); | |
}, | |
fire(type, browser, data, extra) { | |
diff --git a/toolkit/modules/addons/WebNavigationContent.js b/toolkit/modules/addons/WebNavigationContent.js | |
--- a/toolkit/modules/addons/WebNavigationContent.js | |
+++ b/toolkit/modules/addons/WebNavigationContent.js | |
@@ -64,17 +64,17 @@ var WebProgressListener = { | |
}; | |
sendAsyncMessage("Extension:StateChange", data); | |
if (stateFlags & Ci.nsIWebProgressListener.STATE_IS_DOCUMENT) { | |
// For some reason we don't fire onLocationChange for the | |
// initial navigation of a sub-frame. So we need to simulate | |
// it here. | |
- this.processStateDocument({ | |
+ this.processDocumentChange({ | |
webProgress, request, locationURI, | |
flags: 0, | |
}); | |
} | |
}, | |
onLocationChange: function onLocationChange(webProgress, request, locationURI, flags) { | |
let {DOMWindow, loadType} = webProgress; | |
@@ -112,28 +112,28 @@ var WebProgressListener = { | |
if (isHistoryStateUpdated || isReferenceFragmentUpdated) { | |
let data = { | |
isHistoryStateUpdated, isReferenceFragmentUpdated, | |
location: locationURI ? locationURI.spec : "", | |
windowId: webProgress.DOMWindowID, | |
parentWindowId: WebNavigationFrames.getParentWindowId(webProgress.DOMWindow), | |
}; | |
- sendAsyncMessage("Extension:LocationChange", data); | |
+ sendAsyncMessage("Extension:HistoryChange", data); | |
} | |
}, | |
- processStateDocument({webProgress, request, locationURI, flags}) { | |
+ processDocumentChange({webProgress, request, locationURI, flags}) { | |
let data = { | |
location: locationURI ? locationURI.spec : "", | |
windowId: webProgress.DOMWindowID, | |
parentWindowId: WebNavigationFrames.getParentWindowId(webProgress.DOMWindow), | |
}; | |
- sendAsyncMessage("Extension:LocationChange", data); | |
+ sendAsyncMessage("Extension:DocumentChange", data); | |
}, | |
QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener, Ci.nsISupportsWeakReference]), | |
}; | |
var disabled = false; | |
WebProgressListener.init(); | |
addEventListener("unload", () => { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment