Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MV3 Collector Branch #1182

Merged
merged 54 commits into from
Sep 15, 2023
Merged
Show file tree
Hide file tree
Changes from 45 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
1ea8b09
feat(mv3): Manifest V3 Migration Checklist (#1170)
whizzzkid Mar 24, 2023
f670059
fix(mv3): CI Builds 🏗️ (#1183)
whizzzkid Mar 24, 2023
52a9aa8
feat(mv3): blocking by observing (#1181)
whizzzkid Apr 4, 2023
0d52545
feat(mv3): adding dynamicNetRequest rule reconciliation logic + Firef…
whizzzkid May 10, 2023
64399ee
Chore(mv3-release): Publishing RC releases (#1192)
whizzzkid May 10, 2023
7f26632
fix(mv3): ref_name (#1193)
whizzzkid May 11, 2023
06b7d8f
Fix/mv3 release (#1194)
whizzzkid May 11, 2023
42f1e31
Fixing beta builds
whizzzkid May 11, 2023
3aaf622
fix(mv3): :bug: Bad Regex for DNS links (#1198)
whizzzkid May 17, 2023
8c666d3
fix(mv3): :bug: Fixing copy functionality for MV3 (#1197)
whizzzkid May 17, 2023
806f7d8
feat(mv3): Handle State Changes (#1200)
whizzzkid May 17, 2023
1a2bcf1
Fix/1202 first page is missing content (#1208)
whizzzkid May 25, 2023
be3d561
fix(mv3): 👔 Adding better regex replace to remove infinite redirects.…
whizzzkid May 26, 2023
ddef473
feat(mv3): :clown_face: DeclarativeNetRequestMock (#1211)
whizzzkid May 26, 2023
554e69f
feat(mv3): Adding ContextMenus MV3 Style (#1213)
whizzzkid Jun 2, 2023
9f4981c
fix (quick-import): Duplicate behaviour in MV3 (#1215)
whizzzkid Jun 2, 2023
c2d1073
fix(mv3): :wastebasket: Removing Unnecessary Listener (#1219)
whizzzkid Jun 15, 2023
462fa9a
Merge branch 'main' into rc/3.0-mv3
whizzzkid Jun 15, 2023
f475e91
fix: Automatic Mode Description (#1224)
whizzzkid Jun 21, 2023
a819c75
fix: 🗑️ Remove Embedded Node Type (#1225)
whizzzkid Jun 30, 2023
a6507c4
Merge branch 'main' into rc/3.0-mv3
whizzzkid Jul 5, 2023
4b1c8c9
Fix(docs): ✏️ Adding/Updating docs (#1230)
whizzzkid Jul 8, 2023
4d0cc42
feat(metrics): ✨ Adding patched analytics. (#1232)
whizzzkid Jul 19, 2023
4395b2b
fix(mv3): :art: Replacing Static Images with Mermaid Diagrams (#1233)
whizzzkid Jul 19, 2023
9f63fd8
feat(mv3): Faster Redirects During The First Page Load in main_frame …
whizzzkid Jul 20, 2023
2d8528e
fix(telemetry): Reverting to old state of things (#1242)
whizzzkid Jul 25, 2023
fe0e159
feat(mv3): ✨ Introduces Redirect Rule Management (#1240)
whizzzkid Jul 28, 2023
ac5cae6
feat(mv3): Tracking URL resolved/observed count. (#1245)
whizzzkid Jul 28, 2023
2d65822
feat(mv3): Ask for Host Permissions if not exist. (#1250)
whizzzkid Aug 4, 2023
7be2c23
feat(mv3): Redirection Tests (#1236)
whizzzkid Aug 27, 2023
a81f545
fix(recovery): Recovery Rules should reset (#1266)
whizzzkid Sep 7, 2023
2a52632
fix(mv3): :bug: rules section visible. (#1271)
whizzzkid Sep 8, 2023
63e815c
fix(brave): Fix Brave UX (#1270)
whizzzkid Sep 8, 2023
c81b126
feat(e2e): Request Handling Tests (#1272)
whizzzkid Sep 9, 2023
c68be3a
Update add-on/_locales/en/messages.json
whizzzkid Sep 10, 2023
0798d4f
Update add-on/src/options/forms/api-form.js
whizzzkid Sep 10, 2023
94d3027
Update add-on/_locales/en/messages.json
whizzzkid Sep 10, 2023
e29f13f
Update test/functional/lib/redirect-handler/blockOrObserve.test.ts
whizzzkid Sep 10, 2023
1223377
Update README.md
whizzzkid Sep 10, 2023
81ed894
fix(test):
whizzzkid Sep 10, 2023
984a5de
fix(mv3): :see_no_evil: Don't interrupt websockets and webtransports.
whizzzkid Sep 10, 2023
bea4c96
fix: :pencil2: Rename: ensureDeclrativeNetRequetRuleIsAdded -> ensure…
whizzzkid Sep 10, 2023
acba95a
fix: :pencil2: Rename: ensureTabRedirected -> ensureTabUpdatedTo
whizzzkid Sep 10, 2023
86b3a06
fix(language): :pencil2: Rewrite
whizzzkid Sep 10, 2023
04c4062
fix(test): :test_tube: Add a failing test.
whizzzkid Sep 11, 2023
1e4cc9f
Update add-on/_locales/en/messages.json
whizzzkid Sep 12, 2023
8d9a62d
Update ci/update-manifest.sh
whizzzkid Sep 12, 2023
00b4e2b
fix: :pencil2: Beta naming
whizzzkid Sep 13, 2023
ee8cfa2
fix(mv3): FF Browser Action (#1275)
whizzzkid Sep 14, 2023
a91bd9a
test(import): :test_tube: Backfill Tests (#1276)
whizzzkid Sep 15, 2023
92c55c3
feat(mv3): :heavy_plus_sign: Adding hash function to generate predict…
whizzzkid Sep 15, 2023
68b3da2
fix(mv3): :wastebasket: Remove redundant lines.
whizzzkid Sep 15, 2023
ec2da96
fix(mv3): :recycle: opposite functionality `supportsBlock` -> `suppor…
whizzzkid Sep 15, 2023
5748c15
feat(mv3): :twisted_rightwards_arrows: Adding migrations for embedded…
whizzzkid Sep 15, 2023
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
17 changes: 10 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
pull_request:
branches:
- main
- rc/3.0-mv3

env:
XDG_CACHE_HOME: ${{ github.workspace }}/.cache
Expand Down Expand Up @@ -43,17 +44,17 @@ jobs:
id: cache
with:
path: ${{ github.workspace }}/.cache
key: ${{ runner.os }}-${{ hashFiles('package*json', 'package-lock.json', '*config.js') }}
key: ${{ runner.os }}-${{ hashFiles('**/package*json', '**/package-lock.json', '**/*config.js', '**/*.patch') }}
restore-keys: |
${{ runner.os }}-${{ hashFiles('package*json', 'package-lock.json', '*config.js') }}
${{ runner.os }}-${{ hashFiles('**/package*json', '**/package-lock.json', '**/*config.js', '**/*.patch') }}
${{ runner.os }}-

- name: Restore node_modules
id: yarn-cache
uses: actions/[email protected]
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
key: ${{ runner.os }}-${{ hashFiles('**/package*json', '**/package-lock.json', '**/*config.js', '**/*.patch') }}

- name: Install dependencies
if: steps.yarn-cache.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -106,7 +107,9 @@ jobs:
release-assets:
runs-on: ubuntu-latest
needs: [test]
if: contains(github.ref, 'refs/tags/') && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
if: |
(contains(github.ref, 'refs/tags/') || github.ref == 'refs/heads/rc/3.0-mv3') &&
(github.event_name == 'push' || github.event_name == 'workflow_dispatch')
steps:
- name: Check out Git repository
uses: actions/[email protected]
Expand All @@ -121,17 +124,17 @@ jobs:
id: cache
with:
path: ${{ github.workspace }}/.cache
key: ${{ runner.os }}-${{ hashFiles('package*json', 'package-lock.json', '*config.js') }}
key: ${{ runner.os }}-${{ hashFiles('**/package*json', '**/package-lock.json', '**/*config.js', '**/*.patch') }}
restore-keys: |
${{ runner.os }}-${{ hashFiles('package*json', 'package-lock.json', '*config.js') }}
${{ runner.os }}-${{ hashFiles('**/package*json', '**/package-lock.json', '**/*config.js', '**/*.patch') }}
${{ runner.os }}-

- name: Restore node_modules
id: yarn-cache
uses: actions/[email protected]
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
key: ${{ runner.os }}-${{ hashFiles('**/package*json', '**/package-lock.json', '**/*config.js', '**/*.patch') }}

- name: Install dependencies
if: steps.yarn-cache.outputs.cache-hit != 'true'
Expand Down
17 changes: 17 additions & 0 deletions .mocharc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"diff": true,
"extensions": [".js", ".ts"],
"package": "./package.json",
"require": [
"ignore-styles",
"ts-node/register",
"tsconfig-paths/register"
],
"exit": true,
"recursive": true,
"node-option": [
"es-module-specifier-resolution=node",
"experimental-specifier-resolution=node",
"loader=ts-node/esm"
]
}
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v18.14.0
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:18.12.1
FROM node:18.14.0

ARG USER_ID
ARG GROUP_ID
Expand Down
14 changes: 0 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,6 @@ You can disable and re-enable local gateway redirects by several means:
- Suspend redirects **per site** using the toggle under "Current tab" ([illustrated below](#toggle-gateway-redirects-on-a-per-website-basis)) or in IPFS Companion's preferences
- Add `x-ipfs-companion-no-redirect` to the URL itself as a hash ([example](https://ipfs.io/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR#x-ipfs-companion-no-redirect)) or query parameter ([example](https://ipfs.io/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR?x-ipfs-companion-no-redirect))

<!-- TODO: restore after https://github.com/ipfs-shipyard/ipfs-companion/issues/843 is closed
### IPFS API as `window.ipfs`

Your IPFS node is exposed as `window.ipfs` on every web page.
Websites can detect if `window.ipfs` exists and opt-in to use it instead of creating their own `js-ipfs` node.
It saves system resources and battery (on mobile), avoids the overhead of peer discovery/connection, enables shared repository access and more!
Make sure to read our [notes on `window.ipfs`](https://github.com/ipfs-shipyard/ipfs-companion/blob/main/docs/window.ipfs.md), where we explain it in-depth and provide examples on how to use it your own dapp.
-->

### Access frequently-used IPFS actions from your browser bar

IPFS Companion enables you to quickly and easily access common actions from your browser bar with just a few clicks:
Expand Down Expand Up @@ -105,11 +96,6 @@ IPFS Companion ships with a variety of experimental features. Some are disabled
- Re-route requests made via the following [experimental protocols](https://github.com/ipfs/ipfs-companion/issues/164) to an HTTP gateway (public or custom):
- `ipfs://$cid`
- `ipns://$cid_or_fqdn`
- `dweb:/ipfs/$cid`
- `dweb:/ipns/$cid_or_fqdn`

- Switch between the external HTTP API of your local IPFS node (default setting) and a js-ipfs node embedded in your browser (note that this has some [functionality limitations](https://docs.ipfs.io/how-to/companion-node-types/))
[![screenshot of node type switch](https://gateway.ipfs.io/ipfs/QmPDxawBTEmH5Dk1anaqpryRyyaNwmqVPt5DsCf21eFWQz)](http://docs.ipfs.io/how-to/companion-node-types/)

## Install IPFS Companion

Expand Down
28 changes: 6 additions & 22 deletions add-on/_locales/ar/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
},
"panel_headerActiveToggleTitle": {
"message": "قم بتبديل كافة تكاملات IPFS",
"description": "A label for an embedded IPFS node (panel_headerActiveToggleTitle)"
"description": "A label for an toggling all IPFS integrations (panel_headerActiveToggleTitle)"
},
"panel_statusOffline": {
"message": "غير متصل",
Expand Down Expand Up @@ -92,8 +92,8 @@
"description": "A menu item tooltip in Browser Action pop-up (panel_importCurrentIpfsAddressTooltip)"
},
"panelCopy_currentIpnsAddress": {
"message": "انسخ مسار IPNS",
"description": "A menu item in Browser Action pop-up and right-click context menu (panelCopy_currentIpnsAddress)"
"message": "انسخ مسار IPNS",
"description": "A menu item in Browser Action pop-up and right-click context menu (panelCopy_currentIpnsAddress)"
},
"panelCopy_currentIpnsAddressTooltip": {
"message": "استخدم مسار المحتوى هذا مع أدوات وبوابات IPFS للوصول إلى أحدث إصدار تم تحديثه من محتوى علامة التبويب هذه.",
Expand Down Expand Up @@ -239,19 +239,15 @@
"message": "فشل في إيقاف عقدة IPFS",
"description": "System notification title displayed when stopping an IPFS node fails (notify_stopIpfsNodeErrorTitle)"
},
"option_page_title" : {
"option_page_title": {
"message": "التفضيلات | رفيق IPFS",
"description": "Title of the Preferences page (option_page_title)"
},
"option_page_header" : {
"option_page_header": {
"message": "التفضيلات المصاحبة",
"description": "Main header on the Preferences screen (option_page_header)"
},
"option_legend_readMore" : {
"message": "اقرأ المزيد",
"description": "A generic link in option description on the Preferences screen (option_legend_readMore)"
},
"option_header_nodeType" : {
"option_header_nodeType": {
"message": "عقدة IPFS",
"description": "A section header on the Preferences screen (option_header_nodeType)"
},
Expand All @@ -267,10 +263,6 @@
"message": "اضبط على \"خارجي\" للاتصال بالعقدة المحلية باستخدام HTTP API.",
"description": "An option description on the Preferences screen (option_ipfsNodeType_external_description)"
},
"option_ipfsNodeType_embedded_description": {
"message": "اضبط على \"Embedded\" لتشغيل عقدة js-ipfs مباشرة في متصفحك. (انقر فوق \"قراءة المزيد\" للتعرف على قيود هذه الميزة التجريبية.)",
"description": "An option description on the Preferences screen (option_ipfsNodeType_embedded_description)"
},
"option_ipfsNodeType_brave_description": {
"message": "اضبط على \"المقدمة من Brave\" للاستفادة من دعم IPFS الأصلي لمتصفح Brave.",
"description": "An option description on the Preferences screen (option_ipfsNodeType_brave_description)"
Expand All @@ -279,18 +271,10 @@
"message": "تكوين عقدة IPFS",
"description": "An option title on the Preferences screen (option_ipfsNodeConfig_title)"
},
"option_ipfsNodeConfig_description": {
"message": "تكوين إضافي للعقدة JS IPFS المضمنة. يجب أن يكون JSON صالحًا.",
"description": "An option description on the Preferences screen (option_ipfsNodeConfig_description)"
},
"option_ipfsNodeType_external": {
"message": "خارجي",
"description": "An option on the Preferences screen (option_ipfsNodeType_external)"
},
"option_ipfsNodeType_embedded": {
"message": "المضمنة",
"description": "An option on the Preferences screen (option_ipfsNodeType_embedded)"
},
"option_ipfsNodeType_brave": {
"message": "مقدمة من Brave",
"description": "An option on the Preferences screen (option_ipfsNodeType_brave)"
Expand Down
26 changes: 7 additions & 19 deletions add-on/_locales/ca/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
},
"panel_headerActiveToggleTitle": {
"message": "Alterna totes les integracions IPFS",
"description": "A label for an embedded IPFS node (panel_headerActiveToggleTitle)"
"description": "A label for an toggling all IPFS integrations (panel_headerActiveToggleTitle)"
},
"panel_statusOffline": {
"message": "Desconectat",
Expand Down Expand Up @@ -92,8 +92,8 @@
"description": "A menu item tooltip in Browser Action pop-up (panel_importCurrentIpfsAddressTooltip)"
},
"panelCopy_currentIpnsAddress": {
"message": "Copy IPNS Path",
"description": "A menu item in Browser Action pop-up and right-click context menu (panelCopy_currentIpnsAddress)"
"message": "Copy IPNS Path",
"description": "A menu item in Browser Action pop-up and right-click context menu (panelCopy_currentIpnsAddress)"
},
"panelCopy_currentIpnsAddressTooltip": {
"message": "Use this content path with IPFS tools and gateways to reach the most recently updated version of this tab's content.",
Expand Down Expand Up @@ -239,19 +239,19 @@
"message": "Failed to Stop IPFS Node",
"description": "System notification title displayed when stopping an IPFS node fails (notify_stopIpfsNodeErrorTitle)"
},
"option_page_title" : {
"option_page_title": {
"message": "Preferències | IPFS Companion",
"description": "Title of the Preferences page (option_page_title)"
},
"option_page_header" : {
"option_page_header": {
"message": "Preferències de Companion",
"description": "Main header on the Preferences screen (option_page_header)"
},
"option_legend_readMore" : {
"option_legend_readMore": {
"message": "Llegir més",
"description": "A generic link in option description on the Preferences screen (option_legend_readMore)"
},
"option_header_nodeType" : {
"option_header_nodeType": {
"message": "Node IPFS",
"description": "A section header on the Preferences screen (option_header_nodeType)"
},
Expand All @@ -267,10 +267,6 @@
"message": "Set to \"External\" to connect to a local node using the HTTP API.",
"description": "An option description on the Preferences screen (option_ipfsNodeType_external_description)"
},
"option_ipfsNodeType_embedded_description": {
"message": "Set to \"Embedded\" to run a js-ipfs node directly in your browser. (Click \"Read more\" to learn about the limitations of this experimental feature.)",
"description": "An option description on the Preferences screen (option_ipfsNodeType_embedded_description)"
},
"option_ipfsNodeType_brave_description": {
"message": "Set to \"Provided by Brave\" to leverage the Brave browser's native IPFS support.",
"description": "An option description on the Preferences screen (option_ipfsNodeType_brave_description)"
Expand All @@ -279,18 +275,10 @@
"message": "Configurar Node IPFS",
"description": "An option title on the Preferences screen (option_ipfsNodeConfig_title)"
},
"option_ipfsNodeConfig_description": {
"message": "Configuració addicional pel node incrustat JS IPFS. Ha de ser un JSON vàlid.",
"description": "An option description on the Preferences screen (option_ipfsNodeConfig_description)"
},
"option_ipfsNodeType_external": {
"message": "Extern",
"description": "An option on the Preferences screen (option_ipfsNodeType_external)"
},
"option_ipfsNodeType_embedded": {
"message": "Incrustat",
"description": "An option on the Preferences screen (option_ipfsNodeType_embedded)"
},
"option_ipfsNodeType_brave": {
"message": "Provided by Brave",
"description": "An option on the Preferences screen (option_ipfsNodeType_brave)"
Expand Down
28 changes: 6 additions & 22 deletions add-on/_locales/cs/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
},
"panel_headerActiveToggleTitle": {
"message": "Zapnout/vypnout IPFS integraci",
"description": "A label for an embedded IPFS node (panel_headerActiveToggleTitle)"
"description": "A label for an toggling all IPFS integrations (panel_headerActiveToggleTitle)"
},
"panel_statusOffline": {
"message": "odpojený",
Expand Down Expand Up @@ -92,8 +92,8 @@
"description": "A menu item tooltip in Browser Action pop-up (panel_importCurrentIpfsAddressTooltip)"
},
"panelCopy_currentIpnsAddress": {
"message": "Kopírovat IPNS cestu",
"description": "A menu item in Browser Action pop-up and right-click context menu (panelCopy_currentIpnsAddress)"
"message": "Kopírovat IPNS cestu",
"description": "A menu item in Browser Action pop-up and right-click context menu (panelCopy_currentIpnsAddress)"
},
"panelCopy_currentIpnsAddressTooltip": {
"message": "Pomocí této cesty k obsahu se pomocí nástrojů a bran IPFS dostanete k poslední aktualizované verzi obsahu této karty.",
Expand Down Expand Up @@ -239,19 +239,15 @@
"message": "Nepodařilo se zastavit uzel IPFS",
"description": "System notification title displayed when stopping an IPFS node fails (notify_stopIpfsNodeErrorTitle)"
},
"option_page_title" : {
"option_page_title": {
"message": "Předvolby | IPFS Companion",
"description": "Title of the Preferences page (option_page_title)"
},
"option_page_header" : {
"option_page_header": {
"message": "Předvolby Companion",
"description": "Main header on the Preferences screen (option_page_header)"
},
"option_legend_readMore" : {
"message": "Více informací",
"description": "A generic link in option description on the Preferences screen (option_legend_readMore)"
},
"option_header_nodeType" : {
"option_header_nodeType": {
"message": "IPFS uzel",
"description": "A section header on the Preferences screen (option_header_nodeType)"
},
Expand All @@ -267,10 +263,6 @@
"message": "Nastavením na hodnotu \"Externí\" se připojíte k místnímu uzlu pomocí rozhraní HTTP API.",
"description": "An option description on the Preferences screen (option_ipfsNodeType_external_description)"
},
"option_ipfsNodeType_embedded_description": {
"message": "Nastavením na \"Embedded\" spustíte uzel js-ipfs přímo v prohlížeči. (Kliknutím na \"Přečtěte si více\" se dozvíte o omezeních této experimentální funkce.)",
"description": "An option description on the Preferences screen (option_ipfsNodeType_embedded_description)"
},
"option_ipfsNodeType_brave_description": {
"message": "Nastavte možnost \"Provided by Brave\", abyste využili nativní podporu IPFS v prohlížeči Brave.",
"description": "An option description on the Preferences screen (option_ipfsNodeType_brave_description)"
Expand All @@ -279,18 +271,10 @@
"message": "Konfigurace IPFS uzlu",
"description": "An option title on the Preferences screen (option_ipfsNodeConfig_title)"
},
"option_ipfsNodeConfig_description": {
"message": "Další konfigurace pro embedovaný uzel JS IPFS. Musí to být platný JSON.",
"description": "An option description on the Preferences screen (option_ipfsNodeConfig_description)"
},
"option_ipfsNodeType_external": {
"message": "Externí",
"description": "An option on the Preferences screen (option_ipfsNodeType_external)"
},
"option_ipfsNodeType_embedded": {
"message": "Integrovaný",
"description": "An option on the Preferences screen (option_ipfsNodeType_embedded)"
},
"option_ipfsNodeType_brave": {
"message": "Poskytuje Brave",
"description": "An option on the Preferences screen (option_ipfsNodeType_brave)"
Expand Down
Loading