1
- browser . browserAction . onClicked . addListener ( ( ) => browser . runtime . openOptionsPage ( ) ) ;
1
+ chrome . action . onClicked . addListener ( ( ) => chrome . runtime . openOptionsPage ( ) ) ;
2
2
3
3
const handledRequests = new Map ( ) ;
4
4
5
- browser . webRequest . onBeforeRequest . addListener ( ( { method, requestBody, requestId, timeStamp, url } ) => {
5
+ chrome . webRequest . onBeforeRequest . addListener ( ( { method, requestBody, requestId, timeStamp, url } ) => {
6
6
if ( handledRequests . has ( requestId ) ) {
7
7
return ;
8
8
} else {
9
9
handledRequests . set ( requestId , timeStamp ) ;
10
+ chrome . storage . session . set ( { [ requestId ] : timeStamp } ) ;
10
11
}
11
12
12
13
if ( [ 'POST' , 'PUT' ] . includes ( method ) === false ) { return ; }
@@ -26,7 +27,7 @@ browser.webRequest.onBeforeRequest.addListener(({ method, requestBody, requestId
26
27
const isPrivateAnswer = state === undefined && isPrivate === true && layout . some ( ( { type } ) => type === 'ask' ) ;
27
28
28
29
if ( hasContent && ( isAsk || isPrivateAnswer ) ) {
29
- browser . storage . local . set ( { [ timeStamp ] : { recipient, content, layout } } ) ;
30
+ chrome . storage . local . set ( { [ timeStamp ] : { recipient, content, layout } } ) ;
30
31
}
31
32
} , {
32
33
urls : [
@@ -38,11 +39,12 @@ browser.webRequest.onBeforeRequest.addListener(({ method, requestBody, requestId
38
39
'requestBody'
39
40
] ) ;
40
41
41
- browser . webRequest . onBeforeRequest . addListener ( ( { method, requestBody, requestId, timeStamp } ) => {
42
+ chrome . webRequest . onBeforeRequest . addListener ( ( { method, requestBody, requestId, timeStamp } ) => {
42
43
if ( handledRequests . has ( requestId ) ) {
43
44
return ;
44
45
} else {
45
46
handledRequests . set ( requestId , timeStamp ) ;
47
+ chrome . storage . session . set ( { [ requestId ] : timeStamp } ) ;
46
48
}
47
49
48
50
if ( method !== 'POST' ) { return ; }
@@ -53,7 +55,7 @@ browser.webRequest.onBeforeRequest.addListener(({ method, requestBody, requestId
53
55
const parsedData = JSON . parse ( decodedData ) ;
54
56
const { question, recipient } = parsedData ;
55
57
56
- browser . storage . local . set ( {
58
+ chrome . storage . local . set ( {
57
59
[ timeStamp ] : {
58
60
recipient,
59
61
content : [ { type : 'text' , text : question , formatting : [ ] } ] ,
@@ -67,11 +69,12 @@ browser.webRequest.onBeforeRequest.addListener(({ method, requestBody, requestId
67
69
'requestBody'
68
70
] ) ;
69
71
70
- browser . webRequest . onBeforeRequest . addListener ( ( { documentUrl, method, requestBody : { formData } , requestId, timeStamp, url } ) => {
72
+ chrome . webRequest . onBeforeRequest . addListener ( ( { documentUrl, method, requestBody : { formData } , requestId, timeStamp, url } ) => {
71
73
if ( handledRequests . has ( requestId ) ) {
72
74
return ;
73
75
} else {
74
76
handledRequests . set ( requestId , timeStamp ) ;
77
+ chrome . storage . session . set ( { [ requestId ] : timeStamp } ) ;
75
78
}
76
79
77
80
if ( method !== 'POST' ) { return ; }
@@ -86,7 +89,7 @@ browser.webRequest.onBeforeRequest.addListener(({ documentUrl, method, requestBo
86
89
recipientUrl = `${ protocol } //${ pathname . replace ( '/ask_form/' , '' ) } /` ;
87
90
}
88
91
89
- browser . storage . local . set ( {
92
+ chrome . storage . local . set ( {
90
93
[ timeStamp ] : {
91
94
recipientUrl,
92
95
content : formData [ 'post[one]' ] . map ( text => ( { type : 'text' , text, formatting : [ ] } ) ) ,
@@ -100,12 +103,15 @@ browser.webRequest.onBeforeRequest.addListener(({ documentUrl, method, requestBo
100
103
'requestBody'
101
104
] ) ;
102
105
103
- browser . webRequest . onErrorOccurred . addListener ( async ( { requestId } ) => {
104
- if ( handledRequests . has ( requestId ) ) {
105
- const timeStamp = handledRequests . get ( requestId ) ;
106
- const { [ timeStamp ] : item } = await browser . storage . local . get ( timeStamp . toString ( ) ) ;
106
+ chrome . webRequest . onErrorOccurred . addListener ( async ( { requestId } ) => {
107
+ const timeStamp =
108
+ handledRequests . get ( requestId ) ??
109
+ await chrome . storage . session . get ( requestId ) . then ( ( { [ requestId ] : timeStamp } ) => timeStamp ) ;
110
+
111
+ if ( timeStamp ) {
112
+ const { [ timeStamp ] : item } = await chrome . storage . local . get ( timeStamp . toString ( ) ) ;
107
113
item . error = true ;
108
- browser . storage . local . set ( { [ timeStamp ] : item } ) ;
114
+ chrome . storage . local . set ( { [ timeStamp ] : item } ) ;
109
115
}
110
116
} , {
111
117
urls : [
@@ -116,12 +122,15 @@ browser.webRequest.onErrorOccurred.addListener(async ({ requestId }) => {
116
122
]
117
123
} ) ;
118
124
119
- browser . webRequest . onCompleted . addListener ( async ( { requestId, statusCode } ) => {
120
- if ( / [ 4 5 ] \d \d / . test ( statusCode ) && handledRequests . has ( requestId ) ) {
121
- const timeStamp = handledRequests . get ( requestId ) ;
122
- const { [ timeStamp ] : item } = await browser . storage . local . get ( timeStamp . toString ( ) ) ;
125
+ chrome . webRequest . onCompleted . addListener ( async ( { requestId, statusCode } ) => {
126
+ const timeStamp =
127
+ handledRequests . get ( requestId ) ??
128
+ await chrome . storage . session . get ( requestId ) . then ( ( { [ requestId ] : timeStamp } ) => timeStamp ) ;
129
+
130
+ if ( / [ 4 5 ] \d \d / . test ( statusCode ) && timeStamp ) {
131
+ const { [ timeStamp ] : item } = await chrome . storage . local . get ( timeStamp . toString ( ) ) ;
123
132
item . error = true ;
124
- browser . storage . local . set ( { [ timeStamp ] : item } ) ;
133
+ chrome . storage . local . set ( { [ timeStamp ] : item } ) ;
125
134
}
126
135
} , {
127
136
urls : [
@@ -132,10 +141,10 @@ browser.webRequest.onCompleted.addListener(async ({ requestId, statusCode }) =>
132
141
]
133
142
} ) ;
134
143
135
- browser . storage . onChanged . addListener ( async ( changes , areaName ) => {
136
- const storageObject = await browser . storage [ areaName ] . get ( ) ;
144
+ chrome . storage . onChanged . addListener ( async ( changes , areaName ) => {
145
+ const storageObject = await chrome . storage [ areaName ] . get ( ) ;
137
146
const storageKeys = Object . keys ( storageObject ) . sort ( ( a , b ) => a - b ) ;
138
147
const keysToRemove = storageKeys . splice ( 0 , storageKeys . length - 512 ) ;
139
148
140
- if ( keysToRemove . length > 0 ) browser . storage [ areaName ] . remove ( keysToRemove ) ;
149
+ if ( keysToRemove . length > 0 ) chrome . storage [ areaName ] . remove ( keysToRemove ) ;
141
150
} ) ;
0 commit comments