storage_traits/
webstorage_thread.rs1use malloc_size_of_derive::MallocSizeOf;
6use profile_traits::mem::ReportsChan;
7use serde::{Deserialize, Serialize};
8use servo_base::generic_channel::GenericSender;
9use servo_base::id::WebViewId;
10use servo_url::ServoUrl;
11
12#[derive(Clone, Copy, Debug, Deserialize, PartialEq, MallocSizeOf, Serialize)]
13pub enum WebStorageType {
14 Session,
15 Local,
16}
17
18#[derive(Clone, Debug, Deserialize, MallocSizeOf, Serialize)]
19pub struct OriginDescriptor {
20 pub name: String,
21}
22
23impl OriginDescriptor {
24 pub fn new(name: String) -> Self {
25 OriginDescriptor { name }
26 }
27}
28
29#[derive(Debug, Deserialize, Serialize)]
31pub enum WebStorageThreadMsg {
32 Length(GenericSender<usize>, WebStorageType, WebViewId, ServoUrl),
34
35 Key(
37 GenericSender<Option<String>>,
38 WebStorageType,
39 WebViewId,
40 ServoUrl,
41 u32,
42 ),
43
44 Keys(
46 GenericSender<Vec<String>>,
47 WebStorageType,
48 WebViewId,
49 ServoUrl,
50 ),
51
52 GetItem(
54 GenericSender<Option<String>>,
55 WebStorageType,
56 WebViewId,
57 ServoUrl,
58 String,
59 ),
60
61 SetItem(
63 GenericSender<Result<(bool, Option<String>), ()>>,
64 WebStorageType,
65 WebViewId,
66 ServoUrl,
67 String,
68 String,
69 ),
70
71 RemoveItem(
73 GenericSender<Option<String>>,
74 WebStorageType,
75 WebViewId,
76 ServoUrl,
77 String,
78 ),
79
80 Clear(GenericSender<bool>, WebStorageType, WebViewId, ServoUrl),
82
83 Clone {
86 sender: GenericSender<()>,
87 src: WebViewId,
88 dest: WebViewId,
89 },
90
91 ListOrigins(GenericSender<Vec<OriginDescriptor>>, WebStorageType),
95
96 ClearDataForSites(GenericSender<()>, WebStorageType, Vec<String>),
98
99 Exit(GenericSender<()>),
101
102 CollectMemoryReport(ReportsChan),
104}