summaryrefslogtreecommitdiff
path: root/chromium/docs/testing/layout_tests_in_content_shell.md
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/docs/testing/layout_tests_in_content_shell.md')
-rw-r--r--chromium/docs/testing/layout_tests_in_content_shell.md69
1 files changed, 69 insertions, 0 deletions
diff --git a/chromium/docs/testing/layout_tests_in_content_shell.md b/chromium/docs/testing/layout_tests_in_content_shell.md
new file mode 100644
index 00000000000..82cb51e465a
--- /dev/null
+++ b/chromium/docs/testing/layout_tests_in_content_shell.md
@@ -0,0 +1,69 @@
+# Running layout tests using the content shell
+
+## Basic usage
+
+Layout tests can be run with `content_shell`. To just dump the render tree, use
+the `--run-layout-test` flag:
+
+```bash
+out/Default/content_shell --run-layout-test foo.html
+```
+
+### Compiling
+
+If you want to run layout tests,
+[build the target `blink_tests`](layout_tests.md); this includes all the other
+binaries required to run the tests.
+
+### Running
+
+You can run layout tests using `run-webkit-tests` (in
+`src/third_party/WebKit/Tools/Scripts`).
+
+```bash
+third_party/WebKit/Tools/Scripts/run-webkit-tests storage/indexeddb
+```
+
+or execute the shell directly:
+
+```bash
+out/Default/content_shell --remote-debugging-port=9222
+```
+
+This allows you see how your changes look in Chromium, and even connect with
+devtools (by going to http://127.0.0.1:9222 from another window) to inspect your
+freshly compiled Blink.
+
+*** note
+On the Mac, use `Content Shell.app`, not `content_shell`.
+
+```bash
+out/Default/Content\ Shell.app/Contents/MacOS/Content\ Shell --remote-debugging-port=9222
+```
+***
+
+### Debugging Renderer Crashes
+
+To debug a renderer crash, ask Content Shell to wait for you to attach a
+debugger once it spawns a renderer process by adding the
+`--renderer-startup-dialog` flag:
+
+```bash
+out/Default/content_shell --renderer-startup-dialog
+```
+
+Debugging workers and other subprocesses is simpler with
+`--wait-for-debugger-children`, which can have one of two values: `plugin` or
+`renderer`.
+
+## Future Work
+
+### Reusing existing testing objects
+
+To avoid writing (and maintaining!) yet another test controller, it is desirable
+to reuse an existing test controller. A possible solution would be to change
+DRT's test controller to not depend on DRT's implementation of the Blink
+objects, but rather on the Blink interfaces. In addition, we would need to
+extract an interface from the test shell object that can be implemented by
+content shell. This would allow for directly using DRT's test controller in
+content shell.