)]}'
{
  "commit": "c19d645d406dd05bfdf8a42458e7fc7b3c3cdd51",
  "tree": "92332b59c793365899fd6b11370c07258a3e73bb",
  "parents": [
    "fd64bd7e5e17010b7c2e55be4e9fcaa8c28c4e6d"
  ],
  "author": {
    "name": "John Ryan",
    "email": "ryjohn@google.com",
    "time": "Tue Sep 15 14:17:48 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Sep 15 14:17:48 2026 -0700"
  },
  "message": "Add sandbox attribute to extension iframe in DevTools. (#9967)\n\n* Add sandbox attribute to extension iframe in DevTools.\n\nThis change grants these permissions:\n- `allow-scripts`: enables extension JS / Wasm execution.\n- `allow-forms`: permits standard form interactions.\n- `allow-downloads`: allows extensions to export files/logs.\n- `allow-popups` \u0026 `allow-popups-to-escape-sandbox`: allows opening\n   external links.\n\nThis does not grant `allow-same-origin` permission, so extensions can\u0027t\naccess the parent window\u0027s DOM, cookies, or local storage.\n\n* Add pull request URL\n\n* Move string to top-level variable\n\n* Add allow-same-origin to DevTools extension iframe sandbox\n\nFlutter Web extensions require same-origin access for flutter.js to\ninitialize Service Workers and web storage without throwing a\nSecurityError.\n\nThis is still secure because the extension must be enabled, and\nthe sandbox prevents top-level navigation, popups, and modal hijacking.\n\n* Add a timestamp to the extension placeholder\n\nThis is to ensure \"force reload extension\" works.\n\n* Update extension debugging skill\n\n* Revert \"Update extension debugging skill\"\n\nThis reverts commit 4cebdf8cb158d1f8b15e86cd1c5ced930ec75eee.\n\n* Specify permissions for iframe in comment\n\n* Revert \"Add a timestamp to the extension placeholder\"\n\nThis reverts commit 177df19436b9d0face3d23c2c5d15cf25c37940a.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ab96f867ec088fe558f4087a67fae40b8eab24e5",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/lib/src/extensions/embedded/_controller_web.dart",
      "new_id": "9d281858d9d5920d78c5ff797e140f5a4bb943c0",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/lib/src/extensions/embedded/_controller_web.dart"
    },
    {
      "type": "modify",
      "old_id": "a54592a44b770fee437e965d1abf9150c067b71c",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md",
      "new_id": "ca70b2cd92596f9e45c59c66c2a1b6c15796e4cf",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md"
    }
  ]
}
