@@ -203,14 +203,18 @@ function onBeforeSendHeaders(details) {
203
203
type = details . type ,
204
204
url = details . url ;
205
205
206
+ // option to remove x-client-data headers as well
207
+ const removeXClientData = badger . isRemoveXClientDataHeaderEnabled ( ) ;
208
+
206
209
if ( _isTabChromeInternal ( tab_id ) ) {
207
210
// DNT policy requests: strip cookies
208
211
if ( type == "xmlhttprequest" && url . endsWith ( "/.well-known/dnt-policy.txt" ) ) {
209
- // remove Cookie headers and X-Client-Data headers
212
+ // remove Cookie headers
210
213
let newHeaders = [ ] ;
214
+
211
215
for ( let i = 0 , count = details . requestHeaders . length ; i < count ; i ++ ) {
212
216
let header = details . requestHeaders [ i ] ;
213
- if ( header . name . toLowerCase ( ) != "cookie" && header . name . toLowerCase ( ) != " x-client-data" ) {
217
+ if ( header . name . toLowerCase ( ) != "cookie" || ( removeXClientData && header . name . toLowerCase ( ) != ' x-client-data' ) ) {
214
218
newHeaders . push ( header ) ;
215
219
}
216
220
}
@@ -256,10 +260,10 @@ function onBeforeSendHeaders(details) {
256
260
if ( action == constants . COOKIEBLOCK || action == constants . USER_COOKIEBLOCK ) {
257
261
let newHeaders ;
258
262
259
- // GET requests: remove cookie headers and X -client-data headers, reduce referrer header to origin
263
+ // GET requests: remove cookie ( and x -client-data if option is set) headers, reduce referrer header to origin
260
264
if ( details . method == "GET" ) {
261
265
newHeaders = details . requestHeaders . filter ( header => {
262
- return ( header . name . toLowerCase ( ) != "cookie" && header . name . toLowerCase ( ) != " x-client-data" ) ;
266
+ return ( header . name . toLowerCase ( ) != "cookie" || ( removeXClientData && header . name . toLowerCase ( ) != ' x-client-data' ) ) ;
263
267
} ) . map ( header => {
264
268
if ( header . name . toLowerCase ( ) == "referer" ) {
265
269
header . value = header . value . slice (
@@ -270,10 +274,10 @@ function onBeforeSendHeaders(details) {
270
274
return header ;
271
275
} ) ;
272
276
273
- // remove cookie, referrer, and X-Client-Data headers otherwise
277
+ // remove cookie, referrer ( and x-client-data if option is set) otherwise
274
278
} else {
275
279
newHeaders = details . requestHeaders . filter ( header => {
276
- return ( header . name . toLowerCase ( ) != "cookie" && header . name . toLowerCase ( ) != "referer" && header . name . toLowerCase ( ) != " x-client-data" ) ;
280
+ return ( header . name . toLowerCase ( ) != "cookie" && header . name . toLowerCase ( ) != "referer" && ( removeXClientData && header . name . toLowerCase ( ) != ' x-client-data' ) ) ;
277
281
} ) ;
278
282
}
279
283
0 commit comments