Bug 960740 - skip writing session state data if it fails sanity check. r=msamuel

This commit is contained in:
Sam Foster 2014-01-23 16:58:33 -08:00
Родитель c071aa08da
Коммит 3d912e3aff
1 изменённых файлов: 9 добавлений и 4 удалений

Просмотреть файл

@ -272,7 +272,7 @@ SessionStore.prototype = {
this.saveState();
}
break;
case "browser:purge-session-history": // catch sanitization
case "browser:purge-session-history": // catch sanitization
this._clearDisk();
// If the browser is shutting down, simply return after clearing the
@ -514,9 +514,14 @@ SessionStore.prototype = {
saveState: function ss_saveState() {
let data = this._getCurrentState();
this._writeFile(this._sessionFile, JSON.stringify(data));
// sanity check before we overwrite the session file
if (data.windows && data.windows.length && data.selectedWindow) {
this._writeFile(this._sessionFile, JSON.stringify(data));
this._lastSaveTime = Date.now();
this._lastSaveTime = Date.now();
} else {
dump("SessionStore: Not saving state with invalid data: " + JSON.stringify(data) + "\n");
}
},
_getCurrentState: function ss_getCurrentState() {
@ -847,7 +852,7 @@ SessionStore.prototype = {
tab.browser.__SS_extdata = tabData.extData;
}
notifyObservers();
}.bind(this));
} catch (ex) {