Bug 426026 – Back/forward buttons disappear when moving from 1.8 to 1.9 if they've been moved (edit)

git-svn-id: svn://10.0.0.236/trunk@253599 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mconnor%steelgryphon.com 2008-08-14 19:10:04 +00:00
parent a74dea27a1
commit c485c73bb8

View File

@ -564,13 +564,29 @@ BrowserGlue.prototype = {
this._dataSource = this._rdf.GetDataSource("rdf:local-store");
this._dirty = false;
var currentSet = this._rdf.GetResource("currentset");
// get an nsIRDFResource for the nav-bar item
var navBar = this._rdf.GetResource("chrome://browser/content/browser.xul#nav-bar");
var target = this._getPersist(navBar, currentSet);
if (target && !/(?:^|,)unified-back-forward-button(?:$|,)/.test(target))
this._setPersist(navBar, currentSet, "unified-back-forward-button," + target);
let currentsetResource = this._rdf.GetResource("currentset");
let toolbars = ["nav-bar", "toolbar-menubar", "PersonalToolbar"];
for (let i = 0; i < toolbars.length; i++) {
let toolbar = this._rdf.GetResource("chrome://browser/content/browser.xul#" + toolbars[i]);
let currentset = this._getPersist(toolbar, currentsetResource);
if (!currentset) {
// toolbar isn't customized
if (i == 0)
// new button is in the defaultset, nothing to migrate
break;
continue;
}
if (/(?:^|,)unified-back-forward-button(?:$|,)/.test(currentset))
// new button is already there, nothing to migrate
break;
if (/(?:^|,)back-button(?:$|,)/.test(currentset)) {
let newset = currentset.replace(/(^|,)back-button($|,)/,
"$1unified-back-forward-button,back-button$2")
this._setPersist(toolbar, currentsetResource, newset);
// done migrating
break;
}
}
// force the RDF to be saved
if (this._dirty)