All Projects → tholian-network → retrokit

tholian-network / retrokit

Licence: other
🕹️ Bring back the old Web(Kit) and make it secure

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
perl
6916 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to retrokit

WebView4Delphi
WebView4Delphi is an open source project created by Salvador Díaz Fau to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC for Windows.
Stars: ✭ 157 (+302.56%)
Mutual labels:  webkit
devdocs-desktop
GTK3 application for DevDocs API documentation browser.
Stars: ✭ 102 (+161.54%)
Mutual labels:  webkit
capnet-assist
Captive Portal Assistant
Stars: ✭ 47 (+20.51%)
Mutual labels:  webkit2gtk
playwright-demos
playwright for scrapping and UI testing / automate testing workflows
Stars: ✭ 65 (+66.67%)
Mutual labels:  webkit
new-browserhax-XL
Another one!
Stars: ✭ 32 (-17.95%)
Mutual labels:  webkit
blockit
WebKitGTK adblock extension with Brave's Rust-based adblock engine for backend.
Stars: ✭ 47 (+20.51%)
Mutual labels:  webkit2gtk
Qawolf
🐺 Create browser tests 10x faster
Stars: ✭ 2,912 (+7366.67%)
Mutual labels:  webkit
libwinmedia
[Archived] A cross-platform simple media playback library for C/C++.
Stars: ✭ 35 (-10.26%)
Mutual labels:  webkit
browsengine
Engine Detection Script for Browsers on Any Device
Stars: ✭ 17 (-56.41%)
Mutual labels:  browser-engine
M2DWebViewController
Simple built-in web view controller using WebKit.
Stars: ✭ 25 (-35.9%)
Mutual labels:  webkit
zen-client
Zen's cross-platform desktop client 💬💻
Stars: ✭ 38 (-2.56%)
Mutual labels:  webkit
qt-webkit-kiosk
This is simple browser application written on Qt & QtWebkit.
Stars: ✭ 49 (+25.64%)
Mutual labels:  webkit
photos
Photo viewer and organizer designed for elementary OS
Stars: ✭ 101 (+158.97%)
Mutual labels:  webkit2gtk
plausible
Hybrid native + web app for Plausible Analytics
Stars: ✭ 47 (+20.51%)
Mutual labels:  webkit
unofficial-webapp-office-poc1
Access all of your favorite Office 365 apps from Linux
Stars: ✭ 31 (-20.51%)
Mutual labels:  webkit2gtk
Google-Docs-for-Mac
Native Google Docs app for Mac
Stars: ✭ 33 (-15.38%)
Mutual labels:  webkit
WebKitX
Chromium Embedded Framework (CEF1) ActiveX Wrapper
Stars: ✭ 52 (+33.33%)
Mutual labels:  webkit
webviewhs
🌐 A Haskell binding to the webview library created by Serge Zaitsev.
Stars: ✭ 109 (+179.49%)
Mutual labels:  webkit
sherpa 41
Simple browser engine.
Stars: ✭ 31 (-20.51%)
Mutual labels:  browser-engine
balena-wpe
Fullscreen WebKit browser with hardware accelerated CSS, WebGL, and HTML5 video for the RaspberryPi 3.
Stars: ✭ 372 (+853.85%)
Mutual labels:  webkit

RetroKit - Minimal WebKit Fork with reduced Attack Surface

This WebKit2GTK fork reduces the Attack Surface of a WebView, and therefore reduces the set of Web APIs which are abused by fingerprinting libraries.

The purpose of this fork is to create a secure webview alternative that can be embedded for high security (and cyber defense) environments which assume a hostile network infrastructure that is controlled by an opposing or malicious party.

Think of this as a modern WebKit fork that tries to keep up-to-date in regards to HTML5/CSS4, but removes all features that can be (and were used) for fingerprinting and tracking. As all the APIs and their bindings, interfaces, and native adapters are removed completely from the codebase, there's no way these can be bypassed or exploited.

As this is the WebView-side of a Web Browser's infrastructure, it is used by the Tholian Stealth Browser, which provides an extra layer of Security via a peer-to-peer TLS network and statistical content verification infrastructure.

Security Improvements

For an overview of the differences to upstream WebKit, take a look at the SECURITY.md file which documents the current progress of removals and changed behaviours of Web APIs.

Building

ArchLinux

sudo pacman -S ruby base-devel \
	gstreamer gstreamer-base gstreamer-full gstreamer-codecparsers \
	libwebp openjpeg2 \
	woff2 lcms harfbuzz harfbuzz-icu \
	libwpe wpebackend-fdo;

# Remove all build artifacts
bash clean.sh;

# Create a Debug build
cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=Debug -DENABLE_MINIBROWSER=ON -GNinja;

# Alternatively create a Release build
# cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=Release -DENABLE_MINIBROWSER=ON -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_INSTALL_PREFIX=/usr -GNinja;

ninja;

The complete list of available options is described in the Source/cmake/WebKitFeatures.cmake file.

Debugging

A Debug build has support for the WEBKIT_DEBUG environment variable, which can activate different logging channels (which in return are defined in Logging.h).

The log levels are in this order: error, warning, info, debug.

The shorthand WEBKIT_DEBUG="all" activates all Logging Channels, though it will spam your TTY real quick. So it's hardly useful.

# Create a Debug build
cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=Debug -DENABLE_MINIBROWSER=ON -GNinja;
ninja;

# Debug Network and Images Channel
export WEBKIT_DEBUG="Network=debug,Images=debug";
./bin/Minibrowser;

License

The License of this project is identical to upstream, which means that it is released under a mixture of BSD-2-Clause and LGPLv2.1.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].