Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Side by Side Diff: headless/README.md

Issue 2677033003: headless: Add a small C++ example application (Closed)
Patch Set: Rebased Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « headless/BUILD.gn ('k') | headless/app/headless_example.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Headless Chromium 1 # Headless Chromium
2 2
3 Headless Chromium allows running Chromium in a headless/server environment. 3 Headless Chromium allows running Chromium in a headless/server environment.
4 Expected use cases include loading web pages, extracting metadata (e.g., the 4 Expected use cases include loading web pages, extracting metadata (e.g., the
5 DOM) and generating bitmaps from page contents -- using all the modern web 5 DOM) and generating bitmaps from page contents -- using all the modern web
6 platform features provided by Chromium and Blink. 6 platform features provided by Chromium and Blink.
7 7
8 There are two ways to use Headless Chromium: 8 There are two ways to use Headless Chromium:
9 9
10 ## Usage via the DevTools remote debugging protocol 10 ## Usage via the DevTools remote debugging protocol
(...skipping 12 matching lines...) Expand all
23 [DevTools](https://developer.chrome.com/devtools) interface or use a tool such 23 [DevTools](https://developer.chrome.com/devtools) interface or use a tool such
24 as [Selenium](http://www.seleniumhq.org/) to drive the headless browser. 24 as [Selenium](http://www.seleniumhq.org/) to drive the headless browser.
25 25
26 ## Usage as a C++ library 26 ## Usage as a C++ library
27 27
28 Headless Chromium can be built as a library for embedding into a C++ 28 Headless Chromium can be built as a library for embedding into a C++
29 application. This approach is otherwise similar to controlling the browser over 29 application. This approach is otherwise similar to controlling the browser over
30 a DevTools connection, but it provides more customization points, e.g., for 30 a DevTools connection, but it provides more customization points, e.g., for
31 networking and [mojo services](https://docs.google.com/document/d/1Fr6_DJH6OK9rG 3-ibMvRPTNnHsAXPk0VzxxiuJDSK3M/edit#heading=h.qh0udvlk963d). 31 networking and [mojo services](https://docs.google.com/document/d/1Fr6_DJH6OK9rG 3-ibMvRPTNnHsAXPk0VzxxiuJDSK3M/edit#heading=h.qh0udvlk963d).
32 32
33 Headless Shell is a sample application which demonstrates the use of the 33 [Headless Example](https://cs.chromium.org/chromium/src/headless/app/headless_ex ample.cc)
34 headless C++ API. To run it, first initialize a headless build configuration: 34 is a small sample application which demonstrates the use of the headless C++
35 API. It loads a web page and outputs the resulting DOM. To run it, first
36 initialize a headless build configuration:
35 37
36 ``` 38 ```
37 $ mkdir -p out/Debug 39 $ mkdir -p out/Debug
38 $ echo 'import("//build/args/headless.gn")' > out/Debug/args.gn 40 $ echo 'import("//build/args/headless.gn")' > out/Debug/args.gn
39 $ gn gen out/Debug 41 $ gn gen out/Debug
40 ``` 42 ```
41 43
42 Then build the shell: 44 Then build the example:
45
46 ```
47 $ ninja -C out/Debug headless_example
48 ```
49
50 After the build completes, the example can be run with the following command:
51
52 ```
53 $ out/Debug/headless_example https://www.google.com
54 ```
55
56 [Headless Shell](https://cs.chromium.org/chromium/src/headless/app/headless_shel l.cc)
57 is a more capable headless application. For instance, it supports remote
58 debugging with the [DevTools](https://developer.chrome.com/devtools) protocol.
59 To do this, start the application with an argument specifying the debugging
60 port:
43 61
44 ``` 62 ```
45 $ ninja -C out/Debug headless_shell 63 $ ninja -C out/Debug headless_shell
46 ```
47
48 After the build completes, Headless Shell can be run with the following command:
49
50 ```
51 $ out/Debug/headless_shell https://www.google.com
52 ```
53
54 To attach a [DevTools](https://developer.chrome.com/devtools) debugger to the
55 shell, start it with an argument specifying the debugging port:
56
57 ```
58 $ out/Debug/headless_shell --remote-debugging-port=9222 https://youtube.com 64 $ out/Debug/headless_shell --remote-debugging-port=9222 https://youtube.com
59 ``` 65 ```
60 66
61 Then navigate to `http://localhost:9222` with your browser. 67 Then navigate to `http://localhost:9222` with your browser.
62 68
63 ## Embedder API 69 ## Embedder API
64 70
65 The embedder API allows developers to integrate the headless library into their 71 The embedder API allows developers to integrate the headless library into their
66 application. The API provides default implementations for low level adaptation 72 application. The API provides default implementations for low level adaptation
67 points such as networking and the run loop. 73 points such as networking and the run loop.
(...skipping 26 matching lines...) Expand all
94 * [Runtime headless mode for Chrome](https://docs.google.com/document/d/1aIJUzQr 3eougZQp90bp4mqGr5gY6hdUice8UPa-Ys90/edit#) 100 * [Runtime headless mode for Chrome](https://docs.google.com/document/d/1aIJUzQr 3eougZQp90bp4mqGr5gY6hdUice8UPa-Ys90/edit#)
95 * [Virtual Time in Blink](https://docs.google.com/document/d/1y9kdt_zezt7pbey6uz vt1dgklwc1ob_vy4nzo1zbqmo/edit#heading=h.tn3gd1y9ifml) 101 * [Virtual Time in Blink](https://docs.google.com/document/d/1y9kdt_zezt7pbey6uz vt1dgklwc1ob_vy4nzo1zbqmo/edit#heading=h.tn3gd1y9ifml)
96 * [Headless Chrome architecture](https://docs.google.com/document/d/11zIkKkLBoco fGgoTeeyibB2TZ_k7nR78v7kNelCatUE/edit) 102 * [Headless Chrome architecture](https://docs.google.com/document/d/11zIkKkLBoco fGgoTeeyibB2TZ_k7nR78v7kNelCatUE/edit)
97 * [Headless Chrome C++ DevTools API](https://docs.google.com/document/d/1rlqcp8n k-ZQvldNJWdbaMbwfDbJoOXvahPCDoPGOwhQ/edit#heading=h.ng2bxb15li9a) 103 * [Headless Chrome C++ DevTools API](https://docs.google.com/document/d/1rlqcp8n k-ZQvldNJWdbaMbwfDbJoOXvahPCDoPGOwhQ/edit#heading=h.ng2bxb15li9a)
98 * [Session isolation in Headless Chrome](https://docs.google.com/document/d/1XAK vrxtSEoe65vNghSWC5S3kJ--z2Zpt2UWW1Fi8GiM/edit) 104 * [Session isolation in Headless Chrome](https://docs.google.com/document/d/1XAK vrxtSEoe65vNghSWC5S3kJ--z2Zpt2UWW1Fi8GiM/edit)
99 * [Headless Chrome mojo service](https://docs.google.com/document/d/1Fr6_DJH6OK9 rG3-ibMvRPTNnHsAXPk0VzxxiuJDSK3M/edit#heading=h.qh0udvlk963d) 105 * [Headless Chrome mojo service](https://docs.google.com/document/d/1Fr6_DJH6OK9 rG3-ibMvRPTNnHsAXPk0VzxxiuJDSK3M/edit#heading=h.qh0udvlk963d)
100 * [Controlling BeginFrame through DevTools](https://docs.google.com/document/d/1 LVMYDkfjrrX9PNkrD8pJH5-Np_XUTQHIuJ8IEOirQH4/edit?ts=57d96dbd#heading=h.ndv831lc9 uf0) 106 * [Controlling BeginFrame through DevTools](https://docs.google.com/document/d/1 LVMYDkfjrrX9PNkrD8pJH5-Np_XUTQHIuJ8IEOirQH4/edit?ts=57d96dbd#heading=h.ndv831lc9 uf0)
101 * [Viewport bounds and scale for screenshots](https://docs.google.com/document/d /1VTcYz4q_x0f1O5IVrvRX4u1DVd_K34IVUl1VULLTCWw/edit#heading=h.ndv831lc9uf0) 107 * [Viewport bounds and scale for screenshots](https://docs.google.com/document/d /1VTcYz4q_x0f1O5IVrvRX4u1DVd_K34IVUl1VULLTCWw/edit#heading=h.ndv831lc9uf0)
102 * [BlinkOn 6 presentation slides](https://docs.google.com/presentation/d/1gqK9F4 lGAY3TZudAtdcxzMQNEE7PcuQrGu83No3l0lw/edit#slide=id.p) 108 * [BlinkOn 6 presentation slides](https://docs.google.com/presentation/d/1gqK9F4 lGAY3TZudAtdcxzMQNEE7PcuQrGu83No3l0lw/edit#slide=id.p)
103 * [Architecture design doc](https://docs.google.com/document/d/11zIkKkLBocofGgoT eeyibB2TZ_k7nR78v7kNelCatUE) 109 * [Architecture design doc](https://docs.google.com/document/d/11zIkKkLBocofGgoT eeyibB2TZ_k7nR78v7kNelCatUE)
OLDNEW
« no previous file with comments | « headless/BUILD.gn ('k') | headless/app/headless_example.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698