diff --git a/README.md b/README.md index 949190f44..18bf2ef5e 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,23 @@ - -| **Important Announcement** :rocket: | -| --- | -| [Add-on is being migrated to the new Firefox API called WebExtensions](https://github.com/ipfs/ipfs-companion/issues/20). It will be released as `2.x.x` | -| Versions `1.x.x` are maintained in [legacy-sdk](https://github.com/ipfs/ipfs-companion/tree/legacy-sdk) branch. | - # IPFS Companion -![screenshot of v1.5.9](screenshot.png) +![screenshot of v2.0.8](screenshot.png) [![](https://img.shields.io/github/release/ipfs/ipfs-companion.svg)](https://github.com/ipfs/ipfs-companion/releases/latest) [![](https://img.shields.io/badge/mozilla-full%20review-blue.svg)](https://addons.mozilla.org/en-US/firefox/addon/ipfs-gateway-redirect/) [![js-standard-style](https://img.shields.io/badge/code%20style-standard-blue.svg)](http://standardjs.com/) -[![NSP Status](https://nodesecurity.io/orgs/lidelorg/projects/db13ad1f-ca19-42c5-8c58-dbb8d111b651/badge)](https://nodesecurity.io/orgs/lidelorg/projects/db13ad1f-ca19-42c5-8c58-dbb8d111b651) [![build-status](https://travis-ci.org/ipfs/ipfs-companion.svg?branch=master)](https://travis-ci.org/ipfs/ipfs-companion) [![Coverage Status](https://coveralls.io/repos/github/lidel/ipfs-firefox-addon/badge.svg?branch=master)](https://coveralls.io/github/lidel/ipfs-firefox-addon?branch=master) -> Firefox addon that provides transparent access to IPFS resources via local HTTP2IPFS gateway. - -(If you are using Google Chrome or Chromium check [ipfs-chrome-extension](https://github.com/dylanPowers/ipfs-chrome-extension) or [ipfs-chrome-station](https://github.com/xicombd/ipfs-chrome-station) instead) +> Browser extension that simplifies access to IPFS resources ## Table of Contents - [Background](#background) - [Features](#features) - [Install](#install) + - [Firefox](#firefox) + - [Chromium](#chromium-based-browsers) +- [Troubleshooting](#troubleshooting) - [Contribute](#contribute) - [License](#license) @@ -42,35 +36,62 @@ Learn more at: https://ipfs.io (It is really cool, I promise!) - Toolbar icon displays current IPFS peering status - Click on it to open IPFS actions menu - Display information about custom gateway - - Toggle redirection to the gateway (ON by default) - - Open WebUI (eg. go-ipfs daemon running at the custom gateway) + - Redirection to local gateway (automatic by default, manual mode can be enabled in Preferences) + - Easy way to open WebUI (e.g. go-ipfs daemon running at the custom gateway) + - Quick Upload of local files to IPFS + - Mirror to IPFS via right click on any image or video on any website - Additionally, on pages loaded from IPFS: - - Pin IPFS Resource (via API) + - Pin/Unpin IPFS Resource (via API) - Copy canonical IPFS address - - Copy shareable URL to resource at a default public gateway (first one on public gateway list) + - Copy shareable URL to resource at the public gateway - Requests to `https?:///(ipfs|ipns)/$RESOURCE` are replaced with `http://127.0.0.1:8080/(ipfs|ipns)/$RESOURCE` -- Custom Gateway address and other settings can be tweaked at - `about:addons` → Extensions → IPFS Gateway Redirect → Preferences +- Custom Gateway address and other settings can be tweaked via Preferences - Requests made via popular custom protocols are routed to the active gateway (public or custom): - `[web+](ipfs|ipns):/*$RESOURCE` - `[web+]fs:/*(ipfs|ipns)/$RESOURCE` - Experimental features (disabled by default, use Preferences screen to enable) - - Automatic Mode: enable/disable redirect based on the number of peers - Detect and redirect sites with [dnslink](https://github.com/jbenet/go-dnslink) to `/ipns/` - Rewrite hrefs with `/ip(f|n)s/*` paths on every page to point to IPFS gateway. Make plaintext IPFS links clickable. ## Install +### Firefox + Install the latest signed release from [AMO](https://addons.mozilla.org/en-US/firefox/addon/ipfs-gateway-redirect/): [![Get the add-on](https://blog.mozilla.org/addons/files/2015/11/AMO-button_1.png)](https://addons.mozilla.org/en-US/firefox/addon/ipfs-gateway-redirect/) It will guarantee automatic updates to the latest version reviewed by Mozilla community. +#### Legacy Firefox (< 53) and XUL-Compatible Browsers + +Legacy versions `1.x.x` were based on currently deprecated Add-On SDK (Firefox-only). +While it is not maintained anymore, one can inspect, build and install it using codebase from [legacy-sdk](https://github.com/ipfs/ipfs-companion/tree/legacy-sdk) branch. +For historical background on the rewrite see [Issue #20: Move to WebExtensions](https://github.com/ipfs/ipfs-companion/issues/20). + +### Chromium-Based Browsers + +Try manual installation: + +1. Download Sources +2. Build it: + + ```bash + npm install + npm run build + ``` + +3. Then open up `chrome://extensions` in Chromium-based browser, enable "Developer mode", click "Load unpacked extension..." and point it at `add-on/manifest.json` + + ### TROUBLESHOOTING -#### Rule to work with NoScript with ABE enabled +#### Upload via Right-Click Does Not Work in Firefox + +See [this workaround](https://github.com/ipfs/ipfs-companion/issues/227). + +#### Rule To Work with NoScript with ABE Enabled By default [NoScript](https://addons.mozilla.org/en-US/firefox/addon/noscript/) breaks this addon by blocking assets loaded from IPFS Gateway running on localhost. To make it work, one needs to extend the SYSTEM Rulset and prepend it with IPFS whitelist: @@ -99,3 +120,4 @@ See [CONTRIBUTING](CONTRIBUTING.md) :sparkles: [is-ipfs](https://github.com/xicombd/is-ipfs), [js-multihash](https://github.com/jbenet/js-multihash) and other NPM dependencies are under MIT license, unless stated otherwise. The add-on itself is released under [CC0](LICENSE): to the extent possible under law, the author has waived all copyright and related or neighboring rights to this work, effectively placing it in the public domain. + diff --git a/add-on/manifest.json b/add-on/manifest.json index 78383c332..92cdf7466 100644 --- a/add-on/manifest.json +++ b/add-on/manifest.json @@ -1,10 +1,10 @@ { "manifest_version": 2, - "name": "IPFS Companion (Development Channel)", + "name": "IPFS Companion", "short_name": "IPFS Companion", - "version" : "2.0.7", + "version" : "2.0.8", - "description": "Access IPFS resources via custom HTTP2IPFS gateway", + "description": "Browser extension that simplifies access to IPFS resources", "homepage_url": "https://github.com/ipfs/ipfs-companion", "author": "Marcin Rataj", "icons": { @@ -15,7 +15,7 @@ "applications": { "gecko": { "id": "ipfs-firefox-addon@lidel.org", - "strict_min_version": "52.0" + "strict_min_version": "53.0" } }, diff --git a/package.json b/package.json index 4d14c09c5..58b42525a 100644 --- a/package.json +++ b/package.json @@ -36,13 +36,13 @@ }, "devDependencies": { "babel-preset-es2017": "6.24.1", - "chai": "4.0.2", + "chai": "4.1.0", "cross-env": "5.0.1", "fakefile": "0.0.9", "fs-promise": "2.0.3", - "fx-runner": "1.0.6", - "geckodriver": "1.7.1", - "husky": "0.14.2", + "fx-runner": "1.0.7", + "geckodriver": "1.8.0", + "husky": "0.14.3", "karma": "1.7.0", "karma-babel-preprocessor": "6.0.1", "karma-chai": "0.1.0", @@ -56,10 +56,10 @@ "npm-run-all": "4.0.2", "selenium-webdriver": "3.4.0", "shx": "0.2.2", - "sinon": "2.3.6", + "sinon": "2.3.8", "standard": "10.0.2", "sinon-chrome": "2.2.1", - "web-ext": "1.10.0" + "web-ext": "1.10.1" }, "dependencies": { "ipfs-api": "14.0.4", diff --git a/screenshot.png b/screenshot.png index e6edab524..af60f5572 100644 Binary files a/screenshot.png and b/screenshot.png differ