/
cookieManager.js
44 lines (33 loc) · 1.01 KB
/
cookieManager.js
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
(function() {
'use strict'
const properties = [
'name', 'domain', 'value', 'path', 'secure', 'httpOnly', 'expirationDate'
]
const cookieManager = {
get: function(url, callback) {
chrome.cookies.getAll({ url }, function(cookies) {
let newCookies = cookies.map(cookie => pick(cookie, properties))
callback(newCookies)
})
},
setExpirationDate: function(cookies, expirationTime) {
const expirationDate = toUNIX(expirationTime || Date.now())
return cookies.map(cookie => Object.assign(cookie, { expirationDate }))
},
set: function(url, cookies) {
cookies.forEach(function(cookie) {
let newCookie = Object.assign({ url }, pick(cookie, properties))
chrome.cookies.set(newCookie)
})
}
}
function pick(base, properties) {
let newObject = {}
properties.forEach(key => newObject[key] = base[key])
return newObject
}
function toUNIX(time) {
return time / 1000
}
window.cookieManager = cookieManager
})()