Skip to content

Commit 0cbdf16

Browse files
v1.2.1 deletion referer at startup
1 parent 80eee51 commit 0cbdf16

File tree

3 files changed

+97
-52
lines changed

3 files changed

+97
-52
lines changed

src/background.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
let hasInitialized = false;
2+
3+
console.log("Service Worker initialized");
4+
5+
function cleanupReferer(source) {
6+
if (hasInitialized) return;
7+
console.log(`Attempting to remove referer (triggered by: ${source})`);
8+
chrome.storage.local.remove("referer", () => {
9+
if (chrome.runtime.lastError) {
10+
console.error(`Error removing referer (${source}):`, chrome.runtime.lastError);
11+
} else {
12+
console.log(`Referer successfully removed (${source})`);
13+
hasInitialized = true;
14+
}
15+
});
16+
}
17+
18+
chrome.windows.onCreated.addListener((window) => {
19+
chrome.windows.getAll((windows) => {
20+
if (windows.length === 1) {
21+
cleanupReferer('window created');
22+
}
23+
});
24+
});
25+
26+
chrome.runtime.onInstalled.addListener((details) => {
27+
console.log("Extension event:", details.reason);
28+
cleanupReferer('installation/update');
29+
});
30+
31+
chrome.runtime.onStartup.addListener(() => {
32+
console.log("Browser started.");
33+
cleanupReferer('startup');
34+
});
35+
36+
setTimeout(() => {
37+
chrome.storage.local.get(['referer'], (result) => {
38+
if (result.referer) {
39+
console.log("Backup cleanup: referer still exists, removing it");
40+
cleanupReferer('backup check');
41+
}
42+
});
43+
}, 5000);

src/manifest.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
{
22
"manifest_version": 3,
33
"name": "Referer Spoofer",
4-
"version": "1.2.0",
4+
"version": "1.2.1",
55
"description": "Set a custom referer and refresh the page! ",
66
"permissions": ["declarativeNetRequest", "declarativeNetRequestFeedback", "activeTab", "storage", "scripting"],
77
"host_permissions": ["<all_urls>"],
8+
"background": {
9+
"service_worker": "background.js"
10+
},
811
"action": {
912
"default_popup": "popup.html",
1013
"default_icon": {

src/popup.js

Lines changed: 50 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,64 @@
11
function reloadActiveTab() {
2-
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
3-
if (chrome.runtime.lastError || !tabs[0]) {
4-
console.error("Erreur lors de la récupération de l'onglet actif :", chrome.runtime.lastError);
5-
return;
6-
}
7-
chrome.scripting.executeScript({
8-
target: { tabId: tabs[0].id },
9-
func: () => window.location.reload()
10-
});
11-
});
2+
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
3+
if (chrome.runtime.lastError || !tabs[0]) {
4+
console.error("Error retrieving the active tab:", chrome.runtime.lastError);
5+
return;
6+
}
7+
chrome.scripting.executeScript({
8+
target: { tabId: tabs[0].id },
9+
func: () => window.location.reload()
10+
});
11+
});
1212
}
1313

14-
1514
function updateDynamicRules(addRules = [], removeRuleIds = []) {
16-
chrome.declarativeNetRequest.updateDynamicRules({ addRules, removeRuleIds }, () => {
17-
if (chrome.runtime.lastError) {
18-
console.error("Erreur lors de la mise à jour des règles :", chrome.runtime.lastError);
19-
} else {
20-
reloadActiveTab();
21-
}
22-
});
15+
chrome.declarativeNetRequest.updateDynamicRules({ addRules, removeRuleIds }, () => {
16+
if (chrome.runtime.lastError) {
17+
console.error("Error updating rules:", chrome.runtime.lastError);
18+
} else {
19+
reloadActiveTab();
20+
}
21+
});
2322
}
2423

2524
document.getElementById("setReferer").addEventListener("click", () => {
26-
const referer = document.getElementById("referer").value.trim();
27-
if (!referer) {
28-
console.warn("Le champ Referer est vide.");
29-
return;
30-
}
25+
const referer = document.getElementById("referer").value.trim();
26+
if (!referer) {
27+
console.warn("The Referer field is empty.");
28+
return;
29+
}
3130

32-
chrome.storage.local.set({ referer }, () => {
33-
if (chrome.runtime.lastError) {
34-
console.error("Erreur lors de l'enregistrement du referer :", chrome.runtime.lastError);
35-
return;
36-
}
31+
chrome.storage.local.set({ referer }, () => {
32+
if (chrome.runtime.lastError) {
33+
console.error("Error saving the referer:", chrome.runtime.lastError);
34+
return;
35+
}
3736

38-
const rule = {
39-
id: 1,
40-
priority: 1,
41-
action: {
42-
type: "modifyHeaders",
43-
requestHeaders: [
44-
{ header: "Referer", operation: "set", value: referer }
45-
]
46-
},
47-
condition: {
48-
urlFilter: "*",
49-
resourceTypes: ["main_frame"]
50-
}
51-
};
37+
const rule = {
38+
id: 1,
39+
priority: 1,
40+
action: {
41+
type: "modifyHeaders",
42+
requestHeaders: [
43+
{ header: "Referer", operation: "set", value: referer }
44+
]
45+
},
46+
condition: {
47+
urlFilter: "*",
48+
resourceTypes: ["main_frame"]
49+
}
50+
};
5251

53-
updateDynamicRules([rule], [1]);
54-
});
52+
updateDynamicRules([rule], [1]);
53+
});
5554
});
5655

5756
document.getElementById("deleteReferer").addEventListener("click", () => {
58-
chrome.storage.local.remove("referer", () => {
59-
if (chrome.runtime.lastError) {
60-
console.error("Erreur lors de la suppression du referer :", chrome.runtime.lastError);
61-
return;
62-
}
63-
updateDynamicRules([], [1]);
64-
});
57+
chrome.storage.local.remove("referer", () => {
58+
if (chrome.runtime.lastError) {
59+
console.error("Error deleting the referer:", chrome.runtime.lastError);
60+
return;
61+
}
62+
updateDynamicRules([], [1]);
63+
});
6564
});

0 commit comments

Comments
 (0)