mirror of
https://github.com/servo/servo.git
synced 2025-07-03 05:23:38 +01:00
Save local storage at every change and not just on shutdown
This commit is contained in:
parent
cb764be7cd
commit
20266fa103
1 changed files with 13 additions and 6 deletions
|
@ -67,21 +67,22 @@ impl StorageManager {
|
||||||
self.keys(sender, url, storage_type)
|
self.keys(sender, url, storage_type)
|
||||||
}
|
}
|
||||||
StorageThreadMsg::SetItem(sender, url, storage_type, name, value) => {
|
StorageThreadMsg::SetItem(sender, url, storage_type, name, value) => {
|
||||||
self.set_item(sender, url, storage_type, name, value)
|
self.set_item(sender, url, storage_type, name, value);
|
||||||
|
self.save_state()
|
||||||
}
|
}
|
||||||
StorageThreadMsg::GetItem(sender, url, storage_type, name) => {
|
StorageThreadMsg::GetItem(sender, url, storage_type, name) => {
|
||||||
self.request_item(sender, url, storage_type, name)
|
self.request_item(sender, url, storage_type, name)
|
||||||
}
|
}
|
||||||
StorageThreadMsg::RemoveItem(sender, url, storage_type, name) => {
|
StorageThreadMsg::RemoveItem(sender, url, storage_type, name) => {
|
||||||
self.remove_item(sender, url, storage_type, name)
|
self.remove_item(sender, url, storage_type, name);
|
||||||
|
self.save_state()
|
||||||
}
|
}
|
||||||
StorageThreadMsg::Clear(sender, url, storage_type) => {
|
StorageThreadMsg::Clear(sender, url, storage_type) => {
|
||||||
self.clear(sender, url, storage_type)
|
self.clear(sender, url, storage_type);
|
||||||
|
self.save_state()
|
||||||
}
|
}
|
||||||
StorageThreadMsg::Exit(sender) => {
|
StorageThreadMsg::Exit(sender) => {
|
||||||
if let Some(ref config_dir) = self.config_dir {
|
// Nothing to do since we save localstorage set eagerly.
|
||||||
resource_thread::write_json_to_file(&self.local_data, config_dir, "local_data.json");
|
|
||||||
}
|
|
||||||
let _ = sender.send(());
|
let _ = sender.send(());
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -89,6 +90,12 @@ impl StorageManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn save_state(&self) {
|
||||||
|
if let Some(ref config_dir) = self.config_dir {
|
||||||
|
resource_thread::write_json_to_file(&self.local_data, config_dir, "local_data.json");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn select_data(&self, storage_type: StorageType)
|
fn select_data(&self, storage_type: StorageType)
|
||||||
-> &HashMap<String, (usize, BTreeMap<String, String>)> {
|
-> &HashMap<String, (usize, BTreeMap<String, String>)> {
|
||||||
match storage_type {
|
match storage_type {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue