Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Wowfunhappy

macrumors 68020
Original poster
Screen Shot 2026-05-19 at 1.17.22 PM.png
Screen Shot 2026-05-19 at 1.21.01 PM.png
Screen Shot 2026-05-19 at 1.19.00 PM.png
Screen Shot 2026-05-19 at 1.25.04 PM.png


Just to be clear: There's nothing here you'd actually want to use just yet, I'm just showing off!

Basically, I set up Claude Code in a Mavericks Virtual Machine, handed it a modern compiler and the latest WebKit source code, and told it to backport WebKit to Safari 9 on Mavericks. Then I left it running for around 1½ months. A few times each day, I yell at it to either (1) stop being lazy and actually backport WebKit, not work on some easier task instead, and (2) avoid using hacks and remove any hacks it added previously. Occasionally, I also provide actual architectural guidance, such as telling Claude to use TCA instead of RLT for rendering, but this is rare.

It's definitely still a work in progress right now, but it does actually work. I can use Github, log into the New York Times, and play Connections, all from Apple's native Safari 9. It's not, like, a pleasant experience yet—pages take upwards of five seconds to load, and Safari will randomly decide to stop opening websites sometimes and need to be quit and re-opened. But if you were trapped on a desert island and this was your only way to browse the internet, you'd be fine. And, it has gotten much better in just the past few days!

 
Last edited:
Wow, that's crazy! I never imagined this day would come. It would be great to be able to install it on OS X 10.9.5 to use every day soon…
 
  • Like
Reactions: BigMcGuire
>use TCA instead of RLT for rendering,

What does this mean? There are 0 hits (besides this thread) for TCA and RLT in this context.
 
>use TCA instead of RLT for rendering,

What does this mean? There are 0 hits (besides this thread) for TCA and RLT in this context.

This information comes from Claude, maybe it's all made up.

The back story is that originally, if you scrolled or highlighted text or an on-page animation played, the picture would update at maybe one frame every five seconds. It was awful. I felt that fixing this, if it could be fixed, was going to require an architectural change, not little optimizations around the edges.

So I talked with a separate instance of Claude about what might be possible.

Claude said that it was currently using "RLT", or RemoteLayerTree, a rendering system originally built for iOS which is now also used by modern Safari on Mac. There was an older code path, "TCA" or TiledCoreAnimation, which was used by Safari 9 and was still present in modern WebKit. I, of course, told Claude to use this code path. Claude... very much did not want to do this, it kept hitting a crash, giving up, and going back to RLT. When Claude FINALLY did what I'd asked (well, the separate instance reviewing Claude's work said it had done as asked), performance improved enormously.

But maybe none of this is real and I'm just in AI psychosis? It did work though!
 
Last edited:
>But maybe none of this is real a

Ah the full explanation makes sense. I haven't looked at webkit source once, but I"m guessing TiledCoreAnimatino is similar to how firefox's compositor works (partition the screen into IOSurfaces and only update the ones that are changed) whereas RemoteLayerTree is probably actually creating a stacked layer graph and doing cross-process rendering. (I recall 10.9 switched how CALayer rendering works to involve WindowServer more heavily, maybe that all interacts poorly with remote calayers which were never stable in the first place)
 
So last week, Claude completely destroyed the Virtual Machine it was running in. I don't know how precisely, but most apps including Finder wouldn't open, and even using SSH I couldn't modify or write most files.

I'm not particularly surprised by this. Claude was running with full sudo access and explicit instructions to take initiative and experiment. But, a word of warning to anyone who wants to give Claude carte blanche outside of an isolated VM...

---

Anyway, now that I've switched to a new VM, I also switched Claude from targeting Safari 9 (the last Mavericks-compatible version of Safari) to Safari 7 (the version of Safari that shipped with Mavericks).

Safari 9 on Mavericks uses its own, separate, versioned copy of WebKit. By contrast, the Safari 7 WebKit framework is the one used by all apps on the system.

This means that even if Claude can't get the WebKit to the point where you'd want to use it as your primary browser, the backport will be useful for things like QuickLook previews, Dashboard WebClips, TextMate bundles, and so on.
 
  • Like
Reactions: _sudo11
Anyone know where I can get a valid (Apple signed) Safari 7 compatible extension to test with? (Eventually I'll figure out how to disable signing, but not now.)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.