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 |