summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/README.md')
-rw-r--r--chromium/third_party/blink/renderer/README.md17
1 files changed, 13 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/README.md b/chromium/third_party/blink/renderer/README.md
index bf03536f813..97df608b766 100644
--- a/chromium/third_party/blink/renderer/README.md
+++ b/chromium/third_party/blink/renderer/README.md
@@ -84,6 +84,16 @@ just a part of a larger "core".
All of the above applies to `bindings/modules` and `modules/`.
+### `extensions/`
+
+The `extensions/` directory contains embedder-specific, not-web-exposed APIs (e.g., not-web-exposed APIs for Chromium OS etc).
+The directory is useful to implement embedder-specific, not-web-exposed APIs
+using Blink technologies for web-exposed APIs like WebIDL, V8 bindings and Oilpan.
+
+Remember that you should not implement web-exposed APIs in `extensions/`. Web-exposed APIs should go through the standardization process and be implemented in `core/` or `modules/`. Also, per [the Chromium contributor guideline](https://chromium.googlesource.com/chromium/src/+/main/docs/contributing.md#code-guidelines), code that is not used by Chromium should not be added to `extensions/`.
+
+In terms of dependencies, `extensions/` can depend on `modules/`, `core/` and `platform/`, but not vice versa.
+
### `controller/`
The `controller/` directory contains the system infrastructure
@@ -96,8 +106,7 @@ or to implement API for the embedder, it goes to `controller/`,
however most of the features should go to other directories.
Consult `controller/` OWNERS when in doubt.
-In terms of dependencies, `controller/` can depend on `core/`, `platform/` and `modules/`,
-but not vice versa.
+In terms of dependencies, `controller/` can depend on `extensions/`, `modules/`, `core/` and `platform/`, but not vice versa.
### `build/`
@@ -111,6 +120,7 @@ Dependencies only flow in the following order:
- `public/web`
- `controller/`
+- `extensions/`
- `modules/` and `bindings/modules`
- `core/` and `bindings/core`
- `platform/`
@@ -158,8 +168,7 @@ script](../tools/blinkpy/presubmit/audit_non_blink_usage.py).
### Mojo
-`core/`, `modules/`, `bindings/`, `platform/` and `controller/` can use Mojo and
-directly talk to the browser process. This allows removal of unnecessary
+Blink can use Mojo and directly talk to the browser process. This allows removal of unnecessary
public APIs and abstraction layers and it is highly recommended.
## Contact