microsoft / vscode-js-debug

A DAP-compatible JavaScript debugger. Used in VS Code, VS, + more
MIT License
1.66k stars 276 forks source link

Add an allowlist/denylist for browser sourcemap locations #1707

Open swatDong opened 1 year ago

swatDong commented 1 year ago

Describe the bug I'm debugging a React app in msedge. Instead of launching localhost, I'm launching teams.microsoft.com since my app will be loaded in Teams (iframe to localhost). The issue is, if I set any breakpoint before launching, the whole browser gets slow and loads for several minutes. But when there's no breakpoint, or set after page launched, the browser acts as normal.

To Reproduce Steps to reproduce the behavior:

  1. Create react app npx create-react-app my-app
  2. Open the app in VSCode
  3. Add launch.json
    {
    "version": "0.2.0",
    "configurations": [
        {
            "type": "msedge",
            "request": "launch",
            "name": "Launch Teams",
            "url": "https://teams.microsoft.com/_#/l/app/",
            "webRoot": "${workspaceFolder}/src",
            "trace": true
        }
    ]
    }
  4. Set breakpoint
  5. Debug

Log File Sent via email

VS Code Version: Version: 1.78.2 (user setup) Commit: b3e4e68a0bc097f0ae7907b217c1119af9e03435 Date: 2023-05-10T14:39:26.248Z Electron: 22.5.2 Chromium: 108.0.5359.215 Node.js: 16.17.1 V8: 10.8.168.25-electron.0 OS: Windows_NT x64 10.0.22621 Sandboxed: Yes

connor4312 commented 1 year ago

This is because Teams apparently publishes with sourcemaps, so the debugger tries to load all sourcemaps for the UI, e.g. for "https://statics.teams.cdn.office.net/hashed/3.3-app.min-7ab89a4.js".

A solution would be an option to control where sourcemaps get loaded from, or an ignore pattern for sourcemaps, in the launch.json. PR's welcome.