The purpose of this document is to describe the structure of layered components and iOS code within the Chromium source tree. This document assumes the context of the accompanying high-level design and technical strategy documents.
There will be a new top-level directory, ios/. This directory will contain the following:
Each layered component will be divided as follows:
For components that are multi-process (i.e., currently have browser/, renderer/, etc. subdirectories), the process division will move to be under the content/ driver (since Chrome for iOS is single-process and almost never uses Chromium code that is not browser-process code).
The below example indicates a structure for form autofill wherein:
Additionally, we assume that key components of the iOS flow (its WebContents-like object and the object that renders autofill data) are implemented downstream and exposed to upstream code via the embed layer, which will indeed be the case for some amount of time.
Structure under components/autofill/:
Structure under ios/: