)]}'
{
  "commit": "054a46316691f40f3461d9ac947b561386b13817",
  "tree": "221c8e7914596d947451afabc652fabe3d67b667",
  "parents": [
    "5675bb6a4e051d239dad3805c364c620b376ecfd"
  ],
  "author": {
    "name": "Jack Franklin",
    "email": "jacktfranklin@google.com",
    "time": "Thu Sep 10 07:13:40 2026"
  },
  "committer": {
    "name": "devtools-frontend-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "devtools-frontend-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Sep 10 15:45:07 2026"
  },
  "message": "[AI Assistance] Fail-closed origin locking in network and DOM tools\n\nNetwork tools (ListNetworkRequests, GetNetworkRequestDetails) previously\nchecked if an origin lock was established, but fell back to allowing all\nrequests when conversationOrigin was null or undefined, causing them to\nfail open. Similarly, DOM and accessibility tools (GetStyles,\nGetElementAccessibilityDetails, ResolveDevtoolsNodePath) relied on\nConversationContext.isOriginAllowed(), which returns true when the\norigin lock is not established.\n\nThis change migrates all remaining tools to isOriginAllowedByLock and\nensures they fail closed when the origin lock is undefined or opaque:\n- ListNetworkRequestsTool and GetNetworkRequestDetailsTool reject\n  execution when the origin lock is missing or opaque, and filter\n  requests strictly via isOriginAllowedByLock against the initiator origin.\n- GetStylesTool, GetElementAccessibilityDetailsTool, and\n  ResolveDevtoolsNodePathTool require an established non-opaque origin lock\n  and validate target node origins using isOriginAllowedByLock.\n\nFixed: 559156499\nTAG\u003dagy\nCONV\u003d401d6ddf-8863-46c0-b0da-516acd8cbdda\nChange-Id: I281a52888fd35490ff11e96ac48bcdc6d49a6244\nReviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/8378726\nReviewed-by: Simon Zünd \u003cszuend@chromium.org\u003e\nAuto-Submit: Jack Franklin \u003cjacktfranklin@chromium.org\u003e\nCommit-Queue: Jack Franklin \u003cjacktfranklin@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a6e35d0ae34a31a0aba4abf304b17663b4cae90c",
      "old_mode": 33188,
      "old_path": "front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts",
      "new_id": "890a7a11ea5d5bcdb8037b29e023d9f31a2ebbb0",
      "new_mode": 33188,
      "new_path": "front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts"
    },
    {
      "type": "modify",
      "old_id": "d46113d8300cdcdcd9c2aed2d68a32fac43d97c9",
      "old_mode": 33188,
      "old_path": "front_end/models/ai_assistance/tools/GetNetworkRequestDetails.test.ts",
      "new_id": "81e920513ed74b2dc486f49e6953c0feed5c63d3",
      "new_mode": 33188,
      "new_path": "front_end/models/ai_assistance/tools/GetNetworkRequestDetails.test.ts"
    },
    {
      "type": "modify",
      "old_id": "75a48e4645a0831e5d213827364a805174251d8b",
      "old_mode": 33188,
      "old_path": "front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts",
      "new_id": "4b4c12e89f64ff7266d7d093aea9d63b52c69f2d",
      "new_mode": 33188,
      "new_path": "front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts"
    },
    {
      "type": "modify",
      "old_id": "c43fd4c292e4f4a83c7a1be0763868cbe471e542",
      "old_mode": 33188,
      "old_path": "front_end/models/ai_assistance/tools/GetStyles.test.ts",
      "new_id": "13c05852cc901d7d9f991e8f81a1bbf747df0efb",
      "new_mode": 33188,
      "new_path": "front_end/models/ai_assistance/tools/GetStyles.test.ts"
    },
    {
      "type": "modify",
      "old_id": "4346c533f07a0af41b70ff4fa3db185e2e14333d",
      "old_mode": 33188,
      "old_path": "front_end/models/ai_assistance/tools/GetStyles.ts",
      "new_id": "e126e0acd6c4445aa294c020be1dc91449c18525",
      "new_mode": 33188,
      "new_path": "front_end/models/ai_assistance/tools/GetStyles.ts"
    },
    {
      "type": "modify",
      "old_id": "fdbac33f5d9caba440d9ad1543a146902178c310",
      "old_mode": 33188,
      "old_path": "front_end/models/ai_assistance/tools/ListNetworkRequests.test.ts",
      "new_id": "8d4ef1ee32aa02a3916b233e908c860f73697f06",
      "new_mode": 33188,
      "new_path": "front_end/models/ai_assistance/tools/ListNetworkRequests.test.ts"
    },
    {
      "type": "modify",
      "old_id": "caa8276fd9e7cf6dafec694eeeb7c55925ab8959",
      "old_mode": 33188,
      "old_path": "front_end/models/ai_assistance/tools/ListNetworkRequests.ts",
      "new_id": "fce241e38823b91ff9479b665a92b703614f1423",
      "new_mode": 33188,
      "new_path": "front_end/models/ai_assistance/tools/ListNetworkRequests.ts"
    },
    {
      "type": "modify",
      "old_id": "03188d551741de5b5c0ba088de77edd827278458",
      "old_mode": 33188,
      "old_path": "front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts",
      "new_id": "da6c58ce8b4c765e4d172f5f8369b84d0a94a431",
      "new_mode": 33188,
      "new_path": "front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts"
    }
  ]
}
