summaryrefslogtreecommitdiffstats
path: root/components/README
diff options
context:
space:
mode:
authorblundell@chromium.org <blundell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-06 14:34:55 +0000
committerblundell@chromium.org <blundell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-06 14:34:55 +0000
commitfe003516294c35856c67cb5cb741e214baf1af9c (patch)
tree1748144484d27d893414c6439817d279ca83b750 /components/README
parent7126b6b9ca31d5bd81769dd11aef5640b268fb3b (diff)
downloadchromium_src-fe003516294c35856c67cb5cb741e214baf1af9c.zip
chromium_src-fe003516294c35856c67cb5cb741e214baf1af9c.tar.gz
chromium_src-fe003516294c35856c67cb5cb741e214baf1af9c.tar.bz2
Adjust the structure of DEPS within //components.
As the majority of components are now shared by iOS, it no longer makes sense to have a blanket allowance of IPC and //content/public/common in //components. Instead, individual components should have to add these dependencies explicitly, lessening the chance that bad dependencies creep in (e.g., a //content/public/common dependency in code that iOS shares). TBR=darin Review URL: https://codereview.chromium.org/266923008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268513 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/README')
-rw-r--r--components/README18
1 files changed, 8 insertions, 10 deletions
diff --git a/components/README b/components/README
index 7201320..8112f6e 100644
--- a/components/README
+++ b/components/README
@@ -1,19 +1,19 @@
This directory is for features that are intended for reuse across multiple
embedders (e.g., Android WebView and Chrome).
-By default, subdirectories have the Content Module as the uppermost layer they
-depend on, i.e., they may depend only on the Content API (content/public) and
-on lower layers (e.g. base/, net/, ipc/ etc.). Individual subdirectories may
-further restrict their dependencies, e.g., a component that is used by Chrome
-for iOS (which does not use the content API) will either disallow usage of
-content/public or be in the form of a layered component
+By default, components can depend only on the lower layers of the Chromium
+codebase(e.g. base/, net/, etc.). Individual components may additionally allow
+dependencies on the content API and IPC; however, if such a component is used
+by Chrome for iOS (which does not use the content API or IPC), the component
+will have to be in the form of a layered component
(http://www.chromium.org/developers/design-documents/layered-components-design).
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:
+like the following (assuming that foo is not used by iOS and thus does not
+need to be a layered component):
components/foo - DEPS, OWNERS, foo.gypi
components/foo/browser - code that needs the browser process
@@ -36,6 +36,4 @@ 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.
+namespace.