feat: add error event for utility process (#43774)

* feat: add error event for utility process

* chore: use public report api

* chore: fix lint

* doc: mark error event as experimental

---------

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
Robo 2024-09-27 10:17:06 +09:00 committed by GitHub
parent 8397fef3ef
commit f68184a9f9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 167 additions and 5 deletions

View file

@ -44,6 +44,7 @@ class UtilityProcessWrapper final
public gin_helper::Pinnable<UtilityProcessWrapper>,
public gin_helper::EventEmitterMixin<UtilityProcessWrapper>,
public mojo::MessageReceiver,
public node::mojom::NodeServiceClient,
public content::ServiceProcessHost::Observer {
public:
enum class IOHandle : size_t { STDIN = 0, STDOUT = 1, STDERR = 2 };
@ -81,6 +82,10 @@ class UtilityProcessWrapper final
// mojo::MessageReceiver
bool Accept(mojo::Message* mojo_message) override;
// node::mojom::NodeServiceClient
void OnV8FatalError(const std::string& location,
const std::string& report) override;
// content::ServiceProcessHost::Observer
void OnServiceProcessTerminatedNormally(
const content::ServiceProcessInfo& info) override;
@ -102,6 +107,7 @@ class UtilityProcessWrapper final
bool connector_closed_ = false;
std::unique_ptr<mojo::Connector> connector_;
blink::MessagePortDescriptor host_port_;
mojo::Receiver<node::mojom::NodeServiceClient> receiver_{this};
mojo::Remote<node::mojom::NodeService> node_service_remote_;
std::optional<electron::URLLoaderNetworkObserver>
url_loader_network_observer_;