Browser Developers

Engineering service

Chromium & Firefox Version Porting & Maintenance

Building a browser is only the beginning. Keeping it current is the real long-term engineering challenge. We rebase your patch series onto each Chromium or Firefox release, resolve the conflicts and internal API changes, fix the build, and ship, so your fork stays secure instead of falling behind.

See what we engineer
  • 15+ years of experience
  • 300+ projects delivered
  • Clients worldwide
  • NDA available

Overview

What this is, and when it is the right call

A browser fork stays maintainable when your changes live as a small, reviewable patch series that is rebased onto each upstream release. Chromium ships new major versions on a regular schedule, with security fixes released in between, so a fork that stops rebasing starts accumulating risk.

The further behind a fork is, the more upstream change each patch has to survive, and the more known security fixes remain unapplied. We do this work for Chromium and Firefox forks, either as a one-off catch-up or as an ongoing release-by-release service.

Who this is for

  • Teams that ship a Chromium or Firefox fork and need it to keep pace with upstream releases.
  • Products whose fork has fallen several major versions behind and carries unapplied security fixes.
  • Companies that lost the engineer who did the last upgrade and need the process rebuilt.
  • Teams that want upstream rebases attempted automatically on every release, with conflicts reported.

How it works

One upstream release, step by step

The technical cycle for a single upstream release. It repeats for every release a fork needs to follow.

  1. Track the upstream release

    Watch upstream release channels and read the changes that touch areas your patches modify.

    You get: A list of upstream changes that affect your fork

  2. Rebase the patch series

    Apply your patches, in order, onto the new upstream tag.

    You get: A rebased branch and a list of failing patches

  3. Resolve conflicts

    Fix each conflict in the patch that caused it, so the series stays small and readable.

    You get: A clean patch series on the new base

  4. Port features and internal APIs

    Adapt code that depends on internal APIs, flags or UI that upstream changed or removed.

    You get: Your features working on the new version

  5. Build and test on every platform

    Build for each target platform and run your tests and a manual check of the changed areas.

    You get: Build results and a test report per platform

  6. Security review and release

    Confirm upstream security fixes are present and did not collide with your patches, then release.

    You get: A release candidate with a change summary

What we offer

What we engineer: Chromium & Firefox Version Porting & Maintenance

Patch Series Rebasing

Reapply your patch series onto each new upstream tag and resolve conflicts patch by patch, so the series stays small and reviewable.

Internal API Migration

Update the call sites in your patches when Chromium or Gecko renames, moves, or removes the internal APIs they depend on.

Patch Series Documentation

Record what each patch does and why, so a rebase does not depend on one engineer's memory of the codebase.

Build System Updates

Update GN arguments, toolchain versions, and dependency pins when upstream changes its build requirements.

Security Backport Verification

Confirm each upstream security fix is present in your fork and was not silently dropped during a rebase.

Multi-Platform Build Validation

Build for every platform you target and check the areas your patches touch before a release candidate ships.

Deliverables

What you get

  • 01

    Rebased patch series

    Your changes applied on the target upstream version as a reviewable series of patches.

  • 02

    Working builds

    Builds for each platform you target, produced by your build system or ours.

  • 03

    Fork audit

    A written inventory of your patches, build configuration and how far the fork is from upstream.

  • 04

    Catch-up plan

    The order of versions to port through and the risks we expect at each step, when a fork is far behind.

  • 05

    Upgrade notes

    A record of what changed, what broke and how it was fixed, so the next upgrade starts from knowledge.

  • 06

    Rebase automation

    Optional CI that attempts the rebase on each new upstream release and reports conflicts.

Compare

What breaks when you upgrade

These are the areas where fork upgrades usually need real work, and how we approach each.

What breaks when you upgrade
AreaTypical breakageHow we handle it
Build systemChanged GN arguments, new dependencies and new toolchain requirements.Update build configuration first, so every later problem is a code problem and not a build problem.
Internal APIsFunctions, classes or interfaces your patches call are renamed, moved or removed.Port each call site to the new API and keep the change inside the original patch.
UI codeRefactors of browser UI move or rewrite the code your UI patches modify.Re-apply the intent of the patch on the new structure instead of forcing the old diff to fit.
Features and flagsFeatures or flags you rely on are moved, renamed or removed upstream.Find the replacement, or carry a minimal patch that restores the behavior you need.
Security fixesUpstream security fixes touch code that your patches also modify.Review those areas by hand and confirm the fix is intact after the rebase.

Why it matters

What this gives you

Smaller, Reviewable Diffs

Rebasing release by release keeps each conflict small enough for one engineer to review, instead of one annual merge nobody wants to own.

A Fork That Outlives Its Original Author

Documented patches and rebase notes mean a new engineer can pick up the fork without reverse-engineering years of changes.

Security Fixes You Can Actually Confirm

Backport verification checks that a fix landed in your code, not just that the version number moved past it.

A Cadence That Matches Your Risk Tolerance

Chase every upstream release or track an LTS branch — the porting workflow adapts to the choice instead of forcing it.

Our approach

How an engagement runs

  1. Audit the fork

    We review your patches, your build system and how far you are from upstream.

    You get: A written audit of the fork

  2. Plan the path

    We decide the catch-up path and the order of versions to port through.

    You get: A plan with the risks at each step

  3. Port

    We rebase and port the patch series version by version, keeping each step reviewable.

    You get: A patch series on the target version

  4. Stabilize

    We build on every platform, fix regressions and check the areas your patches touch.

    You get: A release candidate you can test

  5. Hand over or continue

    You take the process in-house with our notes, or we continue with each new upstream release.

    You get: Upgrade notes, or a per-release routine

When this is not the right fit

A few cases where this approach may not be the best choice for you.

  • A fork with no owner or budget to keep it current long term. Consider whether it should be a fork at all.
  • A project that only needs an extension. Extensions do not require porting a browser, so this is not needed.

Tech stack

Technologies we use

The engines, APIs and tools behind our chromium & firefox version porting & maintenance work.

ChromiumGecko (Firefox)GitGNNinjaClang/LLVMRustdepot_tools

FAQ

Questions engineers ask before starting

Several major versions behind usually means a planned catch-up project, not a routine rebase. The gap decides how much upstream change each patch has to survive, and we size the work after auditing the fork.

Talk to a Browser Engineer

Trust Us to Maintain Your Browser After Launch

Tell us your fork, patch workflow and target platforms. We will take over or share upstream migration on a cadence that fits your risk.

Tell Us What You're Building