Work / JP Browser
Case study 01
JP Browser
A macOS browser built on the real Chromium engine, with an AppKit shell and a translucent interface.
The problem
Building a custom browser leaves two options: embed an existing engine or write one. Embedding a system webview is less code, but it ties the product to Safari's release cycle and hands over process control and the DevTools protocol.
The system
Chromium goes in through the Chromium Embedded Framework, which exposes the whole stack behind a stable C++ API: Blink, V8, the network layer, the multi-process architecture and real DevTools. Everything the user touches, the window, tab strip, toolbar, omnibox, panels and menus, is AppKit written in Objective-C++. It is a Mac application, not a web page wearing a native costume.
- Engine
- Chromium 151.0.7922.174 through CEF 151.3.24
- Interface
- AppKit, Objective-C++, NSVisualEffectView translucency
- Architecture
- arm64, Apple Silicon, five helper processes
- Minimum
- macOS 12.0
- Bundle
- com.jakobpapaj.JPBrowser
The result
The bootstrap script downloads the pinned CEF distribution and verifies its SHA-256 before unpacking. The build verifies that the finished bundle contains the framework, all five helper apps and a valid signature before it will package. Output is a signed .app, a .dmg and a SHA256SUMS file.
Let's build something useful.
Send the problem, not a spec. I reply with an approach and a scope I can hold to.