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

Unified Diff: headless/lib/browser/headless_web_contents_impl.h

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/lib/browser/headless_web_contents_impl.h
diff --git a/headless/lib/browser/headless_web_contents_impl.h b/headless/lib/browser/headless_web_contents_impl.h
index 43293847b352e85400aad4ed0a9a42672d56c1f3..d7abd377a72a0a7fab0b4407697c41e370281c88 100644
--- a/headless/lib/browser/headless_web_contents_impl.h
+++ b/headless/lib/browser/headless_web_contents_impl.h
@@ -10,6 +10,7 @@
#include <string>
#include <unordered_map>
+#include "content/public/browser/render_process_host_observer.h"
#include "content/public/browser/web_contents_observer.h"
#include "headless/public/headless_devtools_target.h"
#include "headless/public/headless_web_contents.h"
@@ -35,6 +36,7 @@ class WebContentsObserverAdapter;
class HeadlessWebContentsImpl : public HeadlessWebContents,
public HeadlessDevToolsTarget,
+ public content::RenderProcessHostObserver,
public content::WebContentsObserver {
public:
~HeadlessWebContentsImpl() override;
@@ -59,6 +61,12 @@ class HeadlessWebContentsImpl : public HeadlessWebContents,
void AttachClient(HeadlessDevToolsClient* client) override;
void DetachClient(HeadlessDevToolsClient* client) override;
+ // RenderProcessHostObserver implementation:
+ void RenderProcessExited(content::RenderProcessHost* host,
+ base::TerminationStatus status,
+ int exit_code) override;
+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
+
// content::WebContentsObserver implementation:
void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override;
@@ -88,7 +96,8 @@ class HeadlessWebContentsImpl : public HeadlessWebContents,
scoped_refptr<content::DevToolsAgentHost> agent_host_;
std::list<MojoService> mojo_services_;
- HeadlessBrowserContextImpl* browser_context_; // Not owned.
+ HeadlessBrowserContextImpl* browser_context_; // Not owned.
+ content::RenderProcessHost* render_process_host_; // Not owned.
using ObserverMap =
std::unordered_map<HeadlessWebContents::Observer*,

Powered by Google App Engine
This is Rietveld 408576698