dat-fox

dat:// protocol as a Firefox webextension

  • 所有者: sammacbeth/dat-fox
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Dat-Firefox

This is a prototype browser extension which makes dat:// urls function in Firefox using a slightly
modified dat-gateway as a bridge to the dat network.

It aims to implement native-like dat support possible in Firefox. This means:

  1. Links to dat:// addresses and sites should work directly. While Webextensions protocol handlers are limited - we cannot show dat:// in the address bar on a loaded page - we can at least properly process the initial URL or link.
  2. Dat site operate on the correct origin. When using the dat-gateway to bridge to the dat network, all dat addresses look like http://localhost:3000/{hash}/path. This has the effect of potentially breaking relative URLs on the page, and also preventing the web's cross-origin policies from preventing data leakage between sites. To fix this we have to make {hash} the origin.

Usage

  1. Install dat-fox-helper

  2. Install the extension from the Mozilla Addon Store

  3. Visit a dat:// URL.

Local development

You can also build and run the extension locally. You will need a version of node greather that 7. nvm is recommended for installing node.

git clone https://github.com/sammacbeth/dat-fox.git
cd dat-fox
# install build dependencies
npm install
# build
npm run build
# if you want to watch for file changes
npm run serve

You can now load the addon folder as a temporary addon in Firefox:

  1. Go to about:debugging in Firefox.
  2. Chose Load Temporary Addon.
  3. Browser to the addon folder and chose any file in this folder.

What works

  • Load content from dat archives with the following URL types:
    • dat://{hash}
    • http://{hash}
    • dat://{hostname} (using Dat Discovery)
  • Toggle between https to dat protocol for Dat-enabled sites.
  • Create and fork archives.
  • DatArchive API

How it works

  1. The protocol handler redirects dat:// urls to a special handler domain (dat.redirect), passing the full url.
  2. A webRequest listener intercepts requests to this domain and redirects to a http:// URL with the dat key or hostname as the origin.
  3. A proxy PAC file intercepts hostnames matching a dat key pattern, or hostnames the user has explicitly ask to load over dat. Requests for these URLs are proxied via the dat-gateway (acting as a HTTP proxy). This allows us to make 'fake' hostnames work, and create the origins we need for dat sites.

主要指標

概覽
名稱與所有者sammacbeth/dat-fox
主編程語言JavaScript
編程語言JavaScript (語言數: 2)
平台
許可證MIT License
所有者活动
創建於2018-04-03 17:11:47
推送於2022-12-07 17:56:56
最后一次提交2020-04-01 17:04:32
發布數12
最新版本名稱v0.1.8 (發布於 )
第一版名稱v0.0.2 (發布於 )
用户参与
星數249
關注者數12
派生數12
提交數73
已啟用問題?
問題數33
打開的問題數21
拉請求數12
打開的拉請求數21
關閉的拉請求數6
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?