From 41d26e15d6f0864f4751b43ee887b04d17d9a32f Mon Sep 17 00:00:00 2001 From: Guilherme Baptista Date: Thu, 15 Feb 2018 19:02:07 -0200 Subject: [PATCH 1/2] fix headers with cookies for firefox --- .../headers_and_options_listeners.js | 61 +++++++++++-------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/js/background/headers_and_options_listeners.js b/js/background/headers_and_options_listeners.js index 2a82ee9..eab487f 100644 --- a/js/background/headers_and_options_listeners.js +++ b/js/background/headers_and_options_listeners.js @@ -103,48 +103,55 @@ var update_security_policies_and_set_cookies = function(request_details) { if(cached_settings) { // TODO check if cookie names exist. var le_cookie_value = 'f'; + var ld_cookie_value = 'f'; if(should_intercept_header(request_details.url)) { le_cookie_value = 't'; } - request_details.responseHeaders.push({ - name: 'Set-Cookie', - value: 'le=' + le_cookie_value + '; Path=/; Max-Age=1' - }); + if(cached_settings['popup']['show_code_details']) { + ld_cookie_value = 't'; + } - request_details.responseHeaders.push({ - name: 'Set-Cookie', - value: 'ls=' + settings_for_url(request_details.url, true) + '; Path=/; Max-Age=1' - }); + var luminous_cookies = []; - var ld_value = 'f'; + luminous_cookies.push('le=' + le_cookie_value + '; Path=/; Max-Age=1;'); + luminous_cookies.push( + 'ls=' + settings_for_url(request_details.url, true) + '; Path=/; Max-Age=1;' + ); + luminous_cookies.push('ld=' + ld_cookie_value + '; Path=/; Max-Age=1;'); - if(cached_settings['popup']['show_code_details']) { - ld_value = 't'; - } + var cookies_injected = false; + + if(typeof browser !== 'undefined') { + // Probably a Gecko-based browser + for(let header of request_details.responseHeaders) { + if(!cookies_injected && header.name.toLowerCase() == 'set-cookie') { + cookies_injected = true; + header.value += "\n" + luminous_cookies.join("\n"); + } + } - request_details.responseHeaders.push({ - name: 'Set-Cookie', - value: 'ld=' + ld_value + '; Path=/; Max-Age=1' - }); + if(!cookies_injected) { + request_details.responseHeaders.push({ + name: 'Set-Cookie', value: luminous_cookies.join("\n") + }); + } + } else { + // Probably a Chromium-based browser + for(i in luminous_cookies) { + request_details.responseHeaders.push({ + name: 'Set-Cookie', value: luminous_cookies[i] + }); + } + } } return { responseHeaders: request_details.responseHeaders }; } -chrome.webRequest.onBeforeSendHeaders.addListener( - function(request_details) { - // TODO Remove cookies from haders. - - return { responseHeaders: request_details.responseHeaders }; - }, - { urls: [''], types: ['main_frame', 'sub_frame'] }, - ['requestHeaders', 'blocking'] -) - chrome.webRequest.onHeadersReceived.addListener( update_security_policies_and_set_cookies, - { 'urls': [''] }, + { urls: [''], types: ['main_frame', 'sub_frame'] }, ['responseHeaders', 'blocking'] ); From d7f2429addcd09e6802e0168892928244e3fb323 Mon Sep 17 00:00:00 2001 From: Guilherme Baptista Date: Thu, 15 Feb 2018 19:04:05 -0200 Subject: [PATCH 2/2] fix Maximum call stack size exceeded --- js/content/interceptor.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/js/content/interceptor.js b/js/content/interceptor.js index 0a630c2..122e3e3 100644 --- a/js/content/interceptor.js +++ b/js/content/interceptor.js @@ -75,7 +75,7 @@ var increment_counter = function(kind, type, result, details) { ); counters_changed = true; - }, 0); + }, 0, '__INTERNAL_LUMINOUS_CODE__'); } var is_allowed = function(kind, type) { @@ -137,7 +137,7 @@ if(!get_options()['injection_disabled']) { if (typeof(listener) === 'function') { return listener(event); - } else { + } else if (listener && typeof(listener.handleEvent) === 'function') { return listener.handleEvent(event); } } @@ -291,7 +291,7 @@ if(!get_options()['injection_disabled']) { ) { var super_this = this; - if(get_options()['injection_disabled']) { + if(get_options()['injection_disabled'] || p1 == '__INTERNAL_LUMINOUS_CODE__') { return original_window_setInterval.call( super_this, function_or_code, delay, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12 @@ -359,7 +359,7 @@ if(!get_options()['injection_disabled']) { ) { var super_this = this; - if(get_options()['injection_disabled']) { + if(get_options()['injection_disabled'] || p1 == '__INTERNAL_LUMINOUS_CODE__') { return original_window_setTimeout.call( super_this, function_or_code, delay, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12 @@ -411,4 +411,4 @@ original_window_setInterval(function() { element.setAttribute('data-changed', 'true'); } -}, 300); +}, 300, '__INTERNAL_LUMINOUS_CODE__');