@@ -203,14 +203,18 @@ function onBeforeSendHeaders(details) {
203203 type = details . type ,
204204 url = details . url ;
205205
206+ // option to remove x-client-data headers as well
207+ const removeXClientData = badger . isRemoveXClientDataHeaderEnabled ( ) ;
208+
206209 if ( _isTabChromeInternal ( tab_id ) ) {
207210 // DNT policy requests: strip cookies
208211 if ( type == "xmlhttprequest" && url . endsWith ( "/.well-known/dnt-policy.txt" ) ) {
209- // remove Cookie headers and X-Client-Data headers
212+ // remove Cookie headers
210213 let newHeaders = [ ] ;
214+
211215 for ( let i = 0 , count = details . requestHeaders . length ; i < count ; i ++ ) {
212216 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' ) ) {
214218 newHeaders . push ( header ) ;
215219 }
216220 }
@@ -256,10 +260,10 @@ function onBeforeSendHeaders(details) {
256260 if ( action == constants . COOKIEBLOCK || action == constants . USER_COOKIEBLOCK ) {
257261 let newHeaders ;
258262
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
260264 if ( details . method == "GET" ) {
261265 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' ) ) ;
263267 } ) . map ( header => {
264268 if ( header . name . toLowerCase ( ) == "referer" ) {
265269 header . value = header . value . slice (
@@ -270,10 +274,10 @@ function onBeforeSendHeaders(details) {
270274 return header ;
271275 } ) ;
272276
273- // remove cookie, referrer, and X-Client-Data headers otherwise
277+ // remove cookie, referrer ( and x-client-data if option is set) otherwise
274278 } else {
275279 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' ) ) ;
277281 } ) ;
278282 }
279283
0 commit comments