| Index: blimp/docs/running.md
|
| diff --git a/blimp/docs/running.md b/blimp/docs/running.md
|
| deleted file mode 100644
|
| index 48dadadc2f4cc928366c0af9da85dfa3e466423e..0000000000000000000000000000000000000000
|
| --- a/blimp/docs/running.md
|
| +++ /dev/null
|
| @@ -1,274 +0,0 @@
|
| -# Running Blimp
|
| -[TOC]
|
| -
|
| -See [build](build.md) for instructions on how to build Blimp.
|
| -
|
| -## Android Client
|
| -
|
| -### Installing the client
|
| -
|
| -Install the Chrome Public APK with the following:
|
| -
|
| -```bash
|
| -./build/android/adb_install_apk.py $(PRODUCT_DIR)/apks/ChromePublic.apk
|
| -```
|
| -
|
| -### Setting up command line flags
|
| -
|
| -Set up any command line flags with:
|
| -
|
| -```bash
|
| -./build/android/adb_chrome_public_command_line <your flags here>
|
| -```
|
| -
|
| -For example:
|
| -```bash
|
| -./build/android/adb_chrome_public_command_line --engine-ip=127.0.0.1 \
|
| ---engine-port=25467 --engine-transport=tcp \
|
| ---blimp-client-token-path=/data/data/org.chromium.chrome/blimp_client_token \
|
| ---vmodule="*=1"
|
| -```
|
| -
|
| -To see your current command line, run
|
| -`./build/android/adb_chrome_public_command_line` without any arguments.
|
| -
|
| -### Instructing client to connect to specific host
|
| -
|
| -To have the client connect to a custom engine use the `--engine-ip`,
|
| -`--engine-port`, and `--engine-transport` flags. The possible valid
|
| -values for `--engine-transport` are 'tcp' and 'ssl'.
|
| -An example valid endpoint would be
|
| -`--engine-ip=127.0.0.1 --engine-port=25467 --engine-transport=tcp`.
|
| -
|
| -SSL-encrypted connections take an additional flag
|
| -`--engine-cert-path` which specifies a path to a PEM-encoded certificate
|
| -file (e.g. `--engine-cert-path=/path_on_device_to/file.pem`). Remember to also
|
| -copy the file to the device when using this option.
|
| -
|
| -### Specifying the client auth token file
|
| -The client needs access to a file containing a client auth token. One should
|
| -make sure this file is available by pushing it onto the device before running
|
| -the client. One can do this by running the following command:
|
| -
|
| -```bash
|
| -adb push /path/to/blimp_client_token \
|
| - /data/data/org.chromium.chrome/blimp_client_token
|
| -```
|
| -
|
| -To have the client use the given client auth token file, use the
|
| -`--blimp-client-token-path` flag (e.g.
|
| -`--blimp-client-token-path=/data/data/org.chromium.chrome/blimp_client_token`)
|
| -
|
| -An example of a client token file is
|
| -[test_client_token](https://code.google.com/p/chromium/codesearch#chromium/src/blimp/test/data/test_client_token).
|
| -
|
| -### Optional: Forcefully enabling the blimp client
|
| -
|
| -Usually, the end user will have to manually enable blimp by using the Blimp
|
| -panel in the application settings, but for developers it might be beneficial to
|
| -skip this check by forcefully enabling the blimp client.
|
| -
|
| -You can do this by adding the command line flag:
|
| -```
|
| ---enable-blimp
|
| -```
|
| -
|
| -*Note:* This still does not skip the authentication checks for the assigner. You
|
| -will still have to either pass in the `--engine-ip=...` argument or sign in
|
| -with a valid account.
|
| -
|
| -### Optional: Requesting the complete page from the engine
|
| -
|
| -The engine sends partially rendered content to the client. To request the
|
| -complete page from the engine, use the `--download-whole-document` flag on the
|
| -client.
|
| -
|
| -### Give Permissions & Start the Client
|
| -
|
| -Give permissions to app: Long-press the chromium icon on your app drawer,
|
| -dragging it to the “App info” shortcut that appears at the top of the screen,
|
| -and releasing it. Once the "App info" opens, there should be a "Permissions"
|
| -entry. Make sure to enable all permissions inside the "Permissions" screen.
|
| -
|
| -Run the Chrome Public APK with:
|
| -
|
| -```bash
|
| -./build/android/adb_run_chrome_public
|
| -```
|
| -
|
| -### Connecting to an Engine running on a workstation
|
| -To run the engine on a workstation and make your Android client connect to it,
|
| -you need to forward a port from the Android device to the host, and also
|
| -instruct the client to connect using that port on its localhost address.
|
| -
|
| -#### Port forwarding
|
| -If you are running the engine on your workstation and are connected to the
|
| -client device via USB, you'll need remote port forwarding to allow the Blimp
|
| -client to talk to your computer.
|
| -
|
| -##### Option A
|
| -Follow the
|
| -[remote debugging instructions](https://developer.chrome.com/devtools/docs/remote-debugging)
|
| -to get started. You'll probably want to remap 25467 to "localhost:25467".
|
| -*Note* This requires the separate `Chrome` application to be running on the
|
| -device. Otherwise you will not see the green light for the port forwarding.
|
| -
|
| -##### Option B
|
| -If you are having issues with using the built-in Chrome port forwarding, you can
|
| -also start a new shell and keep the following command running:
|
| -
|
| -```bash
|
| -./build/android/adb_reverse_forwarder.py --debug -v 25467 25467
|
| -```
|
| -
|
| -### Running the client in an Android emulator
|
| -Running the client using an Android emulator is similar to running it on device.
|
| -Here are a few gotchas:
|
| -
|
| -* Build an APK matching the emulator cpu type. The emulator cpu type is most
|
| - likely x86, while the default Android build cpu type is ARM. Follow the
|
| - Android build instructions above to change the CPU type.
|
| -
|
| -* Ensure that the emulator is running at least Android Marshmallow so that
|
| - fonts are rendered correctly. Also ensure that you have the latest Play
|
| - services binaries.
|
| -
|
| -* Some of scripts under `build/android` will fail to run as it uses `adb scp`.
|
| - Follow the instruction above to use `adb` directly.
|
| -
|
| -* To connect to an Engine running on the host machine, you should use
|
| - `10.0.2.2` as `engine-ip` instead of `127.0.0.1` as `127.0.0.1` will refer to
|
| - the emulator itself. There is no need of set up
|
| - [port forwarding](#Port-forwarding) when this approach is used.
|
| -
|
| -## Linux Client
|
| -
|
| -The Linux client is useful for development purposes where the full Android UI is
|
| -not required.
|
| -
|
| -Build with the following commands:
|
| -```
|
| -gn gen out-linux/Client
|
| -ninja -C out-linux/Client blimp_shell
|
| -```
|
| -
|
| -
|
| -To run it with local logging enabled, execute:
|
| -
|
| -```bash
|
| -./out-linux/Client/blimp_shell \
|
| - --user-data-dir=/tmp/blimpclient \
|
| - --enable-logging=stderr \
|
| - --vmodule="*=1" \
|
| - --engine-ip=127.0.0.1 \
|
| - --engine-port=25467 \
|
| - --engine-transport=tcp \
|
| - --blimp-client-token-path=/tmp/blimpengine-token
|
| -```
|
| -
|
| -**PS:** Create the `/tmp/blimpengine-token` file with any sequence of
|
| -characters. For example:
|
| -
|
| -```
|
| -echo "anything" > /tmp/blimpengine-token
|
| -```
|
| -
|
| -## Running the engine
|
| -
|
| -### In a container
|
| -For running the engine in a container, see [container](container.md).
|
| -
|
| -### On a workstation
|
| -The following flags are required to start an Engine instance:
|
| -
|
| -* `--blimp-client-token-path=$PATH`: Path to a file containing a nonempty
|
| - token string. If this is not present, the engine will fail to boot.
|
| -* `--use-remote-compositing`: Ensures that the renderer uses the remote
|
| - compositor.
|
| -* `--disable-cached-picture-raster`: Ensures that rasterized content is not
|
| - destroyed before serialization.
|
| -* `--android-fonts-path=$PATH`: Path to where the fonts are located.
|
| - If the Android client is Kitkat system, this would be
|
| - `out-linux/Debug/gen/third_party/blimp_fonts/font_bundle/kitkat/`.
|
| - If the Android client is Marshmallow system, this would be
|
| - `out-linux/Debug/gen/third_party/blimp_fonts/font_bundle/marshmallow/`.
|
| -* `--disable-remote-fonts`: Disables downloading of custom web fonts in the
|
| - renderer.
|
| -
|
| -#### Typical invocation
|
| -
|
| -One can start the engine using these flags:
|
| -
|
| -```bash
|
| -out-linux/Debug/blimp_engine_app \
|
| - --android-fonts-path=out-linux/Debug/gen/third_party/blimp_fonts/font_bundle/marshmallow/ \
|
| - --blimp-client-token-path=/tmp/blimpengine-token \
|
| - --enable-logging=stderr \
|
| - --vmodule="blimp*=1"
|
| -```
|
| -
|
| -## Running client engine integration with script
|
| -
|
| -When building the target `blimp` on a Linux host, a script is created which
|
| -automates running the Blimp client and starting the engine. Setting up the
|
| -environment like this is much quicker than executing each of the steps
|
| -separately. It is used for development purpose as well as running tests under
|
| -integration environment.
|
| -
|
| -### Generate the script
|
| -
|
| -The script is wrapped as an command `client_engine_integration` and ends up in
|
| -`out-linux/Debug/bin/` which is generated with building engine. Command should be with
|
| -the positional argument `{start,run,load,stop}`.
|
| -
|
| -### Running the script
|
| -
|
| -One can use the script to set up engine and connect it with client, then start client.
|
| -
|
| -#### Option A
|
| -
|
| -1. `{start}` Start engine & forwarder:
|
| -
|
| - ```bash
|
| - out-linux/Debug/bin/client_engine_integration start
|
| - ```
|
| -
|
| - Engine runs until when you run the script with `{stop}` as the positional argument.
|
| -
|
| -2. After engine starting successfully, run `{load}` client which installs apk in
|
| - device and runs blimp.
|
| -
|
| - ```bash
|
| - out-linux/Debug/bin/client_engine_integration load -p/--apk-path /path/to/apk
|
| - ```
|
| -
|
| - You are now ready to run tests or do development.
|
| -
|
| - Instead of `{load}`, if want to manually install/launch the client can also do
|
| - e.g. the incremental install:
|
| -
|
| - ```bash
|
| - ninja -C out-android/Debug blimp chrome_public_apk_incremental && \
|
| - out-android/Debug/bin/install_chrome_public_apk_incremental
|
| - ```
|
| -
|
| -3. `{stop}` Stops the engine & the forwarder:
|
| -
|
| - ```bash
|
| - out-linux/Debug/bin/client_engine_integration stop
|
| - ```
|
| -
|
| -#### Option B
|
| -
|
| -1. `{run}` Start and keep running engine & forwarder.
|
| - Script keeps running and auto-checking engine process. Is responsible for
|
| - killing engine if keyboard interrupts or client gets killed.
|
| -
|
| - ```bash
|
| - out-linux/Debug/bin/client_engine_integration run
|
| - ```
|
| -
|
| -2. Same as step 2 in Option A.
|
| -
|
| -3. Engine should be auto-killed by keyboard stopping the `{run}` script or the client
|
| - gets wiped out. `{stop}` works as well.
|
|
|