How to fork Chromium codebase
Properly organized codebase saves a lot of time for developers and allows to merge upstream code quickly.
Forking & Maintaning

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web. It means that you can download its code to create your own browser. Forking Chromium is a significant undertaking that requires a good understanding of software development, version control, and the Chromium codebase.
While the prospect is undeniably exciting, it's essential to recognize the challenges that lie ahead. We've witnessed numerous startup ventures dive into this endeavor, only to encounter unexpected hurdles that ultimately led to their demise.
Our goal is to equip you with the knowledge and strategies necessary to navigate the complexities of forking Chromium successfully, ensuring that your venture not only survives but thrives in the competitive landscape of web browsers. So, before you dive in headfirst, let's explore the crucial considerations that can safeguard your journey towards browser innovation and longevity.
Get the Code: Checkout, Build, & Run Chromium

There are many different approaches to organizing the Сhromium codebase:
- Brave browser uses a system of patching and file substitution on the fly.
- Vivaldi relies on inline changes within the project.
- Arc browser implemented its UI completely from scratch and plugged it into the web engine.
Each of them has its own advantages and disadvantages, choosing the wrong path results in high costs for the company and loss of time. Based on our many years of experience, we will help you choose the best method of working with the repository that meets your plans, help you along the way to work with the code and save you from mistakes.
If you feel empowered and want to try it yourself follow the official instructions of the project.
White Labeling a Chromium Fork

Our experts know that renaming Chromium to something unique like "Crypto Browser" is more than a simple tweak. This name is embedded in multiple locations throughout Chromium's codebase, making the task quite challenging. We’ll guide you through the process, helping you modify the code in just a few critical spots instead of hundreds, saving you time and headaches as you transform your browser into a distinctive product.
Must-have features missing in Chromium

Chromium lacks several essential features found in Chrome that are crucial for a fully functional browser, including:
  • DRM technology for sites like Netflix to prevent content piracy.
  • Synchronization of bookmarks and passwords across devices.
  • Automatic updates: While you can create offline installers, users won’t automatically receive new versions.
Synching of history, bookmarks and passwords between computers.

One of the most important features of popular browsers is the ability to synchronize user data between desktop and mobile devices.
Launching the browser on another device, users want their passwords, bookmarks and other data to be synchronized and they don't have to re-enter them.

There are 2 ways to achieve this:
- Rent a google cloud server, the available browser code already contains everything necessary to work with google servers
You only need to buy an access key in google cloud and connect it to your browser. Instructions https://www.chromium.org/developers/how-tos/api-keys/

- Install your own server for data synchronization. The synchronization protocol is quite complex and it will take considerable time to figure it out.
We have already spent this time and studied the protocol. We have ready solutions and patches for deploying separate servers for data synchronization on customer's infrastructure. All data will be encrypted with strong keys and stored on your own servers. This will protect your users from leaks and the sale of their data, which will increase trust in your product

Ensure your fork remains up-to-date by consistently merging patches from upstream.

The most difficult task on the way. Poorly organized change implementation is what sometimes causes Chromium forks to fail.
At this stage all the problems of a project are revealed. With updates pouring in daily, staying on top of Chromium improvements isn't just recommended—it's essential, especially when it comes to security enhancements.
But here's the catch: as you customize your Chromium fork, clashes are bound to occur when integrating upstream changes. Every mistake made before is worth a lot of time for the team at this stage.

If you already have a project and it takes more than 1-2 weeks to merge upstream changes, this is an indicator of a poorly organized architecture.

The general rule is to minimize your changes inside Сhromium code. The project provides many opportunities to extend its functionality, such as extensions, browser components, blink modules and others. However you cannot avoid changes in the project to make your components get the power. For many years we have gained enough experience to solve any tasks of extending functionality, changing UI and other complex integrations without affecting the process of upstream merge.

Summary

Navigating the complexities of forking Chromium entails addressing pivotal challenges, notably minimizing conflicts with future upstream versions. While the prospect of crafting a bespoke browser from Chromium is undeniably fulfilling, it necessitates confronting substantial technical hurdles and associated expenses. Thus, devising solutions that harmonize with your envisioned use cases while remaining technically and financially viable will serve as the linchpin for your project's success.