|
15 | 15 | - [ ] Run the `Import and Sharing` (page, image, text, video) section.
|
16 | 16 |
|
17 | 17 | ### `go-updater node update`
|
18 |
| - |
| 18 | + |
19 | 19 | - [ ] Verify, using the above profile, that restarting Brave with `--use-dev-goupdater-url`, and clicking on `Restart` via `brave://ipfs` downloads and installs the latest in-development (release) candidate.
|
20 | 20 | - [ ] Confirm that `Method to resolve IPFS resources` is `Local node` in `brave://settings/ipfs`.
|
21 | 21 | - [ ] Confirm that keys and imports are intact, post-migration.
|
|
86 | 86 |
|
87 | 87 | Note: For the other types, downloading from the IPFS webui (My Node) and ensuring they still play in a media player, is enough.
|
88 | 88 |
|
89 |
| - ### `Sharing a local file using IPFS (without keys)` |
| 89 | + ### `Sharing a local file using IPFS (without IPNS keys)` |
90 | 90 |
|
91 | 91 | - [ ] Verify the IPFS item is available in the main app menu. Go to `IPFS -> Share Local File Using IPFS` select and import any local file.
|
92 | 92 | - [ ] Verify the file is downloaded and imported successfully,
|
93 | 93 | - [ ] Verify the import folder is opened upon successful completion.
|
94 |
| - - [ ] Verify the shareable link is copied to the clipboard, and opens when pasting into a new tab. |
| 94 | + - [ ] Verify the shareable link starting with `https://dweb.link/ipfs/` is copied to the clipboard, and opens when pasting into a new tab. |
95 | 95 | - [ ] Share the following filetypes:
|
96 | 96 | - [ ] .avi
|
97 | 97 | - [ ] .txt
|
|
103 | 103 | - [ ] .wav
|
104 | 104 | - [ ] .webm
|
105 | 105 |
|
106 |
| - ### `Sharing a local folder using IPFS (without keys)` |
| 106 | + ### `Sharing a local folder using IPFS (without IPNS keys)` |
107 | 107 |
|
108 | 108 | - [ ] Go to `IPFS -> share Local Folder Using IPFS`, and select and import any local folder.
|
109 | 109 | - [ ] Verify the whole folder is downloaded and imported successfully.
|
110 | 110 | - [ ] Verify the import folder opens upon successful import.
|
111 | 111 | - [ ] Verify the shareable link is copied to the clipboard, and opens when pasting into a new tab.
|
112 | 112 |
|
113 |
| -## Automatic redirects to IPFS |
| 113 | +## Address bar |
114 | 114 |
|
115 |
| -### Redirect via configured IPFS gateway |
116 |
| - - [ ] Via `brave://settings/ipfs`, set `Redirect IPFS resources to the configured IPFS gateway` to `On`. Load `https://en.wikipedia-on-ipfs.org/` and confirm it redirects to |
117 |
| - `http://en.wikipedia-on-ipfs.org.ipns.localhost:48081/wiki/`. |
| 115 | +### Badge shown only when IPFS support is enabled |
118 | 116 |
|
119 |
| -### Redirect via DNSLink |
120 |
| - - [ ] Verify with `Automatically redirect to IPFS pages via DNSLink when possible` set to `On`, visiting `https://en.wikipedia-on-ipfs.org/wiki` redirects to `ipns://en.wikipedia-on-ipfs.org/wiki`. |
| 117 | +- [ ] Verify, on a new profile, you can load `https://en.wikipedia-on-ipfs.org`, switch `Method to resolve IPFS resources` to either `Gateway` or `Local node` in `brave://settings/ipfs`, and then see an `Open using IPFS` badge/icon in the URL bar. |
121 | 118 |
|
122 |
| -### Interstitial page (`Ask` mode in `brave://settings/ipfs`) |
123 |
| - - [ ] Verify when loading an IPFS/IPNS resource it triggers an interstitial page with the choice to install and use via local node or a public gateway. |
124 |
| - - [ ] Load `ipns://brantly.eth` while using `Local node` for the resolver, and confirm there's a clickable info badge to the left of the URL, which says `This content was loaded over the IPFS protocol.` |
125 | 119 |
|
126 |
| -## DNSLink |
| 120 | +### Badge on a public gateway |
127 | 121 |
|
128 | 122 | - [ ] Verify that loading `https://dweb.link/ipfs/QmT5NvUtoM5nWFfrQdVrFtvGfKFmG7AHE8P34isapyhCxX/wiki/Mars.html` redirects you seamlessly to `https://bafybeicgmdpvw4duutrmdxl4a7gc52sxyuk7nz5gby77afwdteh3jc5bqa.ipfs.dweb.link/wiki/Mars.html`, and there's an `Open using IPFS` badge/button in the URL bar. Confirm that clicking `Open using IPFS` goes to `ipfs://bafybeicgmdpvw4duutrmdxl4a7gc52sxyuk7nz5gby77afwdteh3jc5bqa/wiki/Mars.html`.
|
129 | 123 | - [ ] Verify that loading `https://ipfs.io/ipns/libp2p.io/` shows an `Open using IPFS` button in the URL bar, and clicking it redirects to `ipns://libp2p.io/`. Confirm it resolves and loads.
|
130 | 124 |
|
| 125 | +### Badge on DNSlink websites |
| 126 | + |
| 127 | +- [ ] Verify clicking on `Open using IPFS` on `https://en.wikipedia-on-ipfs.org/wiki/Asia/#Economy` loads `ipns://en.wikipedia-on-ipfs.org/wiki/Asia/#Economy` in a new tab. |
| 128 | +- [ ] Verify clicking on `Open using IPFS` on `https://blog.ipfs.io/24-uncensorable-wikipedia` loads `ipns://blog.ipfs.io/24-uncensorable-wikipedia/` in a new tab. |
| 129 | + |
| 130 | +### Protocol info popup |
| 131 | + |
| 132 | +- [ ] Load `ipns://brantly.eth` while using `Local node` for the resolver, and confirm there's a clickable info badge "IPFS" to the left of the URL, with on click pop-up that says `This content was loaded over the IPFS protocol.` |
| 133 | + |
| 134 | +## Automatic redirects to IPFS |
| 135 | + |
| 136 | +- [ ] Via `brave://settings/ipfs`, set `Redirect IPFS resources to the configured IPFS gateway` to `On`. |
| 137 | + - [ ] Load `https://ipfs.io/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR` and confirm it redirects to `ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi`. |
| 138 | + - [ ] Load `https://en.wikipedia-on-ipfs.org/wiki/` and confirm it redirects to `ipns://en.wikipedia-on-ipfs.org/wiki/`. |
| 139 | + |
| 140 | + |
131 | 141 | ## IPFS Companion
|
132 | 142 |
|
133 | 143 | - [ ] Verify that toggling `IPFS Companion` to `On` via `brave://settings/ipfs` prompts you to install the extension. After clicking `Add extension`, confirm you get a notification that IPFS Companion was added to Brave, and are then taken to the `Set your IPFS preference` interstitial page.
|
134 |
| -- [ ] Verify that clicking on the puzzle-piece icon on the browser toolbar, then `IPFS Companion`, will load a popup. Click on the gears (settings) icon and confirm it loads the `Companion Preferences` page. |
| 144 | +- [ ] Verify that clicking on the puzzle-piece icon on the browser toolbar, then `IPFS Companion`, will load a popup. |
| 145 | + - [ ] Click on the gears (settings) icon and confirm it loads the `Companion Preferences` page. |
| 146 | + - [ ] Click on `My Node` and confirm it opens the same ipfs-webui interface as `My Node` at `brave://ipfs-internals` |
135 | 147 |
|
136 | 148 | ## IPFS URLs
|
137 | 149 |
|
138 | 150 | - [ ] Ensure each of the following IPFS URLs load over both `Gateway` and `Local node` modes:
|
139 |
| - - [ ] `ipfs://bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq/wiki/Vincent_van_Gogh.html` |
| 151 | + - [ ] `ipfs://bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq/wiki/Vincent_van_Gogh.html#Life` |
140 | 152 | - [ ] `ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi/`
|
141 | 153 | - [ ] `ipfs://QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/Tokyo_National_Museum.html`
|
142 | 154 | - [ ] `ipfs:QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme`
|
143 | 155 |
|
144 | 156 | ## IPNS URLs
|
145 | 157 |
|
146 | 158 | - [ ] Ensure each of the following IPNS URLs load over both `Gateway` and `Local node` modes:
|
147 |
| - - [ ] `ipns://brantly.eth` |
148 | 159 | - [ ] `ipns://en.wikipedia-on-ipfs.org`
|
149 |
| - - [ ] `ipns://libp2p.io/` |
150 |
| - - [ ] `ipns://en.wikipedia-on-ipfs.org/wiki/Tokyo` |
151 |
| - - [ ] `ipns://ipfs.io` |
| 160 | + - [ ] `ipns://en.wikipedia-on-ipfs.org/wiki/Tokyo#Islands` |
| 161 | + - [ ] `ipns://docs.ipfs.io` |
| 162 | + - [ ] `ipns://brantly.eth` (ENS) |
| 163 | + - [ ] `ipns://brave.crypto` (Unstoppable Domains) |
152 | 164 |
|
153 |
| -## Gateway |
| 165 | +## Gateway choice |
154 | 166 |
|
155 |
| -- [ ] Verify, on a new profile, you can change the IPFS public gateway address to `https://cf-ipfs.com/` via `Settings -> IPFS -> Change`. |
156 |
| -- [ ] Verify visiting `ipns://en.wikipedia-on-ipfs.org` loads the interstitial page. |
157 |
| -- [ ] Verify selecting `Use a public gateway` with `ipns://en.wikipedia-on-ipfs.org` loaded opens `https://en-wikipedia--on--ipfs-org.ipns.cf-ipfs.com/wiki/`. |
158 |
| -- [ ] Verify, on a new profile, you can load `https://en.wikipedia-on-ipfs.org`, switch `Method to resolve IPFS resources` to either `Gateway` or `Local node` in `brave://settings/ipfs`, and then see an `Open using IPFS` badge/icon in the URL bar. |
159 |
| -- [ ] Verify clicking on `Open using IPFS` on `https://blog.ipfs.io/24-uncensorable-wikipedia` loads `ipfs://bafybeiaieqdmhtnehaau7kqoj2lmdfqc7juk34cjyb7dxr35vahp22bquu/24-uncensorable-wikipedia/`. |
| 167 | +## The interstitial page |
| 168 | + |
| 169 | +- [ ] Confirm a fresh profile has `Method to resolve IPFS resources` set to `Ask` in `brave://settings/ipfs`. |
| 170 | + - [ ] Verify visiting `ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi` loads the interstitial page. |
| 171 | + - [ ] Verify visiting `ipns://en.wikipedia-on-ipfs.org` in a new tab loads the same interstitial page. |
| 172 | + - [ ] Verify selecting `Use a public gateway` loads `https://cf-ipfs.com/ipns/en.wikipedia-on-ipfs.org/wiki/` which then redirect to unique Origin at `https://en-wikipedia--on--ipfs-org.ipns.cf-ipfs.com/wiki/`. |
| 173 | + - [ ] Verify selecting `Use local node` loads `ipns://en.wikipedia-on-ipfs.org/wiki/`. |
| 174 | + |
| 175 | +### Public Path gateway |
| 176 | + |
| 177 | +- [ ] Verify, on a new profile, you can't change the IPFS public gateway address to `https://cloudflare-ipfs.com/` via `Settings -> IPFS -> IPFS public gateway address -> Change`. |
| 178 | +- [ ] An error stating `Only a valid IPFS gateway with Origin isolation enabled can be used in Brave` is displayed ([example](https://github.com/brave/brave-browser/issues/18212#issuecomment-923632150)). |
| 179 | + |
| 180 | +### Public Subdomain Gateway |
| 181 | + |
| 182 | +- [ ] Verify, on a new profile, you can change the IPFS public gateway address to `https://cf-ipfs.com/` via `Settings -> IPFS -> IPFS public gateway address |
| 183 | + -> Change`. |
| 184 | +- [ ] Verify opening `ipns://en.wikipedia-on-ipfs.org/wiki/` and selecting `Use a public gateway` loads `https://cf-ipfs.com/ipns/en.wikipedia-on-ipfs.org/wiki/` which then redirect to unique Origin at `https://en-wikipedia--on--ipfs-org.ipns.cf-ipfs.com/wiki/` Verify loads `https://cf-ipfs.com/ipns/en.wikipedia-on-ipfs.org/wiki/` which then redirect to unique Origin at `https://en-wikipedia--on--ipfs-org.ipns.cf-ipfs.com/wiki/`. |
160 | 185 |
|
161 | 186 | ### Protocol system handler/OS integration
|
162 | 187 |
|
| 188 | +#### ipfs:// |
| 189 | + |
163 | 190 | - [ ] Verify (`Windows`) that pressing `Win+R`, typing `open ipfs://bafkreigcnxudvpojjfwncmauociy5q46zsq46oe66cxbyzie3imabuoege`, and pressing `Enter` opens Brave and loads an HTML page with the word `PASS`.
|
164 | 191 | - [ ] Verify (`macOS`): opening Terminal, and typing `open ipfs://bafkreigcnxudvpojjfwncmauociy5q46zsq46oe66cxbyzie3imabuoege`, and pressing `Enter` opens Brave and loads an HTML page with the word `PASS`.
|
165 | 192 | - [ ] Verify (`Linux`) that opening a shell and typing `xdg-open ipfs://bafkreigcnxudvpojjfwncmauociy5q46zsq46oe66cxbyzie3imabuoege` and pressing `Enter` opens Brave and loads an HTML page with the word `PASS`.
|
166 | 193 |
|
| 194 | +#### ipns:// |
| 195 | + |
| 196 | +- [ ] Verify (`Windows`) that pressing `Win+R`, typing `open ipns://en.wikipedia-on-ipfs.org/wiki/Tokyo#Islands`, and pressing `Enter` opens Brave and loads an HTML page scrolled to the header `Islands`. |
| 197 | +- [ ] Verify (`macOS`): opening Terminal, and typing `open ipns://en.wikipedia-on-ipfs.org/wiki/Tokyo#Islands`, and pressing `Enter` opens Brave and loads an HTML page scrolled to the header `Islands`. |
| 198 | +- [ ] Verify (`Linux`) that opening a shell and typing `xdg-open ipns://en.wikipedia-on-ipfs.org/wiki/Tokyo#Islands`, and pressing `Enter` opens Brave and loads an HTML page scrolled to the header `Islands`. |
| 199 | + |
| 200 | + |
167 | 201 | ## Peers
|
168 | 202 |
|
169 | 203 | - [ ] Prerequisites: local node launched and local gateway configured on two machines, locally networked (LAN, can be over Wi-Fi).
|
|
173 | 207 | - [ ] Verify when you go to `brave://settings/ipfs/peers` and click on the `Add` button, it prompts you to enter a new peer-connection string. Confirm that entering an incorrect string yields `This name is not valid` upon clicking `Submit`. (Acceptable ones are only CIDs or something like `**/p2p/**` format.)
|
174 | 208 | - [ ] Verify if a peer is added and node is started, it proposes to restart node to apply changes.
|
175 | 209 | - [ ] Verify the local node is restarted by clicking `Restart` button; happen it shows error message and suggests to see more on diagnostic page.
|
| 210 | + - [ ] Verify that `Peering.Peers` section of IPFS node config file got updated (either via `My Node → Settings → IPFS Config` or by manually inspecting `brave_ipfs/config` file). |
176 | 211 |
|
177 | 212 | ### `Removing`
|
178 | 213 |
|
|
182 | 217 |
|
183 | 218 | - [ ] Prerequisites: local node launched and local gateway configured. Go to `Settings -> IPFS`, there should be an available `Set up your IPNS keys` option, which opens `brave://settings/ipfs/keys`
|
184 | 219 |
|
185 |
| - ### `Sharing a local file using an IPFS key` |
| 220 | + ### `Publishing a local file using an IPNS key` |
186 | 221 |
|
187 |
| - - [ ] Verify you're able to share a local file via `IPFS > Share local file using IPFS`. |
| 222 | + - [ ] (after [brave/brave-browser#16998](https://github.com/brave/brave-browser/issues/16998) lands) Verify you're able to share a local file via `IPFS -> Share local file using IPNS -> self`. |
188 | 223 | - [ ] Verify once the file is imported, the import folder is opened and the file can be downloaded.
|
189 |
| - - [ ] Once the import is successful, verify a shareable link is copied to the clipboard by opening a new tab and pasting from the context menu or `CTRL+V`. |
190 |
| - - [ ] Verify you see the IPFS key (e.g. `k51qzi5uqu5dgxhiv8w8cdvmgdhbvy3t9gn4jwpwwro18fots0xtdabpcxxzwc`) before the `?filename=filename.ext` from the copied text. |
| 224 | + - [ ] Once the import is successful, verify a shareable link starting with `https://dweb.link/ipns/` is copied to the clipboard by opening a new tab and pasting from the context menu or `CTRL+V`. |
| 225 | + - [ ] Verify you see the IPNS key (e.g. `k51q...`) before the `?filename=filename.ext` from the copied text. |
191 | 226 |
|
192 |
| - ### `Sharing a local folder using an IPFS key` |
| 227 | + ### `Publishing a local folder using an IPNS key` |
193 | 228 |
|
194 |
| - - [ ] Verify you're able to share a local file via `IPFS > Share local folder using IPFS`. |
| 229 | + - [ ] (after [brave/brave-browser#16998](https://github.com/brave/brave-browser/issues/16998) lands) Verify you're able to share a local file via `IPFS > Share local folder using IPNS -> self`. |
195 | 230 | - [ ] Verify once the file is imported, the import folder is opened and the file can be downloaded.
|
196 |
| - - [ ] Once the import is successful, verify a shareable link is copied to clipboard by opening a new tab and pasting from context menu or `CTRL+V`. |
197 |
| - - [ ] Verify you see the IPFS key (e.g. `k51qzi5uqu5dgxhiv8w8cdvmgdhbvy3t9gn4jwpwwro18fots0xtdabpcxxzwc`) before the `?filename=filename.ext` from the copied text. |
| 231 | + - [ ] Once the import is successful, verify a shareable link starting with `https://dweb.link/ipns/` is copied to clipboard by opening a new tab and pasting from context menu or `CTRL+V`. |
| 232 | + - [ ] Verify you see the IPNS key (e.g. `k51q...`) before the `?filename=filename.ext` from the copied text. |
198 | 233 |
|
199 | 234 | ### `Importing keys`
|
200 | 235 |
|
201 | 236 | - [ ] Verify adding a new key by clicking on the `Import` button and choosing an existing key file to import.
|
202 | 237 | - [ ] Verify imported key is available with entered name; verify entering `self` will yield `This name cannot be used`.
|
203 | 238 | - [ ] Verify you cannot import keys with the same name; each key name must be unique.
|
204 | 239 |
|
205 |
| - ### `Pinning content with IPNS key` |
| 240 | + ### `Publishing content with IPNS key` |
206 | 241 |
|
207 | 242 | - [ ] Verify keys are available in all import menus in order to pin content by selected key; the import link should contain the selected key.
|
208 | 243 |
|
209 | 244 | ### `Add/Remove/Rotate keys`
|
210 | 245 |
|
211 | 246 | - [ ] Verify when you click `Add`, it prompts for a key name and generates a new key.
|
212 |
| - - [ ] Verify clicking on `Add` and entering an existing key name shows a `This name cannot be used` error message. |
| 247 | + - [ ] Verify clicking on `Add` and entering an existing key name shows a `This name cannot be used` error message. |
213 | 248 | - [ ] Verify clicking on the Rotate key icon for the `self` key prompts for a key name. Enter a valid, unique name and click `Rotate`. Confirm the key is created with your entered name, original hash, and a new `self` key (with a new hash value) is generated.
|
214 | 249 | - [ ] Verify clicking on the 3-dots menu to the right of a key gives you two options: `Export key` and `Remove key`. Choose `Export key` and confirm you get prompted to save the key. Click `Save` and ensure the key is saved to disk. Delete the key from `brave://settings/ipfs/keys` and now click `Add` to confirm the same key as the original is added from disk.
|
215 | 250 | - [ ] Verify clicking on the 3-dots menu and choosing `Remove key` removes the key from the UI.
|
|
224 | 259 | - [ ] Verify the setting is enabled by default.
|
225 | 260 | - [ ] Verify disable/enable setting is retained between browser launch/restarts.
|
226 | 261 | - [ ] Verify setting state is retained during upgrade.
|
| 262 | +- [ ] Verify you can't change the IPFS public gateway address to `https://cloudflare-ipfs.com/` (An error `Only a valid IPFS gateway with Origin isolation enabled can be used in Brave` is displayed – [example](https://github.com/brave/brave-browser/issues/18212#issuecomment-923632150)). |
| 263 | +- [ ] Verify you can change the IPFS public gateway address to `https://cf-ipfs.com/` (passes the Origin isolation test). |
227 | 264 |
|
228 | 265 | ### `IPFS/IPNS URI`
|
229 | 266 |
|
|
0 commit comments