-
Notifications
You must be signed in to change notification settings - Fork 6
/
storage.go
93 lines (74 loc) · 2.37 KB
/
storage.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package protocol
import (
hc "github.com/yijinliu/headless-chromium/go"
"sync"
)
// Enum of possible storage types.
type StorageType string
const StorageTypeAppcache StorageType = "appcache"
const StorageTypeCookies StorageType = "cookies"
const StorageTypeFile_systems StorageType = "file_systems"
const StorageTypeIndexeddb StorageType = "indexeddb"
const StorageTypeLocal_storage StorageType = "local_storage"
const StorageTypeShader_cache StorageType = "shader_cache"
const StorageTypeWebsql StorageType = "websql"
const StorageTypeService_workers StorageType = "service_workers"
const StorageTypeCache_storage StorageType = "cache_storage"
const StorageTypeAll StorageType = "all"
type ClearDataForOriginParams struct {
Origin string `json:"origin"` // Security origin.
StorageTypes string `json:"storageTypes"` // Comma separated origin names.
}
// Clears storage for origin.
type ClearDataForOriginCommand struct {
params *ClearDataForOriginParams
wg sync.WaitGroup
err error
}
func NewClearDataForOriginCommand(params *ClearDataForOriginParams) *ClearDataForOriginCommand {
return &ClearDataForOriginCommand{
params: params,
}
}
func (cmd *ClearDataForOriginCommand) Name() string {
return "Storage.clearDataForOrigin"
}
func (cmd *ClearDataForOriginCommand) Params() interface{} {
return cmd.params
}
func (cmd *ClearDataForOriginCommand) Run(conn *hc.Conn) error {
cmd.wg.Add(1)
conn.SendCommand(cmd)
cmd.wg.Wait()
return cmd.err
}
func ClearDataForOrigin(params *ClearDataForOriginParams, conn *hc.Conn) (err error) {
cmd := NewClearDataForOriginCommand(params)
cmd.Run(conn)
return cmd.err
}
type ClearDataForOriginCB func(err error)
// Clears storage for origin.
type AsyncClearDataForOriginCommand struct {
params *ClearDataForOriginParams
cb ClearDataForOriginCB
}
func NewAsyncClearDataForOriginCommand(params *ClearDataForOriginParams, cb ClearDataForOriginCB) *AsyncClearDataForOriginCommand {
return &AsyncClearDataForOriginCommand{
params: params,
cb: cb,
}
}
func (cmd *AsyncClearDataForOriginCommand) Name() string {
return "Storage.clearDataForOrigin"
}
func (cmd *AsyncClearDataForOriginCommand) Params() interface{} {
return cmd.params
}
func (cmd *ClearDataForOriginCommand) Done(data []byte, err error) {
cmd.err = err
cmd.wg.Done()
}
func (cmd *AsyncClearDataForOriginCommand) Done(data []byte, err error) {
cmd.cb(err)
}