diff --git a/toolkit/content/widgets/browser.xml b/toolkit/content/widgets/browser.xml index 373cade9577..cc97bade28b 100644 --- a/toolkit/content/widgets/browser.xml +++ b/toolkit/content/widgets/browser.xml @@ -206,6 +206,19 @@ onget="return this.webNavigation.currentURI;" readonly="true"/> + + + + + + diff --git a/toolkit/content/widgets/remote-browser.xml b/toolkit/content/widgets/remote-browser.xml index af6c0e3b81d..c66d5b8026d 100644 --- a/toolkit/content/widgets/remote-browser.xml +++ b/toolkit/content/widgets/remote-browser.xml @@ -45,8 +45,8 @@ if (!this._remoteWebProgress) { let jsm = "resource://gre/modules/RemoteWebProgress.jsm"; let RemoteWebProgressManager = Cu.import(jsm, {}).RemoteWebProgressManager; - this._remoteWebProgress = new RemoteWebProgressManager(this) - .topLevelWebProgress; + this._remoteWebProgressManager = new RemoteWebProgressManager(this); + this._remoteWebProgress = this._remoteWebProgressManager.topLevelWebProgress; } return this._remoteWebProgress; ]]> @@ -68,6 +68,19 @@ null + + + + + + diff --git a/toolkit/modules/RemoteWebProgress.jsm b/toolkit/modules/RemoteWebProgress.jsm index 367604b8e6e..567ac941a3a 100644 --- a/toolkit/modules/RemoteWebProgress.jsm +++ b/toolkit/modules/RemoteWebProgress.jsm @@ -109,6 +109,18 @@ RemoteWebProgressManager.prototype = { return [deserialized, aState]; }, + setCurrentURI: function (aURI) { + // This function is simpler than nsDocShell::SetCurrentURI since + // it doesn't have to deal with child docshells. + let webNavigation = this._browser.webNavigation; + webNavigation._currentURI = aURI; + + let webProgress = this.topLevelWebProgress; + for (let p of this._progressListeners) { + p.onLocationChange(webProgress, null, aURI); + } + }, + _callProgressListeners: function(methodName, ...args) { for (let p of this._progressListeners) { if (p[methodName]) {