Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
9d6569c
i18n AMO link (#47)
Gitoffthelawn Mar 19, 2022
369cb4b
Rewrite everything for Manifest V3.
pmarks-net Sep 27, 2022
3f424b1
Fix 'access denied' bug seen on maps.google.com
pmarks-net Oct 2, 2022
8d8e91d
bugfix in new MV3 code:
pmarks-net Oct 3, 2022
1879497
Delete the accessDenied flag.
pmarks-net Oct 3, 2022
79ab190
Fix new bug: "missing domain" after inhibitZero.
pmarks-net Oct 3, 2022
5cfc19c
Simplify FLAG_CONNECTED.
pmarks-net Oct 3, 2022
558196c
Gracefully handle sprite loading failures.
pmarks-net Oct 3, 2022
185c169
Delete the dataExists flag.
pmarks-net Oct 7, 2022
40bb4f1
Multi-line tooltip looks a bit nicer.
pmarks-net Oct 7, 2022
5fcc0b7
Add debug logging to critical events.
pmarks-net Oct 9, 2022
9542087
Update README.md
pmarks-net Oct 13, 2022
cda49ab
Update README.md
pmarks-net Oct 13, 2022
5bc154e
Update README.md
pmarks-net Oct 13, 2022
fb87e84
Update README.md
pmarks-net Oct 13, 2022
32c4b55
Reload the extension if webRequest stops delivering events.
pmarks-net Oct 15, 2022
20d36ad
Refresh all tab icons after reload()
pmarks-net Oct 18, 2022
1df4bf8
Delete "applications", because Firefox doesn't even support MV3.
pmarks-net Oct 18, 2022
1964315
Update README.md
pmarks-net Oct 18, 2022
24110e1
Use chrome.storage.session for requestMap, to reduce disk writes.
pmarks-net Jan 26, 2023
039a8e5
New screenshots
pmarks-net Feb 28, 2023
e2a65e5
Clean up the table's copy-paste output.
pmarks-net Mar 10, 2023
800b6d6
Update README.md
pmarks-net Mar 20, 2023
c5a2470
Migrate to storage.session entirely.
pmarks-net Apr 5, 2023
ed0de56
Update privacy_policy.txt to include my other extensions
pmarks-net May 24, 2023
009168d
Add some timestamps to logging.
pmarks-net Jul 23, 2023
53ccc29
Let onBeforeNavigate initialize a tab, if there is no active request.
pmarks-net Aug 5, 2023
f33f872
Track Service Worker requests that aren't linked to a specific tabId.
pmarks-net Aug 5, 2023
e1f33c8
Reconnect if the popup is disconnected.
pmarks-net Aug 6, 2023
6345e43
Bump to version 2.7
pmarks-net Aug 6, 2023
181ac7a
Include version number in the tooltip.
pmarks-net Aug 7, 2023
478c4b5
Initial Firefox support for Manifest V3.
pmarks-net Aug 14, 2023
cc13a1d
Make the fake zeroth column work in Firefox.
pmarks-net Aug 15, 2023
6b6f417
Version bump to 2.8
pmarks-net Aug 15, 2023
109b0c3
Keep icon in the Firefox address bar.
pmarks-net Aug 15, 2023
5a6605c
Make Firefox scrollbars a bit less janky.
pmarks-net Aug 15, 2023
aa6694e
Make Firefox link more prominent.
pmarks-net Aug 15, 2023
21da8c2
Tweak Firefox scrollbarHack a bit.
pmarks-net Aug 15, 2023
1f7c75f
Revert to the newMap() function.
pmarks-net Aug 15, 2023
5630e8e
Cache IP addresses in RAM on Firefox only.
pmarks-net Aug 15, 2023
8fb4ba3
Version bump to 2.11
pmarks-net Aug 15, 2023
2a305a5
Revert tabTracker to newMap() as well.
pmarks-net Aug 15, 2023
23295d1
Update README.md
pmarks-net Aug 15, 2023
9ca99c4
Update README.md
pmarks-net Aug 15, 2023
888cbfc
Update README.md
pmarks-net Aug 16, 2023
f090549
Requires Firefox 115 for storage.session API
pmarks-net Aug 16, 2023
178a642
Add "Click to grant permission" button.
pmarks-net Aug 16, 2023
1749a09
Yet another Firefox bug workaround.
pmarks-net Aug 18, 2023
d8d9605
Add a screenshot for Microsoft Edge.
pmarks-net Aug 19, 2023
c49f595
Add Firefox permission screenshot
pmarks-net Aug 21, 2023
22793e2
Update README.md
pmarks-net Aug 28, 2023
7c8cc9b
Clarify the language in privacy_policy.txt
pmarks-net Aug 28, 2023
c668837
Add dark mode.
pmarks-net Sep 11, 2023
a0ca43b
Update README.md
pmarks-net Sep 18, 2023
ae79711
Mobile UI tweaks.
pmarks-net Oct 5, 2023
943f8b0
Update README.md
pmarks-net Oct 5, 2023
c5d8903
Update README.md
pmarks-net Oct 5, 2023
590b1ee
Add files via upload
pmarks-net Oct 6, 2023
b51063b
Add some badgen.net badges to the README
pmarks-net Oct 6, 2023
6627895
Update README.md
pmarks-net Oct 7, 2023
4d33de7
Update README.md
pmarks-net Oct 7, 2023
c46d6a0
Add 4/6 icon to the popup window on Firefox Mobile.
pmarks-net Oct 8, 2023
04bf13e
Delete lostEventsWatchdog.
pmarks-net Oct 10, 2023
051e4a9
Add a gecko_android section.
pmarks-net Nov 6, 2023
44a8229
Update AMO URL
pmarks-net Nov 13, 2023
d2bd210
Update README.md
pmarks-net Nov 15, 2023
d29c691
Update README.md
pmarks-net Nov 30, 2023
a6f9059
Version bump for AMO experiment.
pmarks-net Dec 7, 2023
4e6fefe
120.0a1 < 120.0 ?
pmarks-net Dec 7, 2023
dba8881
Snip long domains, to prevent horizontal scrolling.
pmarks-net Dec 6, 2023
906ae87
Merge branch 'master' of https://github.com/pmarks-net/ipvfoo
pmarks-net Dec 10, 2023
0c74045
Version bump to 2.18
pmarks-net Dec 10, 2023
3ba4d35
Reduce LONG_DOMAIN to 50.
pmarks-net Dec 11, 2023
65b5f7d
Update README.md
pmarks-net Jan 11, 2024
dd6c962
Disable broken CWS badges
pmarks-net Jun 19, 2024
7780751
Merge the nat64 branch (#61)
pmarks-net Feb 4, 2025
3efb571
NAT64 tweaks
pmarks-net Feb 5, 2025
c383748
Add light/dark autodetection.
pmarks-net Feb 6, 2025
8afad87
Options cleanups:
pmarks-net Feb 7, 2025
146387b
Add workaround for middle-click not working on options_ui links in Fi…
pmarks-net Feb 10, 2025
28ec274
Update README.md - restore CWS badges
pmarks-net Feb 11, 2025
1841f48
Add Options screenshot
pmarks-net Mar 2, 2025
13e07af
Update README.md
pmarks-net Mar 2, 2025
e1f3eef
Improve error logging from async listeners in Firefox.
pmarks-net Apr 14, 2025
b6c9056
Prefer <canvas> over OffscreenCanvas.
pmarks-net Apr 14, 2025
561207d
Add ::ffff:0:0/96 to NAT64 prefixes.
pmarks-net Jun 14, 2025
7f4eaf6
Update README.md
pmarks-net Aug 1, 2025
98ccf9d
Set action *and* pageAction on Firefox.
pmarks-net Sep 1, 2025
0e3ea1b
Add a hover effect, hinting the click-to-select feature.
pmarks-net Sep 24, 2025
88dd469
Add scripts to help switch manifest.json
pmarks-net Sep 24, 2025
dfa4877
Add +x to helper scripts
pmarks-net Sep 24, 2025
98ae261
Update README.md
pmarks-net Sep 24, 2025
3535726
Update README.md
pmarks-net Sep 24, 2025
888698a
Update README.md
pmarks-net Sep 24, 2025
d53ac38
Update README.md
pmarks-net Sep 24, 2025
7e107be
Revert "Add a hover effect, hinting the click-to-select feature."
pmarks-net Sep 25, 2025
01f314b
Fully automatic dark mode detection.
pmarks-net Oct 14, 2025
02888c9
Assume incognito uses dark mode on mobile browsers.
pmarks-net Oct 14, 2025
e8a2318
Version bump to 2.27
pmarks-net Oct 14, 2025
2127a63
Fix Chrome prefetch main_frame & outermost_frame
agoodkind Oct 19, 2025
b4cb888
indent
agoodkind Oct 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 19 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,21 +1,32 @@
BUILDDIR := build/
NAME := ipvfoo
VERSION := $(shell cat src/manifest.json | \
sed -n 's/^ *"version": *"\([0-9.]\+\)".*/\1/p' | \
head -n1)
NAME := ipvfoo
MANIFEST := src/manifest.json
MANIFEST_F := src/manifest/firefox-manifest.json
MANIFEST_C := src/manifest/chrome-manifest.json
VERSION_F := $(shell cat ${MANIFEST_F} | \
sed -n 's/^ *"version": *"\([0-9.]\+\)".*/\1/p' | \
head -n1)
VERSION_C := $(shell cat ${MANIFEST_C} | \
sed -n 's/^ *"version": *"\([0-9.]\+\)".*/\1/p' | \
head -n1)

all: prepare firefox chrome

prepare:
@diff ${MANIFEST} ${MANIFEST_F} >/dev/null || \
diff ${MANIFEST} ${MANIFEST_C} >/dev/null || \
(echo "${MANIFEST} is not a copy of ${MANIFEST_F} or ${MANIFEST_C}; aborting."; exit 1)
mkdir -p build

firefox: prepare
rm -f ${BUILDDIR}${NAME}-${VERSION}.xpi
cd src && zip -9r ../${BUILDDIR}${NAME}-${VERSION}.xpi *
rm -f ${BUILDDIR}${NAME}-${VERSION_F}.xpi
cp -f ${MANIFEST_F} ${MANIFEST}
zip -9j ${BUILDDIR}${NAME}-${VERSION_F}.xpi -j src/*

chrome: prepare
rm -f ${BUILDDIR}${NAME}-${VERSION}.zip
zip -9r ${BUILDDIR}${NAME}-${VERSION}.zip src
rm -f ${BUILDDIR}${NAME}-${VERSION_C}.zip
cp -f ${MANIFEST_C} ${MANIFEST}
zip -9j ${BUILDDIR}${NAME}-${VERSION_C}.zip -j src/*

clean:
rm -rf ${BUILDDIR}
53 changes: 45 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,49 @@
IPvFoo is a Chrome extension that adds an icon to your location bar, indicating whether the current page was fetched using IPv4 or IPv6. When you click the icon, a pop-up appears, listing the IP address for each domain that served the page elements.
**IPvFoo** is a Chrome/Firefox extension that adds an icon to indicate whether the current page was fetched using IPv4 or IPv6. When you click the icon, a pop-up appears, listing the IP address for each domain that served the page elements.

Everything is captured privately using the webRequest API (new in Chrome 17), without creating any additional network traffic.
Everything is captured privately using the webRequest API, without creating any additional network traffic.

#### Install it from the Chrome Web Store:
https://chrome.google.com/webstore/detail/ecanpcehffngcegjmadlcijfolapggal
## Screenshots
![Screenshot](/misc/screenshot_webstore_1_640x400.png?raw=true)

#### Screenshot:
![Screenshot](/misc/screenshot_webstore_640x400.png?raw=true)
![Screenshot](/misc/screenshot_options.png?raw=true)

#### Firefox Support:
IPvFoo now [runs on Firefox](https://addons.mozilla.org/en-US/firefox/addon/ipvfoo-pmarks/), but there are [a few bugs](https://github.com/pmarks-net/ipvfoo/issues/32) to work out.
## Add to Chrome
https://chrome.google.com/webstore/detail/ipvfoo/ecanpcehffngcegjmadlcijfolapggal

<picture><img src="https://badgen.net/chrome-web-store/v/ecanpcehffngcegjmadlcijfolapggal"></picture>
<picture><img src="https://badgen.net/chrome-web-store/users/ecanpcehffngcegjmadlcijfolapggal"></picture>
<picture><img src="https://badgen.net/chrome-web-store/rating/ecanpcehffngcegjmadlcijfolapggal"></picture>

## Add to Firefox
https://addons.mozilla.org/addon/ipvfoo/

<picture><img src="https://badgen.net/amo/v/ipvfoo"></picture>
<picture><img src="https://badgen.net/amo/users/ipvfoo"></picture>
<picture><img src="https://badgen.net/amo/rating/ipvfoo"></picture>

## Add to Edge
https://microsoftedge.microsoft.com/addons/detail/ipvfoo/dphnkggpaicipkljebciobedeiaiofod
*(You can also run the Chrome version on Edge, as they are identical.)*

## Safari?

IPvFoo cannot be [ported to Safari](https://github.com/pmarks-net/ipvfoo/issues/39) because the `webRequest` API does not report IP addresses. In theory, a Safari extension could do its own DNS lookups over HTTPS, but such behavior is beyond the scope of IPvFoo.

## Running IPvFoo unpacked from git

IPvFoo shares a common codebase for Chrome and Firefox, but `manifest.json` is browser specific.

Firefox shows this error when running the Chrome version:

> There was an error during the temporary add-on installation.
> background.service_worker is currently disabled. Add background.scripts.

Chrome shows this error when running the Firefox version:

> 'background.scripts' requires manifest version of 2 or lower.
> 'page_action' requires manifest version of 2 or lower.

The `use_*_manifest.sh.bat` scripts in the [manifest](src/manifest/) directory may be used to switch between versions.

<br><br><br>
Donate: https://liberapay.com/pmarks
17 changes: 12 additions & 5 deletions misc/privacy_policy.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
Privacy Policy

IPvFoo monitors all of your web traffic, in order to present a table of
connection information. This information is stored in local RAM, and is
not transmitted over the network.
IPvFoo has full access to your web traffic, as this is necessary to present
the table of connection information. All information is kept in RAM on your
computer, and never transmitted over the network.

If you use the "Look up on bgp.he.net" feature, the selected domain name
or IP address will be sent to Hurricane Electric via URL request.
Technically there is one exception: if you use the "Look up on bgp.he.net"
feature, your browser will navigate to a URL managed by Hurricane Electric,
containing the selected domain name or IP address.


My other Chrome extensions do not use personal information at all:
- Incognito Proxy
- Endless Whisper
- <pre> Line Wrapper
Binary file added misc/screenshot_edge_toolbar_1280x800.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Binary file added misc/screenshot_firefox_android.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added misc/screenshot_firefox_permission.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added misc/screenshot_options.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed misc/screenshot_webstore_1280x800.png
Binary file not shown.
Binary file added misc/screenshot_webstore_1_1280x800.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added misc/screenshot_webstore_1_640x400.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added misc/screenshot_webstore_2_1280x800.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed misc/screenshot_webstore_640x400.png
Binary file not shown.
Binary file added src/1x1_808080.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading