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

Unified Diff: headless/test/headless_browser_test.cc

Issue 2509813006: HeadlessWebContents:Observer to observe render process exit status (Closed)
Patch Set: Make it safe to call Shutdown() Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: headless/test/headless_browser_test.cc
diff --git a/headless/test/headless_browser_test.cc b/headless/test/headless_browser_test.cc
index 090a7045e4927819ae13e8528580dcc02b2bee52..3e1f0f23949adabe35e264950254903221dbd939 100644
--- a/headless/test/headless_browser_test.cc
+++ b/headless/test/headless_browser_test.cc
@@ -17,6 +17,7 @@
#include "headless/public/headless_devtools_client.h"
#include "headless/public/headless_devtools_target.h"
#include "headless/public/headless_web_contents.h"
+#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/geometry/size.h"
#include "url/gurl.h"
@@ -184,7 +185,8 @@ void HeadlessBrowserTest::FinishAsynchronousTest() {
HeadlessAsyncDevTooledBrowserTest::HeadlessAsyncDevTooledBrowserTest()
: web_contents_(nullptr),
- devtools_client_(HeadlessDevToolsClient::Create()) {}
+ devtools_client_(HeadlessDevToolsClient::Create()),
+ render_process_exited_(false) {}
HeadlessAsyncDevTooledBrowserTest::~HeadlessAsyncDevTooledBrowserTest() {}
@@ -194,6 +196,17 @@ void HeadlessAsyncDevTooledBrowserTest::DevToolsTargetReady() {
RunDevTooledTest();
}
+void HeadlessAsyncDevTooledBrowserTest::RenderProcessExited(
+ base::TerminationStatus status,
+ int exit_code) {
+ if (status == base::TERMINATION_STATUS_NORMAL_TERMINATION)
+ return;
+
+ FAIL() << "Abnormal renderer termination";
+ FinishAsynchronousTest();
+ render_process_exited_ = true;
+}
+
void HeadlessAsyncDevTooledBrowserTest::RunTest() {
browser_context_ = browser()->CreateBrowserContextBuilder().Build();
@@ -202,7 +215,8 @@ void HeadlessAsyncDevTooledBrowserTest::RunTest() {
RunAsynchronousTest();
- web_contents_->GetDevToolsTarget()->DetachClient(devtools_client_.get());
+ if (!render_process_exited_)
+ web_contents_->GetDevToolsTarget()->DetachClient(devtools_client_.get());
web_contents_->RemoveObserver(this);
web_contents_->Close();
web_contents_ = nullptr;

Powered by Google App Engine
This is Rietveld 408576698