▲ | dpranke 3 days ago | |
Context: I worked on Chrome for 15 years (until June) and am still a Chromium committer. I am probably as familiar with how development in Chrome actually works as anyone (at least as of a couple months ago). It is correct that Google can and does decide that some features should remain private before they are developed. However, there are significant logistic and cultural hurdles to keeping something private, and as a result it's really only possible in certain parts of the codebase. Sometimes things that have been developed in private are eventually made public, and Chrome devs will often call that "upstreaming", but I think that's not really the same thing as what most people are talking about when they use the words upstream and downstream. And these instances are fairly uncommon in the history of the project. Otherwise, IMO it is not really correct to say that changes flow from Chrome into Chromium. Nearly all development is done in the public repos and so they would be available simultaneously for either build. There aren't really official releases of Chromium per se, but a full build of Chromium containing a given change is basically always available before the corresponding full build of Chrome. There may be very rare exceptions for security fixes that are shipped before they are made public, but it would actually pretty hard to land such a change so I doubt it's happened more than a few times. So, more generally speaking, in my opinion it's not really useful to talk about "upstream" and "downstream" for Chrome and Chromium, definitely not in the day-to-day sense. Chrome and Chromium are multi-repo projects, and there is only ever a single copy of a particular repo that is used for either. The same branches in a given repo are used for both Chrome and Chromium at any point in time. There is a main branch and release branches, and most of the time (but not always) a change will land in the main branch before a release branch. But I don't think most people would call "main" upstream of "release" in that sense. [ There are rare situations where Google will develop experiments on a private branch of a repo, but those don't usually end up getting shipped to anyone. ] This is different from how (most of?) the other Chromium-based browsers operate, where my understanding is that they usually do have true forks of (some of) the repos and changes flow downstream from the Google-maintained ones to ones under their control in the normal sense of the word. |