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

Side by Side Diff: blimp/docs/running.md

Issue 2104003003: Update Build and Running documentation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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
« blimp/docs/build.md ('K') | « blimp/docs/build.md ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Running Blimp 1 # Running Blimp
2 [TOC]
2 3
3 See [build](build.md) for instructions on how to build Blimp. 4 See [build](build.md) for instructions on how to build Blimp.
4 5
5 ## Running the client 6 ## Android Client
6 7
7 There are both Android and Linux clients. The Android client is the shipping 8 ### Installing the client
8 client while the Linux client is used for development purposes. 9
10 Install the Blimp APK with the following:
11
12 ```bash
13 ./build/android/adb_install_apk.py $(PRODUCT_DIR)/apks/Blimp.apk
14 ```
15
16 This is equivalent to just running:
17
18 ```bash
19 adb install $(PRODUCT_DIR)/apks/Blimp.apk
20 ```
21
22 ### Setting up command line flags
23
24 Set up any command line flags with:
25
26 ```bash
27 ./build/android/adb_blimp_command_line --your-flag-here
28 ```
29
30 To see your current command line, run `adb_blimp_command_line` without any
31 arguments.
32
33 The Blimp client reads command line arguments from the file
34 `/data/local/blimp-command-line` and the above script reads/writes that file.
35 Typical format of the file is `chrome --your-flag-here`. So one can use `adb`
36 directly to create the file:
37
38 ```bash
39 echo 'chrome --engine-ip=10.0.2.2 --engine-port=25467 --engine-transport=tcp' \
40 '--blimp-client-token-path=/data/data/org.chromium.blimp/blimp_client_token' \
41 '--vmodule="*=1""' > /tmp/blimp-command-line
42 adb push /tmp/blimp-command-line /data/local/blimp-command-line
43 adb shell start chmod 0664 /data/local/blimp-command-line
44 ```
9 45
10 ### Instructing client to connect to specific host 46 ### Instructing client to connect to specific host
11 47
12 To have the client connect to a custom engine use the `--engine-ip`, 48 To have the client connect to a custom engine use the `--engine-ip`,
13 `--engine-port`, and `--engine-transport` flags. The possible valid 49 `--engine-port`, and `--engine-transport` flags. The possible valid
14 values for `--engine-transport` are 'tcp' and 'ssl'. 50 values for `--engine-transport` are 'tcp' and 'ssl'.
15 An example valid endpoint would be 51 An example valid endpoint would be
16 `--engine-ip=127.0.0.1 --engine-port=1234 --engine-transport=tcp`. 52 `--engine-ip=127.0.0.1 --engine-port=25467 --engine-transport=tcp`.
17 53
18 SSL-encrypted connections take an additional flag 54 SSL-encrypted connections take an additional flag
19 `--engine-cert-path` which specifies a path to a PEM-encoded certificate 55 `--engine-cert-path` which specifies a path to a PEM-encoded certificate
20 file (e.g. `--engine-cert-path=/path/to/file.pem`.) 56 file (e.g. `--engine-cert-path=/path_on_device_to/file.pem`). Remember to also
57 copy the file to the device when using this option.
21 58
22 ### Requesting the complete page from the engine 59 ### Requesting the complete page from the engine
23 The engine sends partially rendered content to the client. To request the comple te 60 The engine sends partially rendered content to the client. To request the
24 page from the engine, use the `--download-whole-document` flag on the client. 61 complete page from the engine, use the `--download-whole-document` flag on the c lient.
25 62
26 ### Specifying the client auth token file 63 ### Specifying the client auth token file
27 The client needs access to a file containing a client auth token. One should 64 The client needs access to a file containing a client auth token. One should
28 make sure this file is available by pushing it onto the device before running 65 make sure this file is available by pushing it onto the device before running
29 the client. One can do this by running the following command: 66 the client. One can do this by running the following command:
30 67
31 ```bash 68 ```bash
32 adb push /path/to/blimp_client_token \ 69 adb push /path/to/blimp_client_token \
33 /data/data/org.chromium.blimp/blimp_client_token 70 /data/data/org.chromium.blimp/blimp_client_token
34 ``` 71 ```
35 72
36 To have the client use the given client auth token file, use the 73 To have the client use the given client auth token file, use the
37 `--blimp-client-token-path` flag (e.g. 74 `--blimp-client-token-path` flag (e.g.
38 `--blimp-client-token-path=/data/data/org.chromium.blimp/blimp_client_token`) 75 `--blimp-client-token-path=/data/data/org.chromium.blimp/blimp_client_token`)
39 76
40 An example of a client token file is 77 An example of a client token file is
41 [test_client_token](https://code.google.com/p/chromium/codesearch#chromium/src/b limp/test/data/test_client_token). 78 [test_client_token](https://code.google.com/p/chromium/codesearch#chromium/src/b limp/test/data/test_client_token).
42 79
43 ### Android Client 80 ### Start the Client
44
45 Install the Blimp APK with the following:
46
47 ```bash
48 ./build/android/adb_install_apk.py $(PRODUCT_DIR)/apks/Blimp.apk
49 ```
50
51 Set up any command line flags with:
52
53 ```bash
54 ./build/android/adb_blimp_command_line --your-flag-here
55 ```
56
57 To see your current command line, run `adb_blimp_command_line` without any
58 arguments.
59
60 Run the Blimp APK with: 81 Run the Blimp APK with:
61 82
62 ```bash 83 ```bash
63 ./build/android/adb_run_blimp_client 84 ./build/android/adb_run_blimp_client
64 ``` 85 ```
65 86 The script under the cover uses adb to start the application:
66 ### Linux Client
67
68 The blimp client is built as part of the `blimp` target. To run it with local
69 logging enabled, execute:
70 87
71 ```bash 88 ```bash
72 ./out-linux/Debug/blimp_shell \ 89 adb shell am start -a android.intent.action.VIEW -n org.chromium.blimp/org.chrom ium.blimp.BlimpRendererActivity
73 --user-data-dir=/tmp/blimpclient \
74 --enable-logging=stderr \
75 --vmodule="*=1"
76 ``` 90 ```
77 91
78 ## Running the engine 92 ### Connecting to an Engine running on a workstation
79
80 ### In a container
81 For running the engine in a container, see [container](container.md).
82
83 ### On a workstation
84 To run the engine on a workstation and make your Android client connect to it, 93 To run the engine on a workstation and make your Android client connect to it,
85 you need to forward a port from the Android device to the host, and also 94 you need to forward a port from the Android device to the host, and also
86 instruct the client to connect using that port on its localhost address. 95 instruct the client to connect using that port on its localhost address.
87 96
88 #### Port forwarding 97 #### Port forwarding
89 If you are running the engine on your workstation and are connected to the 98 If you are running the engine on your workstation and are connected to the
90 client device via USB, you'll need remote port forwarding to allow the Blimp 99 client device via USB, you'll need remote port forwarding to allow the Blimp
91 client to talk to your computer. 100 client to talk to your computer.
92 101
93 ##### Option A 102 ##### Option A
94 Follow the 103 Follow the
95 [remote debugging instructions](https://developer.chrome.com/devtools/docs/remot e-debugging) 104 [remote debugging instructions](https://developer.chrome.com/devtools/docs/remot e-debugging)
96 to get started. You'll probably want to remap 25467 to "localhost:25467". 105 to get started. You'll probably want to remap 25467 to "localhost:25467".
97 *Note* This requires the separate `Chrome` application to be running on the 106 *Note* This requires the separate `Chrome` application to be running on the
98 device. Otherwise you will not see the green light for the port forwarding. 107 device. Otherwise you will not see the green light for the port forwarding.
99 108
100 ##### Option B 109 ##### Option B
101 If you are having issues with using the built-in Chrome port forwarding, you can 110 If you are having issues with using the built-in Chrome port forwarding, you can
102 also start a new shell and keep the following command running: 111 also start a new shell and keep the following command running:
103 112
104 ```bash 113 ```bash
105 ./build/android/adb_reverse_forwarder.py --debug -v 25467 25467 114 ./build/android/adb_reverse_forwarder.py --debug -v 25467 25467
106 ``` 115 ```
107 116
108 ### Required engine binary flags 117 ### Running the client in an Android emulator
118 Running the client using an Android emulator is similar to running it on device.
119 Here are a few gotchas:
120
121 1. Build apk matching the emulator cpu type. Emulator cpu type is most likely
Kevin M 2016/06/28 22:31:53 an APK The emulator
Sriram 2016/06/28 23:22:38 Done.
122 x86 while the default Android build cpu type is ARM. Follow Android build
Kevin M 2016/06/28 22:31:53 x86, while
Kevin M 2016/06/28 22:31:53 Follow the
Sriram 2016/06/28 23:22:38 Done.
Sriram 2016/06/28 23:22:38 Done.
123 instructions to change the CPU type.
124
125 2. Ensure that the emulator is running at least Android Marshmallow so that
126 fonts are rendered correctly and also you have latest Play services binaries.
Kevin M 2016/06/28 22:31:53 Too long of a sentence- ". Also ensure that you ha
Sriram 2016/06/28 23:22:38 Done.
127
128 3. Some of scripts under `build/android` will fail to run as it uses `adb scp`.
Kevin M 2016/06/28 22:31:53 This detail seems like it should be more of an add
Sriram 2016/06/28 23:22:38 This is a gotcha list and not steps and I am incli
129 Follow the instruction above to use `adb` directly.
130
131 4. To connect to an Engine running on the host machine, you would have to use
Kevin M 2016/06/28 22:31:53 would have to => should
Sriram 2016/06/28 23:22:38 Done.
132 `10.0.2.2` as `engine-ip` instead of `127.0.0.1` as `127.0.0.1` will refer to
133 the emulator itself. There is no need of setting up
Kevin M 2016/06/28 22:31:53 no need to set up
Sriram 2016/06/28 23:22:38 Done.
134 [port forwarding](#Port-forwarding) when this approach is used.
135
136 ## Linux Client
137
138 The Linux client is used for development purpose while the Android client is
139 shipped. The Linux client is built as part of the `blimp` target.
140 To run it with local logging enabled, execute:
141
142 ```bash
143 ./out-linux/Debug/blimp_shell \
144 --user-data-dir=/tmp/blimpclient \
145 --enable-logging=stderr \
146 --vmodule="*=1"
147 ```
148
149 ## Running the engine
150
151 ### In a container
152 For running the engine in a container, see [container](container.md).
153
154 ### On a workstation
155 The following flags are required to start an Engine instance:
156
109 * `--blimp-client-token-path=$PATH`: Path to a file containing a nonempty 157 * `--blimp-client-token-path=$PATH`: Path to a file containing a nonempty
110 token string. If this is not present, the engine will fail to boot. 158 token string. If this is not present, the engine will fail to boot.
111 * `--use-remote-compositing`: Ensures that the renderer uses the remote 159 * `--use-remote-compositing`: Ensures that the renderer uses the remote
112 compositor. 160 compositor.
113 * `--disable-cached-picture-raster`: Ensures that rasterized content is not 161 * `--disable-cached-picture-raster`: Ensures that rasterized content is not
114 destroyed before serialization. 162 destroyed before serialization.
115 * `--android-fonts-path=$PATH`: Path to where the fonts are located. 163 * `--android-fonts-path=$PATH`: Path to where the fonts are located.
116 Typically this would be `out-linux/Debug/gen/third_party/blimp_fonts`. 164 Typically this would be `out-linux/Debug/gen/third_party/blimp_fonts`.
117 * `--disable-remote-fonts`: Disables downloading of custom web fonts in the 165 * `--disable-remote-fonts`: Disables downloading of custom web fonts in the
118 renderer. 166 renderer.
119 167
120 #### Typical invocation 168 #### Typical invocation
121 169
122 One can start the engine using these flags: 170 One can start the engine using these flags:
123 171
124 ```bash 172 ```bash
125 out-linux/Debug/blimp_engine_app \ 173 out-linux/Debug/blimp_engine_app \
126 --android-fonts-path=out-linux/Debug/gen/third_party/blimp_fonts \ 174 --android-fonts-path=out-linux/Debug/gen/third_party/blimp_fonts \
127 --blimp-client-token-path=/tmp/blimpengine-token \ 175 --blimp-client-token-path=/tmp/blimpengine-token \
128 --enable-logging=stderr \ 176 --enable-logging=stderr \
129 --vmodule="blimp*=1" 177 --vmodule="blimp*=1"
130 ``` 178 ```
OLDNEW
« blimp/docs/build.md ('K') | « blimp/docs/build.md ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698