| OLD | NEW |
| (Empty) |
| 1 Blink Public API | |
| 2 ================ | |
| 3 | |
| 4 This directory contains the public API for Blink. The API consists of a number | |
| 5 of C++ header files, scripts, and GYP build files. We consider all other files | |
| 6 in Blink to be implementation details, which are subject to change at any time | |
| 7 without notice. | |
| 8 | |
| 9 The primary consumer of this API is Chromium's Content layer. If you are | |
| 10 interested in using Blink, please consider interfacing with Blink via the | |
| 11 Content layer rather than interfacing directly with this API. | |
| 12 | |
| 13 Compatibility | |
| 14 ------------- | |
| 15 | |
| 16 The API does not support binary compatibility. Instead, the API is intended to | |
| 17 insulate the rest of the Chromium project from internal changes to Blink. Over | |
| 18 time, the API is likely to evolve in source-incompatible ways as Chromium's and | |
| 19 Blink's needs change. | |
| 20 | |
| 21 Organization | |
| 22 ------------ | |
| 23 | |
| 24 The API is organized into two parts: | |
| 25 | |
| 26 - public/platform | |
| 27 - public/web | |
| 28 | |
| 29 The public/platform directory defines an abstract platform upon which Blink | |
| 30 runs. Rather than communicating directly with the underlying operating system, | |
| 31 Blink is designed to run in a sandbox and interacts with the operating system | |
| 32 via the platform API. The central interface in this part of the API is | |
| 33 Platform, which is a pure virtual interface from which Blink obtains many other | |
| 34 interfaces. | |
| 35 | |
| 36 The public/web directory defines an interface to Blink's implementation of the | |
| 37 web platform, including the Document Object Model (DOM). The central interface | |
| 38 in this part of the API is WebView, which is a good starting point for | |
| 39 exploring the API. | |
| 40 | |
| 41 Note that public/platform should not depend on public/web. | |
| 42 | |
| 43 Basic Types | |
| 44 ----------- | |
| 45 | |
| 46 The API does not use STL types, except for a small number of STL types that are | |
| 47 used internally by Blink (e.g., std::pair). Instead, we use WTF containers to | |
| 48 implement the API. | |
| 49 | |
| 50 The API uses some internal types (e.g., WebCore::Node). Typically, these types | |
| 51 are forward declared and are opaque to consumers of the API. In other cases, | |
| 52 the full definitions are available behind the BLINK_IMPLEMENTATION | |
| 53 preprocessor macro. In both cases, we continue to regard these internal types | |
| 54 as implementation details of Blink, and consumers of the API should not rely | |
| 55 upon these types. | |
| 56 | |
| 57 Similarly, the API uses STL types outside of the BLINK_IMPLEMENTATION | |
| 58 preprocessor macro, which is for the convenience of the consumer. | |
| 59 | |
| 60 Contact Information | |
| 61 ------------------- | |
| 62 | |
| 63 The public API also contains an OWNERS file, which lists a number of people who | |
| 64 are knowledgeable about the API. If you have questions or comments about the | |
| 65 API that might be of general interest to the Blink community at large, please | |
| 66 consider directing your inquiry to blink-dev@chromium.org rather than to the | |
| 67 OWNERS specifically. | |
| OLD | NEW |