1. 26 Apr, 2022 1 commit
  2. 22 Apr, 2022 2 commits
  3. 21 Apr, 2022 2 commits
  4. 20 Apr, 2022 1 commit
    • Simon Zünd's avatar
      [inspector] Add 'canBeRestarted' flag to CallFrames when debugger pauses · ec41a70e
      Simon Zünd authored
      Doc: https://bit.ly/revive-restart-frame
      Context: https://crrev.com/c/3582395 (whole feature)
      
      This CL adds a new optional flag `canBeRestarted` to every call frame
      in Debugger.paused events. As the name suggests, the flag indicates
      whether we can restart a particular frame through Debugger.restartFrame
      once implemented.
      
      We are not able to safely restart all frames:
        * We don't support WASM frames
        * We don't support frames where resumable functions (async fns,
          generators) and embedder C++ frames are between the top-most
          frame and the to-be-restarted frame.
      
      Note that from a CDP perspective the flag doesn't actually guarantee
      a successful restart. CDP clients can issue
      CDP commands between the Debugger.paused event and before a user
      decides to restart a frame, which can potentially mess
      with the stack.
      
      The `canBeRestarted` flag tests are folded into the
      Debugger.restartFrame tests. As the feature is not yet fully
      implemented we short-circuit most of the tests for now and only
      run them up until the first Debugger.restartFrame call fails
      (except "fails-for-resumables.js").
      This means the tests exercise the `canBeRestarted` flag, but not
      the restarting functionality itself.
      
      R=bmeurer@chromium.org, kimanh@chromium.org
      
      Bug: chromium:1303521
      Change-Id: I01ab46dc3557ab8383960969fbe03e00604cc5e2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596160Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarKim-Anh Tran <kimanh@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80046}
      ec41a70e
  5. 14 Apr, 2022 1 commit
  6. 13 Apr, 2022 1 commit
  7. 11 Apr, 2022 1 commit
    • Maksim Sadym's avatar
      Add `WebDriverBiDi` serialization to CDP · a913a75b
      Maksim Sadym authored
      1. Added `generateWebDriverValue` flag to `Runtime.evaluate` and `Runtime.callFunctionOn`.
      2. Added `webDriverValue` field to `RemoteObject`, and set it in case of the `generateWebDriverValue` flag was set.
      3. Added virtual method `bidiSerialize` to allow embedder-implemented serialization (like in https://crrev.com/c/3472491).
      4. Implemented V8 serialization in a separate class `V8WebDriverSerializer`.
      5. Hardcode `max_depth=1`.
      6. Added tests.
      
      Not implemented yet:
      1. `objectId`.
      2. Test of embedder-implemented serialization.
      
      Tested automatically by:
      ```
      python3 tools/run-tests.py --outdir out/foo inspector/runtime/add-web-driver-value
      ```
      
      Naming to be discussed. Suggestions are very welcome.
      
      Design doc: http://go/bidi-serialization
      
      Change-Id: Ib35ed8ff58e40b3304423cc2139050136d844e2c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3472077Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Maksim Sadym <sadym@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79922}
      a913a75b
  8. 08 Apr, 2022 1 commit
  9. 06 Apr, 2022 5 commits
  10. 04 Apr, 2022 2 commits
  11. 31 Mar, 2022 1 commit
  12. 30 Mar, 2022 1 commit
    • Benedikt Meurer's avatar
      [inspector] Add custom error dispatch machinery for debug evaluate. · 56cfdd68
      Benedikt Meurer authored
      This introduces a `V8InspectorClient::dispatchError()` callback that
      embedders can use to dispatch errors from scripts injected by DevTools
      (via debug evaluate). The idea here being that while these errors are
      technically caught by the inspector logic, the DevTools UX presents them
      just like other uncaught errors, with the exception that they don't
      trigger error handlers installed by the page. The latter can be quite
      confusing to developers, and surprising when for example testing these
      error handlers from DevTools. So this adds the foundations on the V8
      side to enable triggering error handlers for these technically caught,
      but morally uncaught, exceptions.
      
      On the Chromium side https://crrev.com/c/3560458 will implement and
      use the hook. And that CL also adds a web tests to check the behavior.
      
      Bug: chromium:1295750
      Change-Id: I945c8a9e9b4ec5705fc7f1891dcda185b04c8310
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3557234
      Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79673}
      56cfdd68
  13. 24 Mar, 2022 1 commit
  14. 23 Mar, 2022 2 commits
  15. 21 Mar, 2022 1 commit
  16. 18 Mar, 2022 1 commit
    • Michael Lippautz's avatar
      Revert "cppgc: Rework prefinalizers" · f46c4858
      Michael Lippautz authored
      This reverts commit cf25b3bc.
      
      Reason for revert: https://crbug.com/1307471. TraceTrait must only be used during marking.
      
      Original change's description:
      > cppgc: Rework prefinalizers
      >
      > Move the check for whether an object is live or dead out of the
      > prefinalizer trampoline. Moving it into the backend allows for
      > inlining the check which avoids a call to the trampoline for live
      > objects.
      >
      > On catapult benchmarks (e.g. cnn:2021, nytimes:2020), there's often
      > ~2k finalizers registered. In order to avoid memory overhead in the
      > range of a few KB, we store the fact whether the object points to the
      > base object payload in the LSB of the pointer. For caged builds this
      > is replaced with just storing the index into the cage for both object
      > and base object payload.
      >
      > Locally saves around ~10% of atomic sweeping processing time which is
      > in the order of .05ms.
      >
      > Bug: v8:12698
      > Change-Id: I198205a6b1d57fc2df821ee4e73e53dc6f825ff5
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497764
      > Reviewed-by: Omer Katz <omerkatz@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79442}
      
      Bug: v8:12698, chromium:1307471
      Change-Id: I5c4e70d46cb99af66c77f0c013625b6af6c6eb8e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3535781
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79527}
      f46c4858
  17. 17 Mar, 2022 1 commit
  18. 16 Mar, 2022 2 commits
    • Clemens Backes's avatar
      [wasm] Fix some WASM comments and outputs · 44c02e18
      Clemens Backes authored
      In text, we should use the properly capitalized "Wasm" instead of
      "WASM". In particular for frame output, other frames typically use
      CamelCase (like "JsToWasmFrame", "ExitFrame", "InternalFrame"), so Wasm
      should do the same.
      The "0xa" comment in some assemblers is also outdated, the current tag
      we emit for StackFrame::WASM is 0x8 (0x4 shifted by one).
      
      R=jkummerow@chromium.org
      
      Bug: v8:12425
      Change-Id: Ic3e00c401b219c28b5424c82efb0f1a9df51690f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3525195Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79498}
      44c02e18
    • Samuel Groß's avatar
      Add ObjectSerializer::VisitExternalPointer · d16de301
      Samuel Groß authored
      This method now handles external pointers in HeapObjects during
      serialization by encoding the representation of the external pointer
      (sandboxed, raw), the origin (internal, api) and potentially the
      external pointer tag. It is currently only used to handle
      JSExternalObjects but could, in the future, be extended to handle all
      external pointers that need special handling during
      serialization/deserialization.
      
      Bug: v8:12700
      Change-Id: Ib0747d765ddc632e4ca4ee94521616d0271be0bc
      Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3521904Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Samuel Groß <saelo@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79496}
      d16de301
  19. 14 Mar, 2022 1 commit
  20. 10 Mar, 2022 1 commit
    • Michael Lippautz's avatar
      cppgc: Rework prefinalizers · cf25b3bc
      Michael Lippautz authored
      Move the check for whether an object is live or dead out of the
      prefinalizer trampoline. Moving it into the backend allows for
      inlining the check which avoids a call to the trampoline for live
      objects.
      
      On catapult benchmarks (e.g. cnn:2021, nytimes:2020), there's often
      ~2k finalizers registered. In order to avoid memory overhead in the
      range of a few KB, we store the fact whether the object points to the
      base object payload in the LSB of the pointer. For caged builds this
      is replaced with just storing the index into the cage for both object
      and base object payload.
      
      Locally saves around ~10% of atomic sweeping processing time which is
      in the order of .05ms.
      
      Bug: v8:12698
      Change-Id: I198205a6b1d57fc2df821ee4e73e53dc6f825ff5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497764Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79442}
      cf25b3bc
  21. 09 Mar, 2022 1 commit
  22. 08 Mar, 2022 1 commit
  23. 07 Mar, 2022 3 commits
  24. 02 Mar, 2022 1 commit
  25. 01 Mar, 2022 1 commit
  26. 22 Feb, 2022 2 commits
  27. 21 Feb, 2022 2 commits