diff --git third_party/blink/public/platform/platform.h third_party/blink/public/platform/platform.h
index 18008b93d9066..a9775e0153fbe 100644
--- third_party/blink/public/platform/platform.h
+++ third_party/blink/public/platform/platform.h
@@ -763,6 +763,11 @@ class BLINK_PLATFORM_EXPORT Platform {
       const WebURL& url,
       blink::WebVector<blink::WebContentSecurityPolicyHeader>* csp) {}
 
+  // DevTools ------------------------------------------------------------
+
+  virtual void DevToolsAgentAttached() {}
+  virtual void DevToolsAgentDetached() {}
+
  private:
   static void InitializeMainThreadCommon(
       Platform* platform,
diff --git third_party/blink/renderer/core/inspector/devtools_session.cc third_party/blink/renderer/core/inspector/devtools_session.cc
index 53bac961859ad..ee55382ce2641 100644
--- third_party/blink/renderer/core/inspector/devtools_session.cc
+++ third_party/blink/renderer/core/inspector/devtools_session.cc
@@ -8,6 +8,7 @@
 #include <utility>
 #include <vector>
 
+#include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_controller.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/inspector/devtools_agent.h"
@@ -149,6 +150,7 @@ DevToolsSession::DevToolsSession(
     for (wtf_size_t i = 0; i < agents_.size(); i++)
       agents_[i]->Restore();
   }
+  Platform::Current()->DevToolsAgentAttached();
 }
 
 DevToolsSession::~DevToolsSession() {
@@ -191,6 +193,7 @@ void DevToolsSession::Detach() {
   agents_.clear();
   v8_session_.reset();
   agent_->client_->DebuggerTaskFinished();
+  Platform::Current()->DevToolsAgentDetached();
 }
 
 void DevToolsSession::DispatchProtocolCommand(