| 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 three parts: |
| |
| - public/platform |
| - public/web |
| - public/testing |
| |
| 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. |
| |
| The public/testing directory defines an interface for testing Blink. You can |
| use this part of the API to load the TestRunner module used in Blink's test |
| suite. |
| |
| 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. |