[M126-LTS][inspector] Fix accessing disposed V8 session in page agent
Scripts running as part of Page.evaluateScriptOnNewDocument can pause the page. During a pause we can detach the DevTools session, but the page agent is still in the middle of running the "DidCreateMainWorldContext" probe. This means any additional Page.evaluateScriptOnNewDocument scripts would attempt to eval on a detached V8 session. This CL fixes this by overriding InspectorBaseAgent::Dispose in the page agent and resetting `v8_session_` to a nullptr which we can check for before evaling more scripts. This check is only necessary for page agent methods that execute more than one JS script as for all the others we wouldn't call the probes on a disposed agent in the first place. R=caseq@chromium.org, dsv@chromium.org (cherry picked from commit 622d2fd9) Fixed: 368672129 Change-Id: I4c3361c8116a64343206da991e503aaa6bd917f6 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5886170 Reviewed-by:Danil Somsikov <dsv@chromium.org> Reviewed-by:
Andrey Kosyakov <caseq@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Original-Commit-Position: refs/heads/main@{#1359730} Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5901054 Reviewed-by:
Mohamed Omar <mohamedaomar@google.com> Reviewed-by:
Alex Rudenko <alexrudenko@chromium.org> Owners-Override: Mohamed Omar <mohamedaomar@google.com> Commit-Queue: Alex Rudenko <alexrudenko@chromium.org> Cr-Commit-Position: refs/branch-heads/6478@{#1993} Cr-Branched-From: e6143acc-refs/heads/main@{#1300313}
Showing
- third_party/blink/renderer/core/inspector/inspector_page_agent.cc 7 additions, 2 deletions...rty/blink/renderer/core/inspector/inspector_page_agent.cc
- third_party/blink/renderer/core/inspector/inspector_page_agent.h 1 addition, 0 deletions...arty/blink/renderer/core/inspector/inspector_page_agent.h
- third_party/blink/web_tests/http/tests/inspector-protocol/page/addScriptToEvaluateOnNewDocument-reload-pause-expected.txt 2 additions, 0 deletions...ddScriptToEvaluateOnNewDocument-reload-pause-expected.txt
- third_party/blink/web_tests/http/tests/inspector-protocol/page/addScriptToEvaluateOnNewDocument-reload-pause.js 17 additions, 0 deletions...col/page/addScriptToEvaluateOnNewDocument-reload-pause.js
Loading
Please register or sign in to comment