Divergence and contributions

Upstream

Cefrium is a port, not a fork. This page states exactly how far it diverges from upstream Chromium and CEF, where every one of those changes lives, and which of them have been sent upstream. If you are evaluating whether this port will survive the next Chromium release, this is the page to read.

156.0.8078.17
Chromium tracked
36
patches carried
44
Chromium files touched
+559 / -83
lines changed

Counts for Cefrium SDK 0.12.0. The full CEF patch set that Cefrium inherits is 149 entries; the 36 above are the ones Cefrium adds for Android, and they are the whole of its divergence from the Chromium tree.

Why a port carries patches at all

Chromium on Android is built to be Chrome. It assumes an Activity, a Tab, a browser UI and a Chrome-shaped embedder. CEF on Android has none of those. Most of the 36 patches are therefore not features: they are guards at the points where Chromium reaches for something an embedder does not provide, so the engine degrades instead of aborting the process.

Concretely, the areas touched are chrome (12 files), components (12), base (7), content (6), build (2), services (2), ui (2), gin (1). Every patch is in the repository, one file per change, with a comment saying what it guards and why:

cef/patch/patches/android/ — and the methodology, including how they are regenerated against a new Chromium, in PATCHING-CEFRIUM.md.

Fewer patches is the goal, not more. Every patch Cefrium carries is a patch that has to be re-verified against each Chromium release. A change that lands upstream stops being our maintenance burden permanently, which is why the ones that are not Android-port-specific are prepared for submission rather than kept downstream.

Submitted upstream

Changes sent to the upstream projects themselves, where they are publicly reviewable. Only submissions with a public link appear here; this table is a record, not a plan.

ChangeUpstreamStateLink
Nothing submitted yet. The first change is prepared against origin/main and awaiting review before upload.

Adopted independently by Chromium

One patch Cefrium carried stopped being needed because upstream made the same fix on its own, which is worth recording for what it says about the class of change involved:

What stays downstream, and why

Not every patch belongs upstream, and claiming otherwise would waste a reviewer's time:

The port's own code follows CEF's architecture precisely so that the parts which can go upstream are submittable without rewriting them first. That policy is stated in full on the policy page.

Verifying any of this yourself

Nothing here needs to be taken on trust: