зеркало из https://github.com/mozilla/gecko-dev.git
Bug 960740 - skip writing session state data if it fails sanity check. r=msamuel
This commit is contained in:
Родитель
c071aa08da
Коммит
3d912e3aff
|
@ -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) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче