-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Firefox Extension that enables Slack Huddles on Linux
Slack blocks the use of huddles on Firefox for Linux. This extension enables the use of huddles by spoofing a Windows user-agent. This extension currently only works on Linux x86_64.
- Loading branch information
0 parents
commit 3e61993
Showing
6 changed files
with
95 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
*.xpi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
release: clean prod | ||
zip -r -FS slack.xpi *.json *.js | ||
|
||
debug: | ||
sed -i 's;\.slack\.com;.browserleaks.com;g' *.json *.js | ||
|
||
prod production: | ||
sed -i 's;\.browserleaks\.com;.slack.com;g' *.json *.js | ||
|
||
clean: | ||
rm -f slack.xpi | ||
|
||
.PHONY: release debug prod production clean |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
"use strict"; | ||
|
||
/** | ||
* Rewrite the User-Agent header to be Windows. | ||
*/ | ||
function rewriteUserAgentHeader(e) { | ||
for (let header of e.requestHeaders) { | ||
if (header.name.toLowerCase() === "user-agent") { | ||
header.value = header.value.replace("X11; Linux x86_64;", "Windows NT 10.0; Win64; x64;"); | ||
} | ||
} | ||
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: ["*://*.slack.com/*"]}, | ||
["blocking", "requestHeaders"]); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
function main() { | ||
if (navigator.platform === "Linux x86_64") { | ||
Object.defineProperties(navigator, { | ||
'appVersion': { | ||
value: "5.0 (Windows)" | ||
}, | ||
'oscpu': { | ||
value: "Windows NT 10.0; Win64; x64" | ||
}, | ||
'platform': { | ||
value: "Win32" | ||
} | ||
}); | ||
} | ||
} | ||
|
||
main(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
{ | ||
"manifest_version": 2, | ||
"name": "Slack Huddles for Linux", | ||
"version": "0.4", | ||
"description": "Enables Slack Huddles on Linux via User-Agent spoofing.", | ||
|
||
"browser_specific_settings": { | ||
"gecko": { | ||
"id": "slack@chaotic-neutral.org" | ||
} | ||
}, | ||
|
||
"permissions": [ | ||
"webRequest", | ||
"webRequestBlocking", | ||
"*://*.slack.com/*" | ||
], | ||
|
||
"web_accessible_resources": [ | ||
"inject.js" | ||
], | ||
|
||
"background": { | ||
"scripts": ["http.js"] | ||
}, | ||
|
||
"content_scripts": [ | ||
{ | ||
"matches": ["*://*.slack.com/*"], | ||
"js": ["navigator.js"], | ||
"run_at": "document_start" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
function main() { | ||
const script = document.createElement('script'); | ||
script.src = chrome.runtime.getURL('inject.js'); | ||
document.documentElement.appendChild(script); | ||
} | ||
|
||
main(); |