This extension works on Firefox
haxibami opened this issue ยท 29 comments
Procedure (after installation)
Note: I tested this with OldTweetDeckFirefox.zip
v1, generated by npm run build
.
Note2: This procedure is for v1, not v2
1. Grant permissions manually
In the current implementation of Manifest V3, Firefox treats some permissions listed in host_permissions
as "optional". So users need to manually grant them from "about:addons
> Extensions > Old TweetDeck > Manage > Permissions".
2. Disable tracking protection
Also, Firefox's "Enhanced Tracking Protection" prevents <iframe>
elements (inserted by this extension) from loading correctly. You can add exception for TweetDeck.
How were you able to install it?
The author provides a build script (pack.js
) for Firefox. You can run it to generate a patched .zip
file.
git clone https://github.com/dimdenGD/OldTweetDeck.git
cd OldTweetDeck
npm install
npm run build
mv ../OldTweetDeckFirefox.zip ./
You should then find OldTweetDeckFirefox.zip
. Try temporary installation (unsigned) or self-distribution (signed), as you wish.
Thank you!
Heads up!
You will need Firefox Developer or Nightly to add unsigned extensions.
The
pack.js
file seems to be running as JScript, not JavaScript. How did you run it? do you have Node.js installed?
I double clicked on the file in the folder and it gave that error. I have installed Node.js and attempted to run the script with it but it opens for a split second and then closes after doing seemingly nothing.
check parent folder of folder it's in, archives probably appeared in it
run npm install
in the folder
I've built extension and made a Release, check https://github.com/dimdenGD/OldTweetDeck/releases/tag/v1.0.2
Sorry, I feel stupid, but I can't understand how to "add" the zip into firefox :s. When I try to load it (using developer version or my normal version) I get an error.
I downloaded the zip version in the BetterTweetdeck fork page.
Nevermind, found it:
- First, install Firefox developer
- Disable signed extension in
about:config
:xpinstall.signatures.required
set on false - Load the extension in
about:addons
I need to refresh a lot to get it works, on my side!
If you get the login error, or it just doesn't load, refresh a few times.
I don't know how many "a few" is, but it's still not working. If this is something that has to be done every new session, It's probably not worth it for the time being
Any way of getting legacy back is still better than dealing with "XPro" to be honest.
manifest.json
lacks an add-on ID in "browser_specific_settings"
, meaning it will only install through about:debugging
on firefox (even on nightly and developer), and won't install permanently.
However, reportedly chrome doesn't support the "browser_specific_settings"
key and will show a warning if it's included. One possible solution is separate manifest.json
per platform
This is already done in pack.js
You can only install unsigned extensions on Firefox Beta/Nightly
Does it not work on developer (which lists being on aurora update channel)?
Edit: It does, after restarting with all add-ons disabled, installing, and then re-starting, for some reason
Anyone else getting near unusable lag after leaving the tab open for an extended amount of time? (Firefox Dev Edition)
still doesn't work for Firefox Nightly or ERS even with v2.02 while it works just fine for Chrome
In my case, v2 does not work on Firefox. <script>
elements injected by element.innerHTML
in injection.js
are blocked by content security policy (CSP).
So I tried loading these scripts (bundle.js
, vendor.js
) as external files (element.src
) - this time, they load fine, but the use of eval()
in them violates CSP.
In any case, Content-Security-Policy
header does not seem to be removed, despite the existence of the relevant code.
OK. Found the cause:
In Firefox, extraInfoSpec
in browser.webRequest.onHeadersReceived.addListener
only allows the values "blocking"
or "responseHeaders"
(or both) ,while in Chrome "extraHeaders"
is also supported.
So we need some switching like this:
diff --git a/background.js b/background.js
index 235f726..d9ddd78 100644
--- a/background.js
+++ b/background.js
@@ -1,3 +1,11 @@
+const extraInfoSpec = ["blocking", "responseHeaders"];
+
+if (
+ chrome.webRequest.OnHeadersReceivedOptions.hasOwnProperty("EXTRA_HEADERS")
+) {
+ extraInfoSpec.push("extraHeaders");
+}
+
chrome.webRequest.onHeadersReceived.addListener(
function(details) {
let headers = details.responseHeaders.filter(header => header.name.toLowerCase() !== 'content-security-policy' && header.name.toLowerCase() !== 'location');
@@ -6,7 +14,7 @@ chrome.webRequest.onHeadersReceived.addListener(
}
},
{urls: ["https://tweetdeck.twitter.com/*"]},
- ["blocking", "responseHeaders", "extraHeaders"]
+ extraInfoSpec
);
chrome.webRequest.onBeforeRequest.addListener(
Thanks, I've updated repo and released new version
Sorry for bringing this up, but it either seems broken again or it was just temporarily.
All i get is this (stuck on this page), even after clearing cookies, reinstalling the extension several times and refreshing the page once a minute for almost a hour. It worked the first time, but not once since then.
edit: nwm, it worked once i removed the login part of the url.
You can only install unsigned extensions on Firefox Beta/Nightly
You can install it on main firefox as a "temporary extension" in about:debugging
> This Firefox.
It'll uninstall upon closing but it's still an alternative for main fox.