OLD | NEW |
(Empty) | |
| 1 # The chrome/browser/api directory is for programming interfaces |
| 2 # provided by Chrome to Browser Components that run within Chrome. |
| 3 # Files here are not allowed to include stuff under chrome/browser |
| 4 # since that would leak implementation details to users of the APIs. |
| 5 # |
| 6 # APIs can be either pure-virtual to allow specialization at runtime, |
| 7 # or they can be non-virtual and specialized per platform (or |
| 8 # otherwise at compile time), or a mix of non-virtual and virtual. |
| 9 # The primary initial objective is to break Browser Components' |
| 10 # dependencies on implementation details, so non-virtual classes in |
| 11 # header files that do not expose any headers from chrome/browser |
| 12 # except for chrome/browser/api are acceptable. |
| 13 # |
| 14 # Note that for non-virtual APIs, there is an increased risk of an |
| 15 # implicit link-time dependency remaining from the user of the API to |
| 16 # the implementation. We are accepting this risk initially, but plan |
| 17 # to write a new type of link-time or target-level set of dependency |
| 18 # rules to help us find such problems and reduce them over time. |
| 19 # |
| 20 # The directory structure under chrome/browser/api/ is a mirror of |
| 21 # those parts of the chrome/browser/ structure that APIs have been |
| 22 # extracted from. Hence, an API defined in chrome/browser/api/x/y/z |
| 23 # is likely to be implemented in a directory chrome/browser/x/y/z. |
| 24 # |
| 25 # See http://www.chromium.org/developers/design-documents/browser-components |
| 26 include_rules = [ |
| 27 "-chrome/browser", |
| 28 "+chrome/browser/api", |
| 29 ] |
OLD | NEW |