| This directory is for components that have the Content Module as the |
| uppermost layer they depend on. They may depend only on the Content |
| API (content/public) and on lower layers (e.g. base/, net/, ipc/ |
| etc.). |
| |
| Components that have bits of code that need to live in different |
| processes (e.g. some code in the browser process, some in the renderer |
| process, etc.) should separate the code into different subdirectories. |
| Hence for a component named 'foo' you might end up with a structure |
| like the following: |
| |
| components/foo - DEPS, OWNERS, foo.gypi |
| components/foo/browser - code that needs the browser process |
| components/foo/common - for e.g. IPC constants and such |
| components/foo/renderer - code that needs renderer process |
| |
| These subdirectories should have DEPS files with the relevant |
| restrictions in place, i.e. only components/*/browser should |
| be allowed to #include from content/public/browser. |
| |
| Note that there may also be an 'android' subdir, with a Java source |
| code structure underneath it where the package name is |
| org.chromium.components.foo, and with subdirs after 'foo' |
| to illustrate process, e.g. 'browser' or 'renderer': |
| |
| components/foo/android/OWNERS, DEPS |
| components/foo/android/java/src/org/chromium/components/foo/browser/ |
| components/foo/android/javatests/src/org/chromium/components/foo/browser/ |
| |
| Code in a component should be placed in a namespace corresponding to |
| the name of the component; e.g. for a component living in |
| //components/foo, code in that component should be in the foo:: |
| namespace. Note that it used to be the rule that all code under |
| //components should be in the components:: namespace; this is being |
| phased out. |