0

Fix race in headless protocol tests

We should wait for Runtime.addBinding to finish
before proceeding with the test.

Bug: none
Change-Id: I06be299d5f74c69818b92c09eaea6c422ac0bed2
Reviewed-on: https://chromium-review.googlesource.com/c/1483361
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Commit-Queue: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#634782}
This commit is contained in:
Dmitry Gozman
2019-02-22 19:40:18 +00:00
committed by Commit Bot
parent 5153a4caee
commit d29523e9fd

@ -66,18 +66,19 @@ class HeadlessProtocolBrowserTest
private:
// HeadlessWebContentsObserver implementation.
void DevToolsTargetReady() override {
HeadlessAsyncDevTooledBrowserTest::DevToolsTargetReady();
void RunDevTooledTest() override {
browser_devtools_client_->SetRawProtocolListener(this);
devtools_client_->GetRuntime()->GetExperimental()->AddObserver(this);
devtools_client_->GetRuntime()->Enable();
devtools_client_->GetRuntime()->GetExperimental()->AddBinding(
headless::runtime::AddBindingParams::Builder()
.SetName("sendProtocolMessage")
.Build());
browser_devtools_client_->SetRawProtocolListener(this);
.Build(),
base::BindOnce(&HeadlessProtocolBrowserTest::BindingCreated,
base::Unretained(this)));
}
void RunDevTooledTest() override {
void BindingCreated(std::unique_ptr<headless::runtime::AddBindingResult>) {
base::ScopedAllowBlockingForTesting allow_blocking;
base::FilePath src_dir;
CHECK(base::PathService::Get(base::DIR_SOURCE_ROOT, &src_dir));