Microsoft Edge (Chromium) DevTools Protocol overview

With the shift in the underlying web platform of Microsoft Edge to Chromium, the Microsoft Edge (EdgeHTML) DevTools Protocol will not be receiving any further updates. The Microsoft Edge (Chromium) DevTools Protocol will match the APIs of the Chrome DevTools Protocol going forward.

You can find documentation on those domains and methods by referring to the Chrome DevTools Protocol Viewer.

Note

Any methods that were prefixed with ms in the Microsoft Edge (EdgeHTML) DevTools Protocol are no longer supported in the Microsoft Edge (Chromium) DevTools Protocol.

Using the DevTools Protocol

Here's how to attach a custom tooling client to the DevTools Server in Microsoft Edge (Chromium).

  1. Ensure all instances of Microsoft Edge (Chromium) are closed.

  2. Launch Microsoft Edge (Chromium) with the remote debugging port:.

    msedge.exe --remote-debugging-port=9222
    
  3. Optionally, you can start a separate instance of Edge using a distinct user profile if desired.

    msedge.exe --user-data-dir=<some directory>
    
  4. Next, use the HTTP list endpoint to get a list of attachable page targets.

    http://localhost:9222/json/list
    
  5. Finally, connect to the webSocketDebuggerUrl of the desired target and issue commands/subscribe to event messages through the DevTools web socket server.

DevTools Protocol HTTP Endpoints

The Microsoft Edge (Chromium) DevTools Protocol supports the following HTTP endpoints.

/json/version

Provides information on the browser of the host machine and which version of the DevTools Protocol it supports.

Parameters

None

Return object

{
   "Browser": "Edg/75.0.115.0",
   "Protocol-Version": "1.3",
   "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3739.0 Safari/537.36 Edg/75.0.115.0",
   "V8-Version": "7.5.98",
   "WebKit-Version": "537.36 (@68a98f73c7d0f766fb5a013ea7f8dbb41089bc1b)",
   "webSocketDebuggerUrl": "ws://localhost:9222/devtools/browser/a9d0e8cf-476a-4a89-bba9-0fc27ce691cd"
}

/json/protocol

Provides the entire protocol API surface serialized as JSON.

Parameters

None

Return object

JSON object which represents the available API surface for current version of the protocol.

/json/list

Provides a candidate list of page targets for debugging.

Parameters

None

Return object

[{
   "description": "",
   "devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:9222/devtools/page/AB07C11A262D1EC8634EB12E2DCA4989",
   "id": "AB07C11A262D1EC8634EB12E2DCA4989",
   "title": "localhost:9222/json/protocol",
   "type": "page",
   "url": "http://localhost:9222/json/list",
   "webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/AB07C11A262D1EC8634EB12E2DCA4989"
}, ...  ]

/json/close

Closes down the target process (for example, in Microsoft Edge (Chromium), closes the page tab).

Parameters

Target ID

Return object

String(“Target is closing”)

Remote Tools for Microsoft Edge (Beta)

You are now able to install the Remote Tools for Microsoft Edge (Beta) from the Microsoft Store. This app enables you to remotely debug Microsoft Edge (Chromium) running on a Windows 10 device from your development machine.

To learn how to set up your Windows 10 device and connect to it from your development machine, navigate to Get Started with Remote Debugging Windows 10 Devices.

The Remote Tools for Microsoft Edge (Beta) uses the same Microsoft Edge (Chromium) DevTools Protocol as the DevTools to communicate with Microsoft Edge running on the Windows 10 device you want to debug. This app just prepends /msedge/ and a process ID (pid) before each call to the protocol. It supports the following HTTP endpoints.

/msedge/json/list

Provides a candidate list of all msedge.exe processes (including PWAs and all tabs in all instances of Microsoft Edge) on the Windows 10 device for debugging.

Parameters

None

Return object

[{
   "description": "",
    "devtoolsFrontendUrl": "http://172.17.75.195:80/msedge/7264/devtools/inspector.html?ws=172.17.75.195:80/msedge/7264/devtools/page/ED4FFDB4529723A0FAFCBDB9B45851BB",
    "faviconUrl": "https://docs.microsoft.com/favicon.ico",
    "id": "ED4FFDB4529723A0FAFCBDB9B45851BB",
    "title": "Get Started with Remote Debugging Windows 10 Devices - Microsoft Edge Development | Microsoft Docs",
    "type": "page",
    "url": "https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/remote-debugging/windows",
    "webSocketDebuggerUrl": "ws://172.17.75.195:80/msedge/7264/devtools/page/ED4FFDB4529723A0FAFCBDB9B45851BB",
    "browserProcessId": 7264
}, ...  ]

/msedge/

Functionally equivalent to /msedge/json/list.

/msedge/[pid]/json/list

Provides a candidate list of page targets for the Microsoft Edge instance that matches the provided [pid] for debugging.

Parameters

None

Return object

[{
    "description": "",
    "devtoolsFrontendUrl": "http://172.17.75.195:80/msedge/7264/devtools/inspector.html?ws=172.17.75.195:80/msedge/7264/devtools/page/ED4FFDB4529723A0FAFCBDB9B45851BB",
    "faviconUrl": "https://docs.microsoft.com/favicon.ico",
    "id": "ED4FFDB4529723A0FAFCBDB9B45851BB",
    "title": "Get Started with Remote Debugging Windows 10 Devices - Microsoft Edge Development | Microsoft Docs",
    "type": "page",
    "url": "https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/remote-debugging/windows",
    "webSocketDebuggerUrl": "ws://172.17.75.195:80/msedge/7264/devtools/page/ED4FFDB4529723A0FAFCBDB9B45851BB"
}, ...  ]

/msedge/[pid]/json/version

Provides information about the Microsoft Edge instance that matches the provided [pid] and which version of the DevTools Protocol it supports.

Parameters

None

Return object

{
    "Browser": "Edg/82.0.452.0",
    "Protocol-Version": "1.3",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/82.0.4080.0 Safari/537.36 Edg/82.0.452.0",
    "V8-Version": "8.2.263",
    "WebKit-Version": "537.36 (@fe0232051787ca94ac8edfc0084c3488b7d9bdb2)",
    "webSocketDebuggerUrl": "172.17.75.195:80/msedge/7264/devtools/browser/7a67c8c4-138b-48e3-bfe0-cb7af34d559a"
}

/msedge/[pid]/json/protocol/

Provides the entire protocol API surface serialized as JSON for the Microsoft Edge instance that matches the provided [pid].

Parameters

None

Return object

JSON object which represents the available API surface for the version of the protocol that the Microsoft Edge instance that matches the provided [pid] is using.