mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
68 lines
2.6 KiB
Plaintext
68 lines
2.6 KiB
Plaintext
Blink Public API
|
|
================
|
|
|
|
This directory contains the public API for Blink. The API consists of a number
|
|
of C++ header files, scripts, and GYP build files. We consider all other files
|
|
in Blink to be implementation details, which are subject to change at any time
|
|
without notice.
|
|
|
|
The primary consumer of this API is Chromium's Content layer. If you are
|
|
interested in using Blink, please consider interfacing with Blink via the
|
|
Content layer rather than interfacing directly with this API.
|
|
|
|
Compatibility
|
|
-------------
|
|
|
|
The API does not support binary compatibility. Instead, the API is intended to
|
|
insulate the rest of the Chromium project from internal changes to Blink. Over
|
|
time, the API is likely to evolve in source-incompatible ways as Chromium's and
|
|
Blink's needs change.
|
|
|
|
Organization
|
|
------------
|
|
|
|
The API is organized into two parts:
|
|
|
|
- public/platform
|
|
- public/web
|
|
|
|
The public/platform directory defines an abstract platform upon which Blink
|
|
runs. Rather than communicating directly with the underlying operating system,
|
|
Blink is designed to run in a sandbox and interacts with the operating system
|
|
via the platform API. The central interface in this part of the API is
|
|
Platform, which is a pure virtual interface from which Blink obtains many other
|
|
interfaces.
|
|
|
|
The public/web directory defines an interface to Blink's implementation of the
|
|
web platform, including the Document Object Model (DOM). The central interface
|
|
in this part of the API is WebView, which is a good starting point for
|
|
exploring the API.
|
|
|
|
Note that public/platform should not depend on public/web.
|
|
|
|
Basic Types
|
|
-----------
|
|
|
|
The API does not use STL types, except for a small number of STL types that are
|
|
used internally by Blink (e.g., std::pair). Instead, we use WTF containers to
|
|
implement the API.
|
|
|
|
The API uses some internal types (e.g., WebCore::Node). Typically, these types
|
|
are forward declared and are opaque to consumers of the API. In other cases,
|
|
the full definitions are available behind the BLINK_IMPLEMENTATION
|
|
preprocessor macro. In both cases, we continue to regard these internal types
|
|
as implementation details of Blink, and consumers of the API should not rely
|
|
upon these types.
|
|
|
|
Similarly, the API uses STL types outside of the BLINK_IMPLEMENTATION
|
|
preprocessor macro, which is for the convenience of the consumer.
|
|
|
|
Contact Information
|
|
-------------------
|
|
|
|
The public API also contains an OWNERS file, which lists a number of people who
|
|
are knowledgeable about the API. If you have questions or comments about the
|
|
API that might be of general interest to the Blink community at large, please
|
|
consider directing your inquiry to blink-dev@chromium.org rather than to the
|
|
OWNERS specifically.
|