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