From 75e10fb394a348c168566d91f6dc5428c66e7d5b Mon Sep 17 00:00:00 2001 From: doma Date: Tue, 1 Sep 2020 19:00:35 +0200 Subject: [PATCH] added user-agent logic --- bluepill/background.js | 67 +++++++++++++++++++++++++++++++++++------- bluepill/manifest.json | 4 +-- 2 files changed, 59 insertions(+), 12 deletions(-) diff --git a/bluepill/background.js b/bluepill/background.js index 4e71373..ac6f618 100644 --- a/bluepill/background.js +++ b/bluepill/background.js @@ -1,25 +1,72 @@ 'use strict'; var browser = browser || chrome +var ua = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"; +var targetPage = "*://*/*"; +var extension_status = 0; browser.runtime.onInstalled.addListener(function() { - browser.storage.sync.set({number: 0}, function() { - console.log('The number is set to 0.'); + browser.storage.sync.set({extension_status: 0}, function() { + console.log('The extension_status is set to 0.'); }); }); function updateIcon() { - browser.storage.sync.get('number', function(data) { - var current = data.number; - browser.browserAction.setIcon({path: 'icon' + current + '.png'}); - current++; - if (current > 1) - current = 0; - browser.storage.sync.set({number: current}, function() { - console.log('The number is set to ' + current); + browser.storage.sync.get('extension_status', function(data) { + extension_status = data.extension_status; + + browser.browserAction.setIcon({path: 'icon' + extension_status + '.png'}); + extension_status++; + if (extension_status > 1){ + extension_status = 0; + } + browser.storage.sync.set({extension_status: extension_status}, function() { + console.log('The extension_status is set to ' + extension_status); }); }); }; + + + browser.browserAction.onClicked.addListener(updateIcon); //updateIcon(); +// +//var ua = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"; +var targetPage = "*://*/*"; + +/* +Rewrite the User-Agent header to "ua". +*/ +function rewriteUserAgentHeader(e) { + + browser.storage.sync.get('extension_status', function(data) { + extension_status = data.extension_status; + console.log('Browser http request: ' + extension_status); + + }); + console.log(extension_status); + if(extension_status == 0){ + return {requestHeaders: e.requestHeaders}; + } + + + for (var header of e.requestHeaders) { + if (header.name.toLowerCase() === "user-agent") { + header.value = ua; + } + } + return {requestHeaders: e.requestHeaders}; + +} + +/* +Add rewriteUserAgentHeader as a listener to onBeforeSendHeaders, +only for the target page. + +Make it "blocking" so we can modify the headers. +*/ +browser.webRequest.onBeforeSendHeaders.addListener(rewriteUserAgentHeader, + {urls: [targetPage]}, + ["blocking", "requestHeaders"]); + diff --git a/bluepill/manifest.json b/bluepill/manifest.json index 12ad178..43a10c1 100644 --- a/bluepill/manifest.json +++ b/bluepill/manifest.json @@ -13,8 +13,8 @@ "scripts": ["background.js"], "persistent": false }, - "permissions": ["storage"], - "browser_action": { + "permissions": ["storage", "webRequest", "webRequestBlocking", "*://*/*"], + "browser_action": { "name": "Click to change your browsers perspective", "default_icon": "icon0.png" },