macsurf v2.3
New releaseSep 20, 2026A modern web browser for Classic Mac OS 9 PowerPC. Real CSS3, ES5 JavaScript, 2026-9-20 08:30:48 Author: kitploit.com(查看原文) 阅读量:6 收藏

New releaseSep 20, 2026

A modern web browser for Classic Mac OS 9 PowerPC. Real CSS3, ES5 JavaScript, native HTTPS. Built with CodeWarrior on the Carbon API.

MacSurf

The modern web, on a 25-year-old Mac.

A native browser for the Carbon era, Mac OS 8.6 through Mac OS X 10.6: real CSS, modern JavaScript, and HTTPS on the Mac itself. No proxy, no second machine.

MacSurf 2.0.5 rendering hackaday.com on a Power Macintosh G3 iMac
MacSurf 2.0.5 on a Power Mac G3 iMac, rendering hackaday.com at full desktop width over native HTTPS.


🆓 Free monthly stable

A tested build on macsurf.org, free for everyone, with real hardware testing behind it.

Latest stable: MacSurf 2.3 "OPEN TABS"

⭐ Weekly, for supporters

In-progress builds land in Beta-Box every week, ahead of every stable release, with dev notes along the way.

Become a supporter →

Every project stays free as source. Build it yourself and you never need Beta-Box. You are paying for the build and the cadence, not for access.

Support development

Support on Ko-fi   Support on Patreon   Sponsor on GitHub

Follow along

Join our Discord   Follow on Bluesky

Thanks to our supporters:
Ko-Fi: Chris Marks, Rogue, Turuun, kilgeist
Patreon: Mack Chamberlain, Lucas, Joseph Mulvaney, Shlooom


[!NOTE] 2.3 "OPEN TABS" is the largest MacSurf release since 2.0. Tabs are finally enabled, with independent page, scroll, history, rendering and JavaScript state inside one native Mac window. Underneath that is a major dynamic-page/lifecycle rewrite, a much larger browser API surface, more CSS and image/SVG support, rebuilt native managers, stronger networking and security, and a long hardware-driven stability campaign. MacSurf remains honest, in-progress software; some very heavy modern applications still expose layout and API gaps. See the 2.3 release notes and docs/status.md for details.

Why this exists

The web outgrew Classic Mac OS twenty years ago, and modern HTTPS finished the job around 2016. Pull a G3 or G4 out of the closet today and it can barely reach a single live site.

MacSurf fixes that on the machine itself, with no screenshot proxy and no remote-terminal trick. It is a native browser built with the tools that shipped on the platform: CodeWarrior, Carbon, QuickDraw, Open Transport. It speaks TLS 1.3 straight to the modern web through macTLS, a BearSSL-based stack baked into the binary with the full Mozilla CA bundle, and runs modern JavaScript through macQJS, a QuickJS port for Mac OS 9.

As far as we can tell, it is the first serious NetSurf port to Classic Mac OS, and the first Mac OS 9 browser with native CSS Grid, CSS custom properties, and an on-device modern JavaScript engine.

Real sites, on real hardware

Every shot below is a live site, captured on a Power Mac G3 running Mac OS 9.2.2 with MacSurf 2.0.5. They are kept here as a hardware baseline; MacSurf 2.3 has moved substantially beyond the browser shown in these images.

New in 2.3

Tabs. One native Mac window can now host multiple independent browser pages. Command-T opens a tab; Command-W closes the current tab. Background tabs retain their own JavaScript realm, title, URL, content and scroll state without taking over the foreground chrome.

The release also brings a major dynamic-page and JavaScript compatibility pass; deeper DOM reconstruction safety; CSS math, sizing, Grid, variables and paint improvements; native WebP and stronger SVG; a rebuilt Downloads window; improved Preferences, Bookmarks and History; tighter HTTPS/security behavior; and a large body of crash- and lifetime fixes.

MacSurf 2.3 supports Mac OS 8.6 through Mac OS X 10.6. On Intel Macs, the PowerPC build runs under Rosetta where available.

Full 2.3 notes →

New in 2.0.5

The headline is hackaday.com rendering at full desktop width (shown above): correct type, article cards, and images in place.

Under it: text is measured in real device pixels (author font-size no longer draws 25% too small), a large modern-CSS pass (justified text, soft hyphens, logical properties, box-alignment shorthands, grid auto-sizing), a more capable JavaScript engine (real fetch/XHR, resolving Promise chains, DOM traversal, document.cookie), and tracker/ad-network blocking. Full 2.0.5 notes →

New in 2.0

Earlier shots: the same sites on previous builds
How it got here: a couple of early milestones

The pieces

ComponentLanguagePurpose
browser/C (C89, CW8)NetSurf fork with a macos9 frontend. Carbon for the UI, QuickDraw for drawing, Open Transport for networking, macQJS for JavaScript.
macTLS
sibling repo
C (CW8)Native TLS 1.3 (1.2 fallback) for OS 9: HTTPS straight from the Mac. BearSSL underneath, full Mozilla CA bundle baked in.
macQJS
sibling repo
C (CW8)A QuickJS port for Classic Mac OS: modern ES2023 JavaScript on PowerPC.

What works today

Rendering & CSS

  • Full NetSurf fetch, parse, cascade, layout and QuickDraw paint pipeline
  • CSS custom properties with selector/media scope, specificity, inheritance and deferred var() resolution
  • Flexbox and CSS Grid, including stronger auto-track sizing, minmax(), justify-self, row/column gaps and stretch behavior
  • CSS math and sizing: calc(), min(), max(), clamp(), min/max/fit-content and viewport-relative sizing
  • Gradients, border-radius, box-shadow, opacity, transforms, z-index stacking and improved background clipping/origin
  • PNG, GIF, JPEG, BMP, TIFF and native WebP, including animated WebP machinery
  • Much stronger inline/external SVG: sizing, viewBox, aspect-ratio modes, shapes, transforms, fill/stroke and embedded raster images
  • Downloadable web fonts, including WOFF2/Brotli fixes

Full 2.3 release notes →

JavaScript, macQJS (QuickJS / ES2023)

  • Modern language features plus ES modules
  • fetch / XHR, Headers, Request, Response, AbortController / AbortSignal and native cancellation
  • Promises, microtasks, timers, requestAnimationFrame, persistent localStorage and sendBeacon
  • MutationObserver, ResizeObserver and IntersectionObserver
  • Stronger DOM traversal/selectors, cloning/replacement, reflected properties, events and prototype relationships
  • Canvas 2D compatibility surface with native-font measureText()
  • crypto.getRandomValues() and randomUUID()

Networking & security

  • HTTP/1.1: chunked transfer, keep-alive, redirects, pooling, cache revalidation and gzip responses
  • HTTPS via macTLS: TLS 1.3 with TLS 1.2 fallback and Mozilla CA bundle
  • Certificate rejection fails closed; scripted HTTPS requests cannot silently downgrade to HTTP
  • Persistent cookies/logins, tighter referrer handling and tracker blocking

Browser chrome

  • Tabbed browsing with independent page, history, scroll, rendering and JavaScript state
  • Address bar, back / forward / reload / home and type-ahead suggestions
  • Rebuilt Downloads window with progress, speed, ETA, cancel, open and Reveal in Finder
  • Native Preferences, Bookmarks and History managers
  • Text input, selection, clipboard commands, keyboard navigation and native form controls

Supported systems

MacSurf 2.3 supports Mac OS 8.6 through Mac OS X 10.6 Snow Leopard.

  • PowerPC Macs run MacSurf directly.
  • Intel Macs can run the PowerPC build through Rosetta where available.
  • Mac OS 9 remains the primary target and the environment most heavily tested on original hardware.
  • Recommended memory: 128 MB minimum, 256 MB recommended, 384 MB for the heaviest JavaScript sites.

Stability and diagnostics

A large part of 2.3 is work you should not have to notice: stronger page/runtime ownership, safer DOM reconstruction, guarded late callbacks, cache/content lifetime fixes, image reuse across reconvert, TLS bounds checks, and tab isolation.

MacSurf also now has a much deeper built-in diagnostic system for correlating navigation, documents, frames, network requests, JavaScript tasks, timers, mutations, XHR/fetch, Promise rejections, layout, paint and compatibility gaps. The final Tiger multi-tab stress campaign completed 20/20 cycles with zero crashes and zero hangs, followed by testing on Mac OS 9.2.2 hardware.

Download

MacSurf 2.3 "OPEN TABS" (2026-09-19). See what changed in the full 2.3 release notes →.

  • Download MacSurf →: expand with StuffIt Expander and double-click. MacSurf supports Mac OS 8.6 through Mac OS X 10.6; on Intel Macs the PowerPC build runs under Rosetta where available. No installer.
  • Already on a Mac OS 9 machine? Grab it from the plain-HTTP macsurf.org, since GitHub does not render on-device yet.
  • All releases →

Want the builds between releases? Weekly in-progress builds land in Beta-Box for supporters, ahead of every stable release.

Building

MacSurf builds on Mac OS 9 with CodeWarrior 8 Pro (8.3 update). The source is cross-compile-clean against Retro68 PowerPC GCC, which we use for fast Linux-side syntax checks.


Native HTTPS via macTLS · JavaScript via macQJS · built on NetSurf · intro video

For Gary & Kaija

Read more

Categories


文章来源: https://kitploit.com/en/posts/github-mplsllc-macsurf-v23
如有侵权请联系:admin#unsafe.sh