Skip to content
This repository was archived by the owner on Jun 16, 2020. It is now read-only.

Commit 6408d45

Browse files
committed
following example of Webtorrent PR 5342
1 parent 9ef1d5a commit 6408d45

34 files changed

+193
-6
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ Brave.tar.bz2
5353

5454
app/extensions/brave/gen
5555
app/extensions/torrent/gen
56+
app/extensions/ipfs/gen
57+
5658
*.pfx
5759
buildConfig.js
5860

app/browser/ipfs.js

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/* IPFS node in electron's main process */
2+
3+
// const electron = require('electron')
4+
// const ipc = electron.ipcMain
5+
// const messages = require('../../js/constants/messages')
6+
const IPFS = require('ipfs')
7+
const os = require('os')
8+
const path = require('path')
9+
10+
module.exports = {init}
11+
12+
// Set to see communication between WebTorrent and torrent viewer tabs
13+
const DEBUG_IPC = false
14+
if (DEBUG_IPC) {
15+
console.log('IPFS IPC debugging enabled')
16+
}
17+
18+
// IPFS node
19+
let node = null
20+
// let channels = {}
21+
22+
// Receive messages via the window process, ultimately from the UI in a <webview> process
23+
function init () {
24+
if (DEBUG_IPC) {
25+
console.log('IPFS IPC init')
26+
}
27+
28+
node = new IPFS({
29+
repo: path.join(os.homedir(), '/.brave-jsipfs')
30+
})
31+
32+
node.on('ready', () => {
33+
if (DEBUG_IPC) {
34+
console.log('IPFS node is ready')
35+
}
36+
})
37+
38+
node.on('error', (err) => console.log('IPFS: ', err))
39+
40+
// access on the browser with remote.getGlobal('ipfs')
41+
global.ipfs = node
42+
43+
/* TODO(diasdavid) consider enabling the browser tab to start and stop the node
44+
ipc.on(messages.IPFS_MESSAGE, function (event, msg) {
45+
if (DEBUG_IPC) {
46+
console.log('IPFS: Received IPC: ' + JSON.stringify(msg))
47+
}
48+
49+
channels[msg.clientKey] = e.sender
50+
server.receive(msg)
51+
})
52+
*/
53+
}
54+
55+
// Send messages from the browser process (here), thru the window process, to the <webview>
56+
/*
57+
function send (msg) {
58+
if (DEBUG_IPC) console.log('Sending IPC: ' + JSON.stringify(msg))
59+
const channel = channels[msg.clientKey]
60+
if (!channel) {
61+
if (DEBUG_IPC) console.error('Ignoring unrecognized clientKey ' + msg.clientKey)
62+
return
63+
}
64+
if (channel.isDestroyed()) {
65+
if (DEBUG_IPC) console.log('Removing destroyed channel, clientKey ' + msg.clientKey)
66+
delete channels[msg.clientKey]
67+
return
68+
}
69+
channel.send(messages.IPFS_MESSAGE, msg)
70+
}
71+
*/

app/extensions.js

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,53 @@ let generateTorrentManifest = () => {
222222
}
223223
}
224224

225+
// Returns the Chromium extension manifest for the ipfsExtension
226+
// The ipfsExtension handles ipfs:// and dweb:
227+
// Analagous to the PDFJS extension, it shows a special UI for that type of resource
228+
let generateIPFSManifest = () => {
229+
let cspDirectives = {
230+
'default-src': '\'self\'',
231+
// TODO(bridiver) - remove example.com when webtorrent no longer requires it
232+
// (i.e. once Brave uses webpack v2)
233+
'connect-src': '\'self\' https://example.com',
234+
'media-src': '\'self\' http://localhost:*',
235+
'form-action': '\'none\'',
236+
'style-src': '\'self\' \'unsafe-inline\'',
237+
'frame-src': '\'self\' http://localhost:*'
238+
}
239+
240+
if (process.env.NODE_ENV === 'development') {
241+
// allow access to webpack dev server resources
242+
let devServer = 'localhost:' + process.env.npm_package_config_port
243+
cspDirectives['default-src'] += ' http://' + devServer
244+
cspDirectives['connect-src'] += ' http://' + devServer + ' ws://' + devServer
245+
cspDirectives['media-src'] += ' http://' + devServer
246+
cspDirectives['frame-src'] += ' http://' + devServer
247+
cspDirectives['style-src'] += ' http://' + devServer
248+
}
249+
250+
return {
251+
name: 'IPFS Viewer',
252+
description: l10n.translation('ipfsDesc'),
253+
manifest_version: 2,
254+
version: '1.0',
255+
content_security_policy: concatCSP(cspDirectives),
256+
content_scripts: [],
257+
permissions: ['externally_connectable.all_urls', 'tabs', '<all_urls>'],
258+
externally_connectable: {
259+
matches: ['<all_urls>']
260+
},
261+
icons: {
262+
128: 'img/ipfs-128.png',
263+
48: 'img/ipfs-48.png',
264+
16: 'img/ipfs-16.png'
265+
},
266+
incognito: 'split',
267+
// TODO(diasdavid) How to get this key??
268+
key: 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyWl+wMvL0wZX3JUs7GeZAvxMP+LWEh2bwMV1HyuBra/lGZIq3Fmh0+AFnvFPXz1NpQkbLS3QWyqhdIn/lepGwuc2ma0glPzzmieqwctUurMGSGManApGO1MkcbSPhb+R1mx8tMam5+wbme4WoW37PI3oATgOs2NvHYuP60qol3U7b/zB3IWuqtwtqKe2Q1xY17btvPuz148ygWWIHneedt0jwfr6Zp+CSLARB9Heq/jqGXV4dPSVZ5ebBHLQ452iZkHxS6fm4Z+IxjKdYs3HNj/s8xbfEZ2ydnArGdJ0lpSK9jkDGYyUBugq5Qp3FH6zV89WqBvoV1dqUmL9gxbHsQIDAQAB'
269+
}
270+
}
271+
225272
let generateSyncManifest = () => {
226273
let cspDirectives = {
227274
'default-src': '\'self\'',
@@ -419,7 +466,10 @@ module.exports.init = () => {
419466
}
420467
if (!extensionInfo.isLoaded(extensionId) && !extensionInfo.isLoading(extensionId)) {
421468
extensionInfo.setState(extensionId, extensionStates.LOADING)
422-
if (extensionId === config.braveExtensionId || extensionId === config.torrentExtensionId || extensionId === config.syncExtensionId) {
469+
if (extensionId === config.braveExtensionId ||
470+
extensionId === config.torrentExtensionId ||
471+
extensionId === config.syncExtensionId ||
472+
extensionId === config.ipfsExtensionId) {
423473
session.defaultSession.extensions.load(extensionPath, manifest, manifestLocation)
424474
return
425475
}
@@ -454,11 +504,13 @@ module.exports.init = () => {
454504
}
455505
}
456506

457-
// Manually install the braveExtension and torrentExtension
507+
// Manually install the braveExtension, torrentExtension and ipfsExtension
458508
extensionInfo.setState(config.braveExtensionId, extensionStates.REGISTERED)
459509
loadExtension(config.braveExtensionId, getExtensionsPath('brave'), generateBraveManifest(), 'component')
460510
extensionInfo.setState(config.syncExtensionId, extensionStates.REGISTERED)
461511
loadExtension(config.syncExtensionId, getExtensionsPath('brave'), generateSyncManifest(), 'unpacked')
512+
513+
// torrentExtension
462514
if (getSetting(settings.TORRENT_VIEWER_ENABLED)) {
463515
extensionInfo.setState(config.torrentExtensionId, extensionStates.REGISTERED)
464516
loadExtension(config.torrentExtensionId, getExtensionsPath('torrent'), generateTorrentManifest(), 'component')
@@ -467,6 +519,15 @@ module.exports.init = () => {
467519
extensionActions.extensionDisabled(config.torrentExtensionId)
468520
}
469521

522+
// ipfsExtension
523+
if (getSetting(settings.IPFS_ENABLED)) {
524+
extensionInfo.setState(config.ipfsExtensionId, extensionStates.REGISTERED)
525+
loadExtension(config.ipfsExtensionId, getExtensionsPath('ipfs'), generateIPFSManifest(), 'component')
526+
} else {
527+
extensionInfo.setState(config.ipfsExtensionId, extensionStates.DISABLED)
528+
extensionActions.extensionDisabled(config.ipfsExtensionId)
529+
}
530+
470531
let registerComponents = (diff) => {
471532
if (getSetting(settings.PDFJS_ENABLED)) {
472533
registerComponent(config.PDFJSExtensionId)

app/extensions/brave/locales/bn-BD/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=সর্বদা URL বার দেখান
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/bn-IN/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Always show the URL bar
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/cs/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=Volby pro adresní řádek
373373
disableTitleMode=Vždy ukázat adresní řádek
374374
wideURLbar=Použít široký adresní řádek
375375
autoplay=Automatické přehrávání
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/de-DE/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=Einstellungen der URL-Zeile
373373
disableTitleMode=URL Zeile immer anzeigen
374374
wideURLbar=Lange URL-Zeile verwenden
375375
autoplay=Automatisch Medien abspielen
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/en-US/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,3 +376,4 @@ urlBarOptions=URL Bar Options
376376
disableTitleMode=Always show the URL bar
377377
wideURLbar=Use wide URL bar
378378
autoplay=Autoplay Media
379+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/es/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Mostrar siempre la barra de URL
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/fr-FR/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Toujours afficher la barre d'adresse
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/hi-IN/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Always show the URL bar
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/id-ID/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=Pilihan bilah URL
373373
disableTitleMode=Selalu tampilkan bilah URL
374374
wideURLbar=Gunakan bilah URL yang lebar
375375
autoplay=Media Putar Otomatis
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/it-IT/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=Opzioni della barra degli indirizzi
373373
disableTitleMode=Visualizza sempre la barra degli indirizzi
374374
wideURLbar=Utilizza barra degli indirizzi ampia
375375
autoplay=Riproduzione automatica dei file multimediali
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/ja-JP/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URLバーの設定
373373
disableTitleMode=URLバーを常に表示
374374
wideURLbar=幅の広いURLバーを使う
375375
autoplay=自動再生
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/ko-KR/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=주소창 항상 표시
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/ms-MY/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=Pilihan Bar URL
373373
disableTitleMode=Sentiasa pamer bar URL
374374
wideURLbar=Guna bar URL lebar
375375
autoplay=Media Autoplay
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/nl-NL/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Altijd de URL-balk laten zien
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/pl-PL/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Always show the URL bar
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/pt-BR/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Mostrar sempre a barra de URL
374374
wideURLbar=Use wide URL bar
375375
autoplay=Reproduzir mídia automaticamente
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/ru/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=Параметры панели адресной строки
373373
disableTitleMode=Всегда отображать строку адреса
374374
wideURLbar=Использовать широкую панель адресной строки
375375
autoplay=Автовоспроизведение медиа
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/sl/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=Možnosti vrstice URL
373373
disableTitleMode=Vedno pokaži vrstico naslova URL
374374
wideURLbar=Uporabi široko vrstico URL
375375
autoplay=Samodejno predvajaj datoteke
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/ta/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Always show the URL bar
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/te/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Always show the URL bar
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/tr-TR/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Url çubuğunu her zaman göster
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/uk/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=Завжди показувати панель адреси
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/extensions/brave/locales/zh-CN/preferences.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,4 @@ urlBarOptions=URL Bar Options
373373
disableTitleMode=总是显示URL栏
374374
wideURLbar=Use wide URL bar
375375
autoplay=Autoplay Media
376+
useIPFS=Enable IPFS (requires browser restart)

app/filtering.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,13 @@ function registerPermissionHandler (session, partition) {
377377
return
378378
}
379379

380+
// The IPFS extension is always allowed to show fullscreen media
381+
if (permission === 'fullscreen' &&
382+
origin.startsWith('chrome-extension://' + config.ipfsExtensionId)) {
383+
cb(true)
384+
return
385+
}
386+
380387
// Always allow fullscreen if setting is ON
381388
const alwaysAllowFullscreen = module.exports.alwaysAllowFullscreen() === fullscreenOption.ALWAYS_ALLOW
382389
if (permission === 'fullscreen' && alwaysAllowFullscreen) {
@@ -412,6 +419,8 @@ function registerPermissionHandler (session, partition) {
412419
// This covers an edge case where you open a magnet link tab, then disable Torrent Viewer
413420
// and restart Brave. I don't think it needs localization. See 'Brave Browser' above.
414421
origin = 'Magnet URL'
422+
} else if (mainFrameUrl.startsWith('ipfs://') || mainFrameUrl.startsWith('ipfs://')) {
423+
origin = 'IPFS path'
415424
} else {
416425
// Strip trailing slash
417426
origin = getOrigin(origin)

app/renderer/components/frame/frame.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ const domUtil = require('../../lib/domUtil')
3939
const {
4040
aboutUrls,
4141
isSourceMagnetUrl,
42+
isSourceIPFSPath,
4243
isTargetAboutUrl,
4344
getTargetAboutUrl,
4445
getBaseUrl,
@@ -68,6 +69,11 @@ function isTorrentViewerURL (url) {
6869
return isEnabled && isSourceMagnetUrl(url)
6970
}
7071

72+
function isIPFSPath (url) {
73+
const isEnabled = getSetting(settings.IPFS_ENABLED)
74+
return isEnabled && isSourceIPFSPath(url)
75+
}
76+
7177
class Frame extends React.Component {
7278
constructor (props) {
7379
super(props)

docs/state.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ AppStore
177177
'advanced.send-usage-statistics': boolean, // true or undefined if usage reports should be sent
178178
'advanced.smooth-scroll-enabled': boolean, // false if smooth scrolling should be explicitly disabled
179179
'advanced.torrent-viewer-enabled': boolean, // whether to render magnet links in the browser
180+
'advanced.ipfs-enabled': boolean, // whether to use IPFS to render ipfs:// or dweb: links in the browser
180181
'bookmarks.toolbar.show': boolean, // true if the bookmakrs toolbar should be shown
181182
'bookmarks.toolbar.showFavicon': boolean, // true if bookmark favicons should be shown on the bookmarks toolbar
182183
'bookmarks.toolbar.showOnlyFavicon': boolean, // true if only favicons should be shown on the bookmarks toolbar

js/about/preferences.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -812,8 +812,12 @@ class AboutPreferences extends React.Component {
812812
if (key === settings.HARDWARE_ACCELERATION_ENABLED ||
813813
key === settings.DO_NOT_TRACK ||
814814
key === settings.LANGUAGE ||
815-
key === settings.PDFJS_ENABLED || key === settings.TORRENT_VIEWER_ENABLED ||
816-
key === settings.SMOOTH_SCROLL_ENABLED || key === settings.SEND_CRASH_REPORTS || key === settings.UPDATE_TO_PREVIEW_RELEASES) {
815+
key === settings.PDFJS_ENABLED ||
816+
key === settings.TORRENT_VIEWER_ENABLED ||
817+
key === settings.IPFS_ENABLED ||
818+
key === settings.SMOOTH_SCROLL_ENABLED ||
819+
key === settings.SEND_CRASH_REPORTS ||
820+
key === settings.UPDATE_TO_PREVIEW_RELEASES) {
817821
ipc.send(messages.PREFS_RESTART, key, value)
818822
}
819823
if (key === settings.PAYMENTS_ENABLED) {

js/constants/appConfig.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ module.exports = {
2929
COOKIEBLOCK: 'cookieblock', // block 3p cookies and referer
3030
COOKIEBLOCK_ALL: 'cookieblockAll', // block all cookies and referer
3131
SITEHACK: 'siteHacks',
32-
WEBTORRENT: 'webtorrent'
32+
WEBTORRENT: 'webtorrent',
33+
IPFS: 'ipfs'
3334
// ... other optional resource files are identified by uuid such as for regional adblock
3435
},
3536
cookieblock: {
@@ -85,6 +86,9 @@ module.exports = {
8586
webtorrent: {
8687
enabled: true
8788
},
89+
ipfs: {
90+
enabled: true
91+
},
8892
adInsertion: {
8993
enabled: false,
9094
url: adHost
@@ -185,6 +189,7 @@ module.exports = {
185189
'advanced.default-zoom-level': null,
186190
'advanced.pdfjs-enabled': true,
187191
'advanced.torrent-viewer-enabled': true,
192+
'advanced.ipfs-enabled': true,
188193
'advanced.smooth-scroll-enabled': false,
189194
'advanced.send-crash-reports': true,
190195
'advanced.send-usage-statistics': false,

js/constants/config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ module.exports = {
4949
},
5050
braveExtensionId: 'mnojpmjdmbbfmejpflffifhffcmidifd',
5151
torrentExtensionId: 'fmdpfempfmekjkcfdehndghogpnpjeno',
52+
// TODO(diasdavid) how to these get calculated?
53+
ipfsExtensionId: 'asdakdaklsjdaklsjdalsdaslkdjasds',
5254
syncExtensionId: 'cjnmeadmgmiihncdidmfiabhenbggfjm',
5355
PDFJSExtensionId: 'jdbefljfgobbmcidnmpjamcbhnbphjnb',
5456
PocketExtensionId: 'niloccemoadcdkdjlinkgdfekeahmflj',

0 commit comments

Comments
 (0)