Web Browser

Overview

I generally recommend and use LibreWolf as my primary browser. However, there are some websites that have only been coded and tested using Blink-based browsers like Chrome or Edge. Most such sites will work with Qt WebEngine, which can be incorporated into a Qt for Python GUI easily.

I have created a basic browser in a few lines of code that has the Qt WebEngine widget, an address bar, and a back button (Figure 1). However, it would be nice to have additional features, eventually including an ad blocker. Creating this browser is essentially a greenfield project that offers multiple opportunities to make design and feature decisions.

A basic browser with few features
Figure 1: My initial proof-of-concept implementation, codenamed TealSurf

Potential Features

Opportunities exist to implement numerous browser features:

Associated Research Projects

As more features are implemented, applied research into online tracking and surveillance technologies will be possible with the browser. For example, measuring and mitigating device fingerprints is a known concern with any browser. However, there are numerous unknown privacy vulnerabilities that directly result from websites being able to run arbitrary code (JavaScript) on our local computers. Mitigating these threats first requires detecting and analyzing malicious scripts that are delivered to the unsuspecting users. Some of the feature work (ad/content blocking and fingerprinting mitigation) will require intercepting scripts and measuring how they interact with the browser. The results of these measurements could lead to new insights into privacy and security threats.