| Index: headless/app/headless_shell.cc
|
| diff --git a/headless/app/headless_shell.cc b/headless/app/headless_shell.cc
|
| index 6f291a6cd6b9f8a71cc852e80644bcd69aec76a3..8fc623abf91cd12c407398d651476430973552a6 100644
|
| --- a/headless/app/headless_shell.cc
|
| +++ b/headless/app/headless_shell.cc
|
| @@ -19,6 +19,7 @@
|
| #include "content/public/common/content_switches.h"
|
| #include "headless/app/headless_shell_switches.h"
|
| #include "headless/public/devtools/domains/emulation.h"
|
| +#include "headless/public/devtools/domains/inspector.h"
|
| #include "headless/public/devtools/domains/page.h"
|
| #include "headless/public/devtools/domains/runtime.h"
|
| #include "headless/public/headless_browser.h"
|
| @@ -55,6 +56,7 @@ bool ParseWindowSize(std::string window_size, gfx::Size* parsed_window_size) {
|
| // An application which implements a simple headless browser.
|
| class HeadlessShell : public HeadlessWebContents::Observer,
|
| emulation::ExperimentalObserver,
|
| + inspector::ExperimentalObserver,
|
| page::Observer {
|
| public:
|
| HeadlessShell()
|
| @@ -118,6 +120,7 @@ class HeadlessShell : public HeadlessWebContents::Observer,
|
| return;
|
| if (!RemoteDebuggingEnabled()) {
|
| devtools_client_->GetEmulation()->GetExperimental()->RemoveObserver(this);
|
| + devtools_client_->GetInspector()->GetExperimental()->RemoveObserver(this);
|
| devtools_client_->GetPage()->RemoveObserver(this);
|
| if (web_contents_->GetDevToolsTarget()) {
|
| web_contents_->GetDevToolsTarget()->DetachClient(
|
| @@ -135,6 +138,7 @@ class HeadlessShell : public HeadlessWebContents::Observer,
|
| if (RemoteDebuggingEnabled())
|
| return;
|
| web_contents_->GetDevToolsTarget()->AttachClient(devtools_client_.get());
|
| + devtools_client_->GetInspector()->GetExperimental()->AddObserver(this);
|
| devtools_client_->GetPage()->AddObserver(this);
|
| devtools_client_->GetPage()->Enable();
|
| // Check if the document had already finished loading by the time we
|
| @@ -162,12 +166,9 @@ class HeadlessShell : public HeadlessWebContents::Observer,
|
| // TODO(skyostil): Implement more features to demonstrate the devtools API.
|
| }
|
|
|
| - void RenderProcessExited(base::TerminationStatus status,
|
| - int exit_code) override {
|
| - if (status == base::TERMINATION_STATUS_NORMAL_TERMINATION)
|
| - return;
|
| -
|
| + void OnTargetCrashed(const inspector::TargetCrashedParams& params) override {
|
| LOG(ERROR) << "Abnormal renderer termination.";
|
| + // NB this never gets called if remote debugging is enabled.
|
| Shutdown();
|
| }
|
|
|
|
|