diff --git a/Makefile b/Makefile index 1d8ec41..bf99db0 100644 --- a/Makefile +++ b/Makefile @@ -1,43 +1,38 @@ -PREFIX:=/usr + +PREFIX?=/usr default: zip +PWD=`pwd` + install: uninstall mkdir -p $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io \ - $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/i2pcontrol \ - $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/torrent \ - $(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} - cp -r ./icons/ $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp -r ./_locales/ $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp -r ./options/ $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.js $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp ./i2pcontrol/i2pcontrol.js $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/i2pcontrol/i2pcontrol.js - cp ./torrent/*.js $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/torrent/ - cp ./torrent/*.html $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/torrent/ - cp ./torrent/UNLICENSE $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/torrent/ - cp ./*.html $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.css $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.md $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.xpi $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.png $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.torrent $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp ./manifest.json $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - cp ./LICENSE $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/ - ln -s $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io \ $(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} + @echo $(PWD) + cp -v ./* $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/; true + cp -vr ./i2pcontrol $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/i2pcontrol + cp -vr ./torrent $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/torrent + cp -vr ./_locales $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/_locales + cp -vr ./icons $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/icons + cp -vr ./options $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/options + make link + +link: + ln -sf $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io \ + $(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/i2ppb@eyedeekay.github.io uninstall: rm -rf $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io \ $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io \ - $(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} + $(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/i2ppb@eyedeekay.github.io ls: ls -lah $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io; \ ls -lah $(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} -clean: - rm -fr ../i2psetproxy.js.zip ../i2p_proxy*.xpi ../i2p*.xpi #../i2psetproxy.js_*.* +clean: rc clean-artifacts + rm -fr ../i2psetproxy.js.zip ../i2p_proxy*.xpi ../i2p*.xpi *.torrent #../i2psetproxy.js_*.* ## EVEN RELEASES are AMO RELEASES ## ODD RELEASES are SELFHOSTED RELEASES @@ -97,26 +92,22 @@ torrenthelp: @echo "" >> torrent/index.html @echo "" >> torrent/index.html -xpi: - #wget -O ../i2ppb@eyedeekay.github.io.xpi \ - #https://addons.mozilla.org/firefox/downloads/file/3419789/i2psetproxyjs-$(MOZ_VERSION)-an+fx.xpi - #cp ../i2ppb@eyedeekay.github.io.xpi ./i2ppb@eyedeekay.github.io.xpi - cp ~/Downloads/i2p_in_private_browsing-$(VERSION)-an+fx.xpi ./i2ppb@eyedeekay.github.io.xpi +xpi: getxpi version: - sed -i 's|7647|7657|g' *.js* */*.js* + sed -i 's|7647|7657|g' *.js* torrent/*.js* sed -i 's|$(shell grep "\"version\": " manifest.json)| \"version\": \"$(VERSION)\",|g' manifest.json sed -i 's|$(shell grep "\"version_name\": " manifest.json)| \"version_name\": \"$(VERSION)\",|g' manifest.json moz-version: - sed -i 's|7647|7657|g' *.js* */*.js* + sed -i 's|7647|7657|g' *.js* torrent/*.js* sed -i 's|$(shell grep "\"version\": " manifest.json)| \"version\": \"$(MOZ_VERSION)\",|g' manifest.json sed -i 's|$(shell grep "\"version_name\": " manifest.json)| \"version_name\": \"$(MOZ_VERSION)\",|g' manifest.json rhz-version: sed -i 's|$(shell grep "\"version\": " manifest.json)| \"version\": \"$(VERSION)1\",|g' manifest.json sed -i 's|$(shell grep "\"version_name\": " manifest.json)| \"version_name\": \"$(VERSION)1-rhizome\",|g' manifest.json - sed -i 's|7657|7647|g' *.js* */*.js* + sed -i 's|7657|7647|g' *.js* torrent/*.js* zip: version zip --exclude="./i2ppb@eyedeekay.github.io.xpi" \ @@ -135,7 +126,7 @@ zip: version rc: @grep "$(VERSION)" debian/changelog @echo "changelog is prepared" - rm *.xpi + rm -f *.xpi rtest: rc index torrenthelp @@ -152,7 +143,7 @@ recreate-release: delete-release release upload upload: upload-xpi upload-deb -full-release: release submit deb upload torrent upload-torrent +full-release: release submit upload-xpi torrent upload-torrent deb upload-deb upload-rss WEB_EXT_API_KEY=AMO_KEY WEB_EXT_API_SECRET=AMO_SECRET @@ -173,12 +164,12 @@ moz-sign: version clean-artifacts @echo "Using the 'sign' target to instantly sign an extension for self-distribution" @echo "requires a JWT API Key and Secret from addons.mozilla.org to be made available" @echo "to the Makefile under the variables WEB_EXT_API_KEY and WEB_EXT_API_SECRET." - web-ext-submit --channel unlisted --config-discovery false --api-key $(WEB_EXT_API_KEY) --api-secret $(WEB_EXT_API_SECRET); true + web-ext-submit --channel unlisted --config-discovery false --api-key $(WEB_EXT_API_KEY) --api-secret $(WEB_EXT_API_SECRET) make copyss sleep 5 copyss: - cp web-ext-artifacts/*.xpi ./i2ppb@eyedeekay.github.io.xpi; true + cp web-ext-artifacts/*.xpi ../i2ppb@eyedeekay.github.io.xpi; true ##EVEN NUMBERED, MOZILLA-DISTRIBUTED VERSIONS HERE! moz-submit: moz-version @@ -198,7 +189,8 @@ rhz-submit: rhz-version getxpi: gothub download -t $(VERSION) -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -n i2ppb@eyedeekay.github.io.xpi - cp ./i2ppb@eyedeekay.github.io.xpi ./i2ppb-$(VERSION)@eyedeekay.github.io.xpi + mv ./i2ppb@eyedeekay.github.io.xpi ../i2ppb-$(VERSION)@eyedeekay.github.io.xpi + cp ../i2ppb-$(VERSION)@eyedeekay.github.io.xpi ../i2ppb@eyedeekay.github.io.xpi torrent: getxpi rm -f "./i2ppb-$(VERSION)@eyedeekay.github.io.xpi.torrent" @@ -239,7 +231,7 @@ torrent: getxpi -n "i2ppb-$(VERSION)@eyedeekay.github.io.xpi" \ -o "i2ppb-$(VERSION)@eyedeekay.github.io.xpi.torrent" \ -w https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/download/$(VERSION)/i2ppb@eyedeekay.github.io.xpi \ - i2ppb@eyedeekay.github.io.xpi; true + ../i2ppb@eyedeekay.github.io.xpi; true cp -v "./i2ppb-$(VERSION)@eyedeekay.github.io.xpi.torrent" "./i2ppb@eyedeekay.github.io.xpi.torrent" make index @@ -247,7 +239,7 @@ upload-torrent: gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2ppb@eyedeekay.github.io.xpi.torrent" -f "./i2ppb-$(VERSION)@eyedeekay.github.io.xpi.torrent" upload-xpi: - gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2ppb@eyedeekay.github.io.xpi" -f "./i2ppb@eyedeekay.github.io.xpi" + gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2ppb@eyedeekay.github.io.xpi" -f "../i2ppb@eyedeekay.github.io.xpi" upload-deb: gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2psetproxy.js_$(VERSION)-1_amd64.deb" -f "../i2psetproxy.js_$(VERSION)-1_amd64.deb" @@ -262,18 +254,22 @@ upload-docs: gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t docs -n "Landing Page Documentation.pdf" -f ../smartlander.pdf gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t docs -n "Browser Design Documentation.pdf" -f ../browser.pdf -fmt: +fmt: fmt-css fmt-html fmt-js + +fmt-css: cleancss -O1 all -O2 all --format beautify home.css -o .home.css && mv .home.css home.css cleancss -O1 all -O2 all --format beautify info.css -o .info.css && mv .info.css info.css cleancss -O1 all -O2 all --format beautify search.css -o .search.css && mv .search.css search.css cleancss -O1 all -O2 all --format beautify sidebar.css -o .sidebar.css && mv .sidebar.css sidebar.css cleancss -O1 all -O2 all --format beautify options/options.css -o options/.options.css && mv options/.options.css options/options.css + +fmt-html: tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes index.html > .index.html; mv .index.html index.html tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes window.html > .window.html; mv .window.html window.html tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes home.html > .home.html; mv .home.html home.html tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes toopie.html > .toopie.html; mv .toopie.html toopie.html + tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes security.html > .security.html; mv .security.html security.html tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes options/options.html > options/.options.html; mv options/.options.html options/options.html - make fmt-js fmt-js: find . -path ./node_modules -prune -o -name '*.js' -exec prettier --write {} \; @@ -284,19 +280,15 @@ lint: gjslint *.js; true #eslint --color *.js -deborig: fmt version +deborig: version rm -rf ../i2psetproxy.js-$(VERSION) - cp -r . ../i2psetproxy.js-$(VERSION) + mkdir -p ../i2psetproxy.js-$(VERSION) + cp -r ./* ../i2psetproxy.js-$(VERSION) cd ../i2psetproxy.js-$(VERSION) && \ - rm -rf web-ext-artifacts && \ + rm -rf web-ext-artifacts .git node_modules && \ tar \ -cvz \ - --exclude=.git \ --exclude=i2psetproxy.js.gif \ - --exclude=node_modules \ - --exclude=web-ext-artifacts \ - --exclude=*.xpi \ - --exclude=*/*.xpi \ --exclude=*.pdf \ -f ../i2psetproxy.js_$(VERSION).orig.tar.gz \ . @@ -311,16 +303,16 @@ dat: rss: torrent rm -f releases.diff - grep "$(MAGNET)" .releases.atom && false || true mv releases.atom .releases.atom wget https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases.atom - diff releases.atom .releases.atom | tee releases.diff - patch releases.atom $(VERSION)|$(VERSION)\n |g" releases.atom -upload-rss: +upload-rss: rss gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t docs -n "releases.atom" -f releases.atom +upload-updatemanifest: + gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t docs -n "updateManifest.json" -f updateManifest.json + webext: web-ext run -u "about:devtools-toolbox?type=extension&id=i2ppb%40eyedeekay.github.io" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 327773e..e925d6e 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -16,7 +16,7 @@ "description": "Description of the extension." }, "extensionVersion": { - "message": "0.57", + "message": "0.63", "description": "Version of the extension." }, "extensionStatus": { @@ -259,6 +259,30 @@ "message": "7657", "description": "Port for the Router Console" }, + "isBase32": { + "message": "I2P Base32-Formatted Address", + "description": "Message for site info panel base32" + }, + "isHostName": { + "message": "I2P Jump Hostname", + "description": "Message for the site info panel hostname" + }, + "siteLabel": { + "message": "Address/Site Information:", + "description": "Label for i2p site info" + }, + "certLabel": { + "message": "Certificate Information:", + "description": "Label for certificate info" + }, + "certAbsent": { + "message": "This site is not using HTTPS. It is still verified cryptographically by I2P.", + "description": "Content for certificate info if absent" + }, + "certPresent": { + "message": "This site is using HTTPS. HTTPS over I2P is experimental and requires self-signed certificates or alternate root authorites.", + "description": "Content for certificate info if present" + }, "protocolHandlerValue": { "message": "http://127.0.0.1:7657/i2psnark/?nofilter_newURL=%s&action=Add&foo=Add+torrent", "description": "Value for the magnet protocol handler" diff --git a/background.js b/background.js index c16a8f7..b068f45 100644 --- a/background.js +++ b/background.js @@ -439,3 +439,47 @@ function handleClick() { browser.pageAction.openPopup(); } browser.pageAction.onClicked.addListener(handleClick); + +async function certCheck(details) { + if (details.url.startsWith("https")) { + console.log("(cert) https site", details.url); + } else { + return; + } + + if (!details.url.includes(".i2p")) { + return; + } + + var tabs = await browser.tabs.query({ active: true }); + + if (tabs == null) { + return; + } + + console.log("(cert) checking cert", tabs); + + for (tab in tabs) { + if (details.url == tabs[tab].url) { + console.log("(cert) right tab", tabs[tab].id); + try { + let securityInfo = await browser.webRequest.getSecurityInfo( + details.requestId, + { certificateChain: true } + ); + console.log("(cert) state is complete", securityInfo); + console.log("(cert) certificates", securityInfo.certificates); + } catch (error) { + console.error(error); + } + } + } +} + +// Listen for onHeaderReceived for the target page. +// Set "blocking" and "responseHeaders". +browser.webRequest.onHeadersReceived.addListener( + certCheck, + { urls: [""] }, + ["blocking", "responseHeaders"] +); diff --git a/cert.js b/cert.js new file mode 100644 index 0000000..0cd5aae --- /dev/null +++ b/cert.js @@ -0,0 +1,52 @@ +function blankContent(id) { + let infoTitle = document.getElementById(id); + if (infoTitle === null) { + console.log("content error", id); + return; + } + infoTitle.textContent = ""; +} + +function contentUpdateById(id, message) { + let infoTitle = document.getElementById(id); + let messageContent = chrome.i18n.getMessage(message); + if (infoTitle === null) { + console.log("content error", id, messageContent); + return; + } + infoTitle.textContent = messageContent; +} + +contentUpdateById("TypeLabel", "siteLabel"); + +contentUpdateById("CertLabel", "certLabel"); + +function tabCheck(tabInfo) { + // Information Section + console.log("(cert) checking tab"); + var host = tabInfo[0].url.split(".i2p")[0] + ".i2p"; + if (host.length < 51) { + contentUpdateById("AddressInfo", "isHostName"); + } else { + if (host.endsWith("b32.i2p")) { + contentUpdateById("AddressInfo", "isBase32"); + } + } + if (host.startsWith("https")) { + contentUpdateById("AddressCertInfo", "certPresent"); + console.log("(cert) initiating request to check server cert"); + fetch(host).then(response => { + console.log("Updating cert information", response); + }); + } else { + contentUpdateById("AddressCertInfo", "certAbsent"); + blankContent("SignedLabel"); + } +} + +function tabError(error) { + console.log(`Error: ${error}`); +} + +const gettingCurrent = browser.tabs.query({ active: true }); +gettingCurrent.then(tabCheck, tabError); diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..3670907 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,6 @@ +#! /bin/sh + +ln -sf /usr/share/webext/i2ppb@eyedeekay.github.io \ +/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/i2ppb@eyedeekay.github.io + +touch /usr/share/webext/i2ppb@eyedeekay.github.io/manifest.json diff --git a/debian/rules b/debian/rules index 043497e..6a4cd17 100755 --- a/debian/rules +++ b/debian/rules @@ -3,26 +3,7 @@ %: dh $@ +export PREFIX=debian/i2psetproxy.js/usr + override_dh_auto_install: - mkdir -p $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io \ - $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/i2pcontrol \ - $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/torrent \ - $$(pwd)/debian/i2psetproxy.js/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} - cp -r ./icons/ $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp -r ./options/ $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp -r ./_locales/ $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.js $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp ./i2pcontrol/i2pcontrol.js $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/i2pcontrol/ - cp ./torrent/*.js $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/torrent/ - cp ./torrent/*.html $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/torrent/ - cp ./torrent/UNLICENSE $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/torrent/ - cp ./*.html $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.css $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.md $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.xpi $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.torrent $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp ./*.png $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp ./manifest.json $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - cp ./LICENSE $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io/ - ln -sf $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2ppb@eyedeekay.github.io \ - $$(pwd)/debian/i2psetproxy.js/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} + make install diff --git a/debian/source/include-binaries b/debian/source/include-binaries index 58e31e0..dcf7af0 100644 --- a/debian/source/include-binaries +++ b/debian/source/include-binaries @@ -1,7 +1,3 @@ i2psetproxy.js.gif -i2psetproxy.js@eyedeekay.github.io.xpi -i2ppb@eyedeekay.github.io.xpi -i2ppb-0.59@eyedeekay.github.io.xpi -web-ext-artifacts/i2p_in_private_browsing-0.51-an+fx.xpi smartlander.pdf browser.pdf \ No newline at end of file diff --git a/host.js b/host.js index 6dea4ed..5274869 100644 --- a/host.js +++ b/host.js @@ -8,6 +8,9 @@ function proxyHost(url) { if (hostname == "proxy.i2p") { return true; } + if (hostname == "7egf7fmpbewl35qvxxyff7k62ijgfm47nfmbyy3fa7epsaflyxiq.b32.i2p") { + return true; + } return false; } diff --git a/i2ppb-0.55@eyedeekay.github.io.xpi.torrent b/i2ppb-0.55@eyedeekay.github.io.xpi.torrent deleted file mode 100644 index c2fe343..0000000 --- a/i2ppb-0.55@eyedeekay.github.io.xpi.torrent +++ /dev/null @@ -1,4 +0,0 @@ -d8:announce76:http://zviyq72xcmjupynn5y2f5qa3u7bxyu34jnqmwt6czte2l7idxm7q.b32.i2p/announce13:announce-listll76:http://zviyq72xcmjupynn5y2f5qa3u7bxyu34jnqmwt6czte2l7idxm7q.b32.i2p/announceel69:http://s5ikrdyjwbcgxmqetxb3nyheizftms7euacuub2hic7defkh3xhq.b32.i2p/ael76:http://uajd4nctepxpac4c4bdyrdw7qvja2a5u3x25otfhkptcjgd53ioq.b32.i2p/announceel69:http://w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p/ael33:http://explodie.org:6969/announceel43:http://tracker.opentrackr.org:1337/announceel41:http://tracker.kamigami.org:2710/announceel49:http://tracker.internetwarriors.net:1337/announceel38:http://tracker.darli.net:6611/announceel43:http://tracker.corpscorp.online:80/announceel29:http://tracker.bz:80/announceel37:http://tracker.bt4g.com:2095/announceel42:http://retracker.sevstar.net:2710/announceel39:http://h4.trakx.nibba.trade:80/announceel36:http://www.proxmox.com:6969/announceel36:http://www.loushao.net:8080/announceel36:http://vps02.net.orel.ru:80/announceel39:http://tracker4.itzmx.com:2710/announceel39:http://tracker3.itzmx.com:6961/announceel39:http://tracker2.itzmx.com:6961/announceel39:http://tracker1.itzmx.com:8080/announceel42:http://tracker01.loveapp.com:6789/announceel42:http://tracker.zerobytes.xyz:1337/announceel41:http://tracker.yoshi210.com:6969/announceel41:http://tracker.torrentyorg.pl:80/announceel39:http://tracker.nyap2p.com:8080/announceel35:http://tracker.lelux.fi:80/announceel37:http://tracker.gbitt.info:80/announceel27:http://pow7.com:80/announceel42:http://opentracker.i2p.rocks:6969/announceel40:http://open.acgtracker.com:1096/announceel40:http://open.acgnxtracker.com:80/announceel37:http://mail2.zelenaya.net:80/announceel28:http://acg.rip:6699/announceee10:created by13:mktorrent 1.113:creation datei1578180361e4:infod6:lengthi4582809e4:name36:./i2ppb-0.55@eyedeekay.github.io.xpi12:piece lengthi262144e6:pieces360:%/ԬxƓ4աGBҌ2Fi'NdC*Pהs6>PkEӃj@ -X?!†skm{*`0J%,O s˛Zs" --J?YueIuO6jnd*)KZC0!"SIv;[Tіh¶a5&]AdJOu8扙Ͳ݃J(~Ыuҫiy{7m i:ʼns;F\pSa~߳x~]\T6P*eSVy -3o W+ke8:url-list118:https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/download/0.55/i2ppb@eyedeekay.github.io.xpie \ No newline at end of file diff --git a/i2ppb-0.57@eyedeekay.github.io.xpi.torrent b/i2ppb-0.57@eyedeekay.github.io.xpi.torrent deleted file mode 100644 index 1557476..0000000 Binary files a/i2ppb-0.57@eyedeekay.github.io.xpi.torrent and /dev/null differ diff --git a/i2ppb-0.59@eyedeekay.github.io.xpi b/i2ppb-0.59@eyedeekay.github.io.xpi deleted file mode 100644 index b3f30f1..0000000 Binary files a/i2ppb-0.59@eyedeekay.github.io.xpi and /dev/null differ diff --git a/i2ppb-0.59@eyedeekay.github.io.xpi.torrent b/i2ppb-0.59@eyedeekay.github.io.xpi.torrent deleted file mode 100644 index 24d2904..0000000 Binary files a/i2ppb-0.59@eyedeekay.github.io.xpi.torrent and /dev/null differ diff --git a/i2ppb@eyedeekay.github.io.xpi b/i2ppb@eyedeekay.github.io.xpi deleted file mode 100644 index b3f30f1..0000000 Binary files a/i2ppb@eyedeekay.github.io.xpi and /dev/null differ diff --git a/i2ppb@eyedeekay.github.io.xpi.torrent b/i2ppb@eyedeekay.github.io.xpi.torrent deleted file mode 100644 index 24d2904..0000000 Binary files a/i2ppb@eyedeekay.github.io.xpi.torrent and /dev/null differ diff --git a/index.html b/index.html index 899abe0..3a780d2 100644 --- a/index.html +++ b/index.html @@ -1,207 +1,223 @@ - I2P in Private Browsing Mode - - + I2P in Private Browsing Mode + + -

I2P in Private Browsing Mode(Firefox-Only)

+

I2P in Private Browsing Mode(Firefox-Only)

-

This is an webextension which introduces a set of new "Private Browsing" modes to Firefox-based browsers(Supporting webextensions) that makes it easier to configure a browser to use I2P securely and adds features for making I2P applications easier to use. It does this by isolating I2P-specific settings to Contextual Identities within Firefox, then loading them automatically when the user requests them. It also adds convenience and management features, like an embedded I2P console and Bittorrent integration with clients using the transmission-rpc API.

+

This is an webextension which introduces a set of new "Private Browsing" modes +to Firefox-based browsers(Supporting webextensions) that makes it easier to +configure a browser to use I2P securely and adds features for making I2P +applications easier to use. It does this by isolating I2P-specific settings to +Contextual Identities within Firefox, then loading them automatically when the +user requests them. It also adds convenience and management features, like an +embedded I2P console and Bittorrent integration with clients using the +transmission-rpc API.

-

Installation(Cross-Platform):

+

Installation(Cross-Platform):

-

For desktop users this addon is available from addons.mozilla.org, where you will be able to recive automatic updates: I2P in Private Browsing.

+

For desktop users this addon is available from addons.mozilla.org, where you +will be able to recive automatic updates: +I2P in Private Browsing.

-

Debian Installation:

+

Debian Installation:

-

Should you prefer, it is possible to install this extension system-wide by side-loading it into Debian. You can generate your own deb file by running the command:

+

Should you prefer, it is possible to install this extension system-wide by +side-loading it into Debian. You can generate your own deb file by running the +command:

-
    make deb
+
    make deb
 
-

and then you can install it with:

-
    sudo apt install ../i2psetproxy.js_*.deb
+

and then you can install it with:

+ +
    sudo apt install ../i2psetproxy.js_*.deb
 
-

Bittorrent Download:

-

The self-hosted plugin is available from bittorrent both within the I2P and Clearnet Bittorrent network(With a web seed to support it in case one goes dead).

+

Bittorrent Download:

-
    -
  • - Magnet Link -
  • +

    The self-hosted plugin is available from bittorrent both within the I2P and +Clearnet Bittorrent network(With a web seed to support it in case one goes +dead).

    -
  • - Get the .torrent file -
  • -
+ -

Usage:

+

Usage:

-
    -
  • Basically, it "Just Works." After you install the plugin, browsing to an I2P domain will automatically stop the current tab and re-open the I2P site in an I2P Browser tab.
  • +
      +
    • Basically, it "Just Works." After you install the plugin, browsing to an I2P +domain will automatically stop the current tab and re-open the I2P site in an +I2P Browser tab.
    • +
    • Besides that, four bookmarks are added to the "Bookmarks Toolbar," which +will take you to visit your Java I2P applications, or the "Simplified I2P +Landing Page" embedded in the plugin:
    • +
    • Landing page
    • +
    • Also, there's a menu for accessing I2P functionality while you're browsing. +It lets you control a few settings in a granular way.
    • +
    • Menu
    • +
    • You can re-enable WebRTC but force it to always use the proxy that is +enforced by the tab.
    • +
    • You can either force the browser to delete all history for I2P sites +immediately, or you can close all your I2P Browser tabs at once and delete +the history for I2P browsing when you're done.
    • +
    • That's all there is to it! Your browser is configured to safely use and +administer I2P.
    • +
    • Optionally, you can add I2PSnark-RPC and use Bittorrent-over-I2P via the +transmission-rpc interface. To do this, have a look at the torrent guide: +Torrent guide
    • +
    -
  • Besides that, four bookmarks are added to the "Bookmarks Toolbar," which will take you to visit your Java I2P applications, or the "Simplified I2P Landing Page" embedded in the plugin:
  • +

    Features

    -
  • Landing page -
  • +
      +
    • [done] Provide a way to launch into an I2P-Specific contextual identity +(container). Intercept requests to .i2p domains and automatically route them +to the I2P container. Isolate the router console from other local +applications by automatically intercepting requests to the router console to +another container.
    • +
    • Visiting i2p-projekt.i2p
    • +
    • [done] Indicate the I2P browser is in use visually. Find an +acceptable way to indicate it on Android.
    • +
    • Visiting webmail
    • +
    • [done] Set the http proxy to use the local I2P proxy automatically. +Provide specific configuration for other types of I2P proxies(SOCKS, +isolating HTTP)
    • +
    • [done] Disable risky webRTC features/offer the option to re-enable +them with the proxy enforced.
    • +
    • [done] Change the color of the browser window to indicate that I2P is in +use
    • +
    • Visiting i2ptunnel
    • +
    • [ready] Provide help in a variety of languages.
    • +
    • [done] Monitor the health and readiness of the I2P router it is +instructed to use. Currently the plugin checks whether the HTTP Proxy is +working by fetching an image from "http://proxy.i2p" and displaying a result. +A work-in-progress binding to i2pcontrol is available in ./i2pcontrol, it is +inert at this time.
    • +
    • Visiting toopie.html
    • +
    • [Done] Handle router console applications under their own origins and +within their own contextual identity. (1) The router console is automatically +confined to it's own container tab. (2) Use a custom protocol handler to +place each i2p application/plugin under it's own origin, shortening router +console URL's and placing applications under their own origin.
    • +
    • Visiting routerconsole
    • +
    • [Done] Handle Torrents by talking to i2psnark-rpc plugin and then +adding them directly into the Firefox downloads drop-downs, menus, etc. If I +can.
    • +
    • Visiting i2psnark
    • +
    • Monitoring torrents
    • +
    • [barely started] Isolate traffic by contextual identity to it's own HTTP +Proxy tunnel, each reflecting it's own pseudonymous identity within I2P. The +contextual identities. For now, the contextual identities used to manage +browsing are "I2P Browsing" and "Web Browsing" where I2P Browsing is capable +of using an outproxy but in the case of traffic destined for the clearnet +does not do header rewriting, and Web Browsing falls back to the Proxy +configured in Firefox. The I2P Browsing will be expanded to +
        +
      • I2P Amnesiac Browsing: Use for General Browsing, stores no history and +uses an HTTP Proxy with a very short tunnel-close timeout and no key-reuse.
      • +
      • I2P Social Networking: Use this for logging into social network accounts, +forums, and other interactive asynchronous public communication platforms +where your identity is behaviorally linkable. This has a very long +tunnel-close timeout and key-reuse until specifically invoked.
      • +
      • I2P Blogging: Use this for posting content to the web interface of your +blog or to other similar websites that you create content on.
      • +
    • +
    • Visiting clearweb
    • +
    -
  • Also, there's a menu for accessing I2P functionality while you're browsing. It lets you control a few settings in a granular way.
  • +

    Video

    -
  • Menu -
  • +
      +
    • Video of the plugin in action
    • +
    -
  • You can re-enable WebRTC but force it to always use the proxy that is enforced by the tab.
  • +

    Documents

    -
  • You can either force the browser to delete all history for I2P sites immediately, or you can close all your I2P Browser tabs at once and delete the history for I2P browsing when you're done.
  • +
      +
    • Browser Outline: This document is an outline of each of +the browser extension's feature panels in presentation form.
    • +
    • Smart Lander Design: This is the original outline of +the smart landing page which became the I2P home page within the browser and +the drop-down control panel.
    • +
    • Other extensions: and how they work with this one.
    • +
    -
  • That's all there is to it! Your browser is configured to safely use and administer I2P.
  • +

    Super Extra Important Background Info:

    -
  • Optionally, you can add I2PSnark-RPC and use Bittorrent-over-I2P via the transmission-rpc interface. To do this, have a look at the torrent guide: Torrent guide -
  • -
+

This plugin's viability is directly related to the viability of Mozilla and +Tor's work on hardening Firefox itself and of particular interest are the +"Uplift" and "Fusion(Firefox Using Onions)" projects.

-

Features

+

Links about Project Uplift

-
    -
  • [done] Provide a way to launch into an I2P-Specific contextual identity (container). Intercept requests to .i2p domains and automatically route them to the I2P container. Isolate the router console from other local applications by automatically intercepting requests to the router console to another container.
  • +
      +
    • Tor Uplift is a project which +brings important features of the Tor Browser to the mainstream of Firefox +users by including patches from Tor Browser Bundle into Firefox where it is +appropriate.
    • +
    • First Party Isolation +is a feature in Firefox and other browsers which keeps information from +leaking across first-party domains.
    • +
    • Fingerprinting is a +technique where a tracker attempts to extract unique information about a user +from a side-channel in order to create an identifier that can be used to +correlate the user across many sites.
    • +
    • Fennec is Firefox +for Android and this link has some analysis of the privacy consequences of the +Android platform.
    • +
    • Tracking in Firefox +is surveyed here.
    • +
    -
  • Visiting i2p-projekt.i2p -
  • +

    Project uplift seems to have largely been accomplished?

    -
  • [done] Indicate the I2P browser is in use visually. Find an acceptable way to indicate it on Android.
  • +

    Links about Project Fusion

    -
  • Visiting webmail -
  • +
      +
    • Project Fusion or Firefox using +Onions is a joint Mozilla/Tor effort to create an enhanced Private Browsing +mode for Firefox which uses Tor.
    • +
    • Notes +from a meeting about Fusion.
    • +
    • Tor at the Heart: Firefox is +a blog about Tor and the relationship they have to Firefox re: TBB, Fusion.
    • +
    -
  • [done] Set the http proxy to use the local I2P proxy automatically. Provide specific configuration for other types of I2P proxies(SOCKS, isolating HTTP)
  • +

    The Old Version

    -
  • [done] Disable risky webRTC features/offer the option to re-enable them with the proxy enforced.
  • +

    New versions of this extension create an I2P in Private Browsing mode instead. +Since this is a drastic change to the behavior of the old plugin, a new entry +for the new plugin has been made at a new location on addons.mozilla.org.

    -
  • [done] Change the color of the browser window to indicate that I2P is in use
  • +
      +
    • This is the new version: [link]

    • +
    • This is the old version: [link]

    • +
    -
  • Visiting i2ptunnel -
  • +

    Android usage:

    -
  • [ready] Provide help in a variety of languages.
  • +

    Open the following link +Github Releases Version +in the browser you want to use for I2P. Firefox will warn you that it is about +to install an extension and indicate the permissions required. Read them over +and when you're ready, accept them. That's all it should take, your browser is +now configured to use I2P.

    -
  • [done] Monitor the health and readiness of the I2P router it is instructed to use. Currently the plugin checks whether the HTTP Proxy is working by fetching an image from "http://proxy.i2p" and displaying a result. A work-in-progress binding to i2pcontrol is available in ./i2pcontrol, it is inert at this time.
  • +

    Android addons.mozilla.org(Temporarily Disabled)

    -
  • Visiting toopie.html -
  • - -
  • [Done] Handle router console applications under their own origins and within their own contextual identity. (1) The router console is automatically confined to it's own container tab. (2) Use a custom protocol handler to place each i2p application/plugin under it's own origin, shortening router console URL's and placing applications under their own origin.
  • - -
  • Visiting routerconsole -
  • - -
  • [Done] Handle Torrents by talking to i2psnark-rpc plugin and then adding them directly into the Firefox downloads drop-downs, menus, etc. If I can.
  • - -
  • Visiting i2psnark -
  • - -
  • Monitoring torrents -
  • - -
  • [barely started] Isolate traffic by contextual identity to it's own HTTP Proxy tunnel, each reflecting it's own pseudonymous identity within I2P. The contextual identities. For now, the contextual identities used to manage browsing are "I2P Browsing" and "Web Browsing" where I2P Browsing is capable of using an outproxy but in the case of traffic destined for the clearnet does not do header rewriting, and Web Browsing falls back to the Proxy configured in Firefox. The I2P Browsing will be expanded to -
      -
    • I2P Amnesiac Browsing: Use for General Browsing, stores no history and uses an HTTP Proxy with a very short tunnel-close timeout and no key-reuse.
    • - -
    • I2P Social Networking: Use this for logging into social network accounts, forums, and other interactive asynchronous public communication platforms where your identity is behaviorally linkable. This has a very long tunnel-close timeout and key-reuse until specifically invoked.
    • - -
    • I2P Blogging: Use this for posting content to the web interface of your blog or to other similar websites that you create content on.
    • -
    -
  • - -
  • Visiting clearweb -
  • -
- -

Video

- -
    -
  • Video of the plugin in action -
  • -
- -

Documents

- -
    -
  • Browser Outline: This document is an outline of each of the browser extension's feature panels in presentation form.
  • - -
  • Smart Lander Design: This is the original outline of the smart landing page which became the I2P home page within the browser and the drop-down control panel.
  • - -
  • Other extensions: and how they work with this one.
  • -
- -

Super Extra Important Background Info:

- -

This plugin's viability is directly related to the viability of Mozilla and Tor's work on hardening Firefox itself and of particular interest are the "Uplift" and "Fusion(Firefox Using Onions)" projects.

- -

Links about Project Uplift

- -
    -
  • - Tor Uplift is a project which brings important features of the Tor Browser to the mainstream of Firefox users by including patches from Tor Browser Bundle into Firefox where it is appropriate. -
  • - -
  • - First Party Isolation is a feature in Firefox and other browsers which keeps information from leaking across first-party domains. -
  • - -
  • - Fingerprinting is a technique where a tracker attempts to extract unique information about a user from a side-channel in order to create an identifier that can be used to correlate the user across many sites. -
  • - -
  • - Fennec is Firefox for Android and this link has some analysis of the privacy consequences of the Android platform. -
  • - -
  • - Tracking in Firefox is surveyed here. -
  • -
- -

Project uplift seems to have largely been accomplished?

- -

Links about Project Fusion

- -
    -
  • - Project Fusion or Firefox using Onions is a joint Mozilla/Tor effort to create an enhanced Private Browsing mode for Firefox which uses Tor. -
  • - -
  • - Notes from a meeting about Fusion. -
  • - -
  • - Tor at the Heart: Firefox is a blog about Tor and the relationship they have to Firefox re: TBB, Fusion. -
  • -
- -

The Old Version

- -

New versions of this extension create an I2P in Private Browsing mode instead. Since this is a drastic change to the behavior of the old plugin, a new entry for the new plugin has been made at a new location on addons.mozilla.org.

- -
    -
  • -

    This is the new version: [link]

    -
  • - -
  • -

    This is the old version: [link]

    -
  • -
- -

Android usage:

- -

Open the following link Github Releases Version in the browser you want to use for I2P. Firefox will warn you that it is about to install an extension and indicate the permissions required. Read them over and when you're ready, accept them. That's all it should take, your browser is now configured to use I2P.

- -

Android addons.mozilla.org(Temporarily Disabled)

- -

If you would prefer to recieve automatic updates from AMO, the correct product page for this plugin is I2P In Private Browsing. This absolutely requires a working outproxy. If you want to avoid the use of AMO for updates, you can download the identical plugin from this repository's releases page. The latest AMO Plugin will always be identical to the latest github release, except for the version number, which must be incremented for submission to AMO.

+

If you would prefer to recieve automatic updates from AMO, the correct product +page for this plugin is +I2P In Private Browsing. +This absolutely requires a working outproxy. If you want to avoid the use of AMO +for updates, you can download the identical plugin from this repository's +releases page. The latest AMO Plugin will always be identical to the latest +github release, except for the version number, which must be incremented for +submission to AMO.

diff --git a/manifest.json b/manifest.json index 4f2c300..38a4126 100644 --- a/manifest.json +++ b/manifest.json @@ -2,6 +2,7 @@ "applications": { "gecko": { "id": "i2ppb@eyedeekay.github.io", + "update_url": "https://c6lilt4cr5x7jifxridpkesf2zgfwqfchtp6laihr4pdqomq25iq.b32.i2p/i2p/updateManifest.json", "strict_min_version": "60.0" } }, @@ -26,8 +27,8 @@ ], "manifest_version": 2, "name": "__MSG_extensionName__", - "version": "0.60", - "version_name": "0.60", + "version": "0.63", + "version_name": "0.63", "description": "__MSG_extensionDescription__", "homepage_url": "https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox", "icons": { diff --git a/privacy.js b/privacy.js index 2f57657..f79f99a 100644 --- a/privacy.js +++ b/privacy.js @@ -342,7 +342,7 @@ function i2pHost(url) { } function onContextGotLog(contexts) { - if (contexts !== null) { + if (contexts != null) { for (let context of contexts) { console.log(context); } diff --git a/proxy.js b/proxy.js index 9344705..23425cb 100644 --- a/proxy.js +++ b/proxy.js @@ -124,6 +124,18 @@ var handleContextProxyRequest = async function(requestDetails) { }; return proxy; } + if (requestDetails.originUrl == browser.runtime.getURL("security.html")) { + console.log( + "(proxy) extension security URL", + browser.runtime.getURL("security.html") + ); + proxy = { + type: getScheme(), + host: getHost(), + port: getPort() + }; + return proxy; + } if ( requestDetails.cookieStoreId == "firefox-default" || requestDetails.cookieStoreId == "firefox-private" diff --git a/releases.atom b/releases.atom index a328492..96b8252 100644 --- a/releases.atom +++ b/releases.atom @@ -4,13 +4,71 @@ Release notes from I2P-in-Private-Browsing-Mode-Firefox - 2020-01-04T21:46:19Z + 2020-03-02T22:59:16Z + + tag:github.com,2008:Repository/169256012/0.63 + 2020-03-02T23:01:58Z + + 0.63 + + <p>A simple plugin for configuring a Firefox based web browser to isolate I2P<br> +Browsing to a single contextual identity, thus creating an I2P in Private<br> +Browsing mode. It requires the use of a pre-installed I2P Router.<br> +i2psetproxy.js (0.63-1) UNRELEASED; urgency=low</p> +<ul> +<li>other containerizers bugfix</li> +</ul> +<p>-- idk <a href="mailto:hankhill19580@gmail.com">hankhill19580@gmail.com</a> Mon, 02 MAR 2020 17:54:26 -0400</p> +<p>i2psetproxy.js (0.61-1) UNRELEASED; urgency=low</p> + + eyedeekay + + + + + tag:github.com,2008:Repository/169256012/0.61 + 2020-03-02T22:48:06Z + + 0.61 + <p>A simple plugin for configuring a Firefox based web browser to isolate I2P<br> +Browsing to a single contextual identity, thus creating an I2P in Private<br> +Browsing mode. It requires the use of a pre-installed I2P Router.<br> +i2psetproxy.js (0.61-1) UNRELEASED; urgency=low</p> +<ul> +<li>other containerizers bugfix</li> +</ul> +<p>-- idk <a href="mailto:hankhill19580@gmail.com">hankhill19580@gmail.com</a> Mon, 02 MAR 2020 17:46:24 -0400</p> +<p>i2psetproxy.js (0.59-1) UNRELEASED; urgency=low</p> + + eyedeekay + + + + + tag:github.com,2008:Repository/169256012/0.59 + 2020-02-26T03:10:23Z + + 0.59 + <p>A simple plugin for configuring a Firefox based web browser to isolate I2P<br> +Browsing to a single contextual identity, thus creating an I2P in Private<br> +Browsing mode. It requires the use of a pre-installed I2P Router.<br> +i2psetproxy.js (0.59-1) UNRELEASED; urgency=low</p> +<ul> +<li>transmission-rpc based torrent controls</li> +<li>bugfixes</li> +</ul> +<p>-- idk <a href="mailto:hankhill19580@gmail.com">hankhill19580@gmail.com</a> Tue, 25 FEB 2020 20:52:19 -0400</p> +<p>i2psetproxy.js (0.57-1) UNRELEASED; urgency=low</p> + + eyedeekay + + + tag:github.com,2008:Repository/169256012/0.57 2020-01-06T17:16:33Z 0.57 - <h1>I2P in Private Browsing Mode</h1> <p>A simple plugin for configuring a Firefox based web browser to isolate I2P<br> Browsing to a single contextual identity, thus creating an I2P in Private<br> @@ -142,46 +200,4 @@ i2psetproxy.js (0.47-1) UNRELEASED; urgency=low</p> - - tag:github.com,2008:Repository/169256012/0.45 - 2019-11-22T23:15:45Z - - 0.45 - <h1>I2P in Private Browsing Mode</h1> -<p>A simple plugin for configuring a Firefox based web browser to isolate I2P<br> -Browsing to a single contextual identity, thus creating an I2P in Private<br> -Browsing mode. It requires the use of a pre-installed I2P Router.</p> - - eyedeekay - - - - - tag:github.com,2008:Repository/169256012/0.43 - 2019-11-12T02:50:48Z - - 0.43 - <h1>I2P in Private Browsing Mode</h1> -<p>A simple plugin for configuring a Firefox based web browser to isolate I2P<br> -Browsing to a single contextual identity, thus creating an I2P in Private<br> -Browsing mode. It requires the use of a pre-installed I2P Router.</p> - - eyedeekay - - - - - tag:github.com,2008:Repository/169256012/0.41 - 2019-10-31T16:42:46Z - - 0.41 - <h1>I2P in Private Browsing Mode</h1> -<p>A simple plugin for configuring a Firefox based web browser to isolate I2P<br> -Browsing to a single contextual identity, thus creating an I2P in Private<br> -Browsing mode. It requires the use of a pre-installed I2P Router.</p> - - eyedeekay - - - diff --git a/scrub.js b/scrub.js index 9427b1d..4108e7f 100644 --- a/scrub.js +++ b/scrub.js @@ -153,7 +153,7 @@ var contextSetup = function(requestDetails) { browser.tabs.remove(tabId.id); } browser.pageAction.setPopup({ - tabId: tabId[0].id, + tabId: tabId.id, popup: "security.html" }); browser.pageAction.show(tabId.id); @@ -183,18 +183,26 @@ var contextSetup = function(requestDetails) { if (tabId.cookieStoreId != context[0].cookieStoreId) { function Create() { function onCreated(tab) { - function closeOldTab() { + function closeOldTab(tabs) { if (tabId.id != tab.id) { console.log("(isolate) Closing un-isolated tab", tabId.id); console.log("in favor of", tab.id); console.log("with context", tab.cookieStoreId); browser.tabs.remove(tabId.id); } + for (index = 0; index < tabs.length; index++) { + if (index != tabs.length - 1) + browser.tabs.remove(tabs[index].id); + } } - closeOldTab(tab); + var pins = browser.tabs.query({ + cookieStoreId: context[0].cookieStoreId + }); + pins.then(closeOldTab, onError); } var created = browser.tabs.create({ active: true, + pinned: true, cookieStoreId: context[0].cookieStoreId, url: requestDetails.url }); @@ -216,18 +224,26 @@ var contextSetup = function(requestDetails) { if (tabId.cookieStoreId != context[0].cookieStoreId) { function Create() { function onCreated(tab) { - function closeOldTab() { + function closeOldTab(tabs) { if (tabId.id != tab.id) { console.log("(isolate) Closing un-isolated tab", tabId.id); console.log("in favor of", tab.id); console.log("with context", tab.cookieStoreId); browser.tabs.remove(tabId.id); } + for (index = 0; index < tabs.length; index++) { + if (index != tabs.length - 1) + browser.tabs.remove(tabs[index].id); + } } - closeOldTab(tab); + var pins = browser.tabs.query({ + cookieStoreId: context[0].cookieStoreId + }); + pins.then(closeOldTab, onError); } var created = browser.tabs.create({ active: true, + pinned: true, cookieStoreId: context[0].cookieStoreId, url: requestDetails.url }); @@ -249,18 +265,26 @@ var contextSetup = function(requestDetails) { if (tabId.cookieStoreId != context[0].cookieStoreId) { function Create() { function onCreated(tab) { - function closeOldTab() { + function closeOldTab(tabs) { if (tabId.id != tab.id) { console.log("(isolate) Closing un-isolated tab", tabId.id); console.log("in favor of", tab.id); console.log("with context", tab.cookieStoreId); browser.tabs.remove(tabId.id); } + for (index = 0; index < tabs.length; index++) { + if (index != tabs.length - 1) + browser.tabs.remove(tabs[index].id); + } } - closeOldTab(tab); + var pins = browser.tabs.query({ + cookieStoreId: context[0].cookieStoreId + }); + pins.then(closeOldTab, onError); } var created = browser.tabs.create({ active: true, + pinned: true, cookieStoreId: context[0].cookieStoreId, url: requestDetails.url }); @@ -282,18 +306,26 @@ var contextSetup = function(requestDetails) { if (tabId.cookieStoreId != context[0].cookieStoreId) { function Create() { function onCreated(tab) { - function closeOldTab() { + function closeOldTab(tabs) { if (tabId.id != tab.id) { console.log("(isolate) Closing un-isolated tab", tabId.id); console.log("in favor of", tab.id); console.log("with context", tab.cookieStoreId); browser.tabs.remove(tabId.id); } + for (index = 0; index < tabs.length; index++) { + if (index != tabs.length - 1) + browser.tabs.remove(tabs[index].id); + } } - closeOldTab(tab); + var pins = browser.tabs.query({ + cookieStoreId: context[0].cookieStoreId + }); + pins.then(closeOldTab, onError); } var created = browser.tabs.create({ active: true, + pinned: true, cookieStoreId: context[0].cookieStoreId, url: requestDetails.url }); diff --git a/security.html b/security.html index 361aa35..da0803a 100644 --- a/security.html +++ b/security.html @@ -18,6 +18,39 @@ + +
+
    +
  • +
    +
    + Address Type: +
    + +
    +
    +
    +
  • + +
  • +
    +
    + Certificate Information: +
    + +
    +
    +
    +
  • + +
  • +
    + Signed By: +
    +
  • +
+
+