These events are emitted for every navigation request which isn't really efficient. Also upstream has removed the observers that provide these details as part of network servification https://chromium-review.googlesource.com/c/chromium/src/+/805008 and https://chromium-review.googlesource.com/c/chromium/src/+/786320. We are removing it as a part of chromium 66 upgrade.

Proposed alternative: Users can use the [webRequest](https://github.com/electron/electron/blob/master/docs/api/web-request.md) module which provides similar navigation details on a subscription basis.
atom/browser/api/atom_api_web_contents.cc
if (IsDevToolsOpened())
    CloseDevTools();
  else
    OpenDevTools(nullptr);
}
void WebContents::InspectElement(int x, int y) {
  if (type_ == REMOTE)
    return;
  if (!enable_devtools_)
    return;
  if (!managed_web_contents()->GetDevToolsWebContents())
    OpenDevTools(nullptr);
  managed_web_contents()->InspectElement(x, y);
}
void WebContents::InspectServiceWorker() {
  if (type_ == REMOTE)
    return;
  if (!enable_devtools_)
    return;
  for (const auto& agent_host : content::DevToolsAgentHost::GetOrCreateAll()) {
    if (agent_host->GetType() ==
        content::DevToolsAgentHost::kTypeServiceWorker) {
      OpenDevTools(nullptr);
      managed_web_contents()->AttachTo(agent_host);
      break;
    }
  }
}
void WebContents::HasServiceWorker(const base::Callback<void(bool)>& callback) {