forked from mirrors/gecko-dev
move location change listening from ContentPrefSink to nsBrowserStatusHandler to possibly improve performance; r=sayrer, a=mconnor
This commit is contained in:
parent
1b7454e98c
commit
6989c455b3
2 changed files with 10 additions and 22 deletions
|
|
@ -75,14 +75,12 @@ var ContentPrefSink = {
|
|||
// Initialization & Destruction
|
||||
|
||||
init: function ContentPrefSink_init() {
|
||||
gBrowser.addProgressListener(this, Ci.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
|
||||
gBrowser.addEventListener("DOMContentLoaded", this, false);
|
||||
// XXX Should we also listen for pageshow and/or load?
|
||||
},
|
||||
|
||||
destroy: function ContentPrefSink_destroy() {
|
||||
gBrowser.removeEventListener("DOMContentLoaded", this, false);
|
||||
gBrowser.removeProgressListener(this);
|
||||
|
||||
// Delete references to XPCOM components to make sure we don't leak them
|
||||
// (although we haven't observed leakage in tests). Also delete references
|
||||
|
|
@ -99,25 +97,6 @@ var ContentPrefSink = {
|
|||
//**************************************************************************//
|
||||
// Event Handlers
|
||||
|
||||
// nsIWebProgressListener
|
||||
|
||||
onLocationChange: function ContentPrefSink_onLocationChange(progress, request, uri) {
|
||||
// Catch exceptions until bug 376222 gets fixed so that we don't hork
|
||||
// other progress listeners if our code throws an exception.
|
||||
try {
|
||||
this._handleLocationChanged(uri);
|
||||
}
|
||||
catch(ex) {
|
||||
Components.utils.reportError(ex);
|
||||
}
|
||||
},
|
||||
onStateChange: function ContentPrefSink_onStateChange(progress, request, flags, status) {},
|
||||
onProgressChange: function ContentPrefSink_onProgressChange(progress, request, curSelfProgress,
|
||||
maxSelfProgress, curTotalProgress,
|
||||
maxTotalProgress) {},
|
||||
onStatusChange: function ContentPrefSink_onStatusChange(progress, request, status, message) {},
|
||||
onSecurityChange: function ContentPrefSink_onSecurityChange(progress, request, state) {},
|
||||
|
||||
// nsIDOMEventListener
|
||||
|
||||
handleEvent: function ContentPrefSink_handleEvent(event) {
|
||||
|
|
@ -125,7 +104,7 @@ var ContentPrefSink = {
|
|||
this._handleDOMContentLoaded(event);
|
||||
},
|
||||
|
||||
_handleLocationChanged: function ContentPrefSink__handleLocationChanged(uri) {
|
||||
handleLocationChanged: function ContentPrefSink_handleLocationChanged(uri) {
|
||||
if (!uri)
|
||||
return;
|
||||
|
||||
|
|
|
|||
|
|
@ -3573,6 +3573,15 @@ nsBrowserStatusHandler.prototype =
|
|||
}
|
||||
else
|
||||
this.asyncUpdateUI();
|
||||
|
||||
// Catch exceptions until bug 376222 gets fixed so we don't hork
|
||||
// other progress listeners if this call throws an exception.
|
||||
try {
|
||||
ContentPrefSink.handleLocationChanged(aLocationURI);
|
||||
}
|
||||
catch(ex) {
|
||||
Components.utils.reportError(ex);
|
||||
}
|
||||
},
|
||||
|
||||
asyncUpdateUI : function () {
|
||||
|
|
|
|||
Loading…
Reference in a new issue