shithub: opossum


clone: git:// gits://
push: hjgit://
patches to:

Last commit

36c22563 – Philip – 2021-10-14T13:46:44-04:00
add nil check for scroller


# Opossum Web Browser

Basic portable Web browser; only needs a Go compiler to compile. Optimized for use on 9front and 9legacy, supports plan9port and 9pi as well.

The UI is built with

Still experimental and a lot of features are missing.

Supported features:

- rudimentary HTML5 and CSS support, large parts like float/flex layout are just stub implementations
- Server-side rendered websites
- Images (pre-loaded all at once though)
- experimental JS/DOM can be activated (very basic jQuery examples work)
- file downloads

# Install

## Plan 9

    # Setup TLS
    hget > /sys/lib/tls/ca.pem
    # Create mountpoint (only needed on 9legacy)
    mkdir /mnt/opossum

### Binary

A binary for amd64 and 386 can be downloaded from

### Compile from Source

Set `$GOPROXY` to `` and then:

    go install ./cmd/opossum

Command line options:

    -h                   help
    -v                   verbose
    -vv                  print debug messages
    -jsinsecure          activate js
    -cpuprofile filename create cpuprofile

(-v and -vv produce a lot of output,
consider turning on scroll since processing
waits for that...)

`$font` is used to select the font. Very large fonts will set dpi to 200.

## macOS


- Go
- Plan9Port

go install ./cmd/opossum

# JS support

It's more like a demo and it's not really clear right now how much sandboxing
is really needed. A rudimentary AJAX implementation is there though.

Use on your own Risk!

Mostly based on goja (ECMAScript 5.1) and
(fork of DOM implementation from Mozilla in JS). Some sort of DOM diffing
is needed, also AJAX functions, `getComputedStyle` etc. are either missing or stubs.
Very simple jQuery based code works though, e.g. jQuery UI Tab view or the toggle buttons on There is also highly experimental ES6 support with Babel.
(Needs also

Build the js engine:

go install ./cmd/gojafs

On 9legacy also the folder `/mnt/opossum` needs to exist.

Then it can be tested with:

opossum -jsinsecure


- load images on the fly
- implement more parts of HTML5 and CSS
- create a widget for div/span
- clean up code, support webfs, snarf