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]) {