1. 25 Mar, 2021 2 commits
  2. 23 Mar, 2021 1 commit
    • Andreas Haas's avatar
      [api] Add callback to set up conditional features · 16d9298a
      Andreas Haas authored
      Origin trials allow webpages to use experimental features even though
      the features are not yet enabled by default. These features will then
      get enabled per execution context: it is possible that the feature is
      enabled in one execution context but disabled in another execution
      context. In V8 we check for origin trials by calling a callback provided
      by the embedder that takes the context as a parameter and returns
      whether a feature is enabled in this context or not.
      
      This approach fails when a feature changes the context itself, e.g. by
      extending the global object. In that case the context is not available
      yet to check for the origin trial.
      
      To solve the problem this CL adds a new API function that can be called
      by the embedder to notify V8 that context with the origin trial
      information is finished. After that V8 can read the origin trial
      information from the context and extend e.g. the global object with the
      origin trial features.
      
      Additionally to the API this CL also adds code to enable the
      WebAssembly.Exception constructor conditionally, depending on whether
      it has been enabled by an origin trial or not.
      
      The Blink-side change: https://crrev.com/c/2775573
      
      R=ulan@chromium.org, jkummerow@chromium.org
      
      Change-Id: Ic05c4a89eb3e0e31469e49da8767d630c43b2e00
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773287Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73597}
      16d9298a
  3. 17 Mar, 2021 4 commits
    • Michael Lippautz's avatar
      cppgc: Refactor object allocation to improve binary size · fdae1b65
      Michael Lippautz authored
      Refactor SpacePolicy on a non-templated class to avoid the situation
      of having MakeGarbageCollectedTraitBase<T>::SpacePolicy<U> refer to
      different T and U which make it hard for the compiler to alias
      anything.
      
      Bug: chromium:1056170
      Change-Id: I78eb0362d43403ad2712bcb65746eeb9f6ad44fa
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2769338Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73494}
      fdae1b65
    • Michael Lippautz's avatar
      Reland "cppgc: Rework GC info creation" · a03a868e
      Michael Lippautz authored
      This is a reland of d76064df
      
      Original change's description:
      > cppgc: Rework GC info creation
      >
      > Previously, GCInfoTrait relied on the non-trivial constructor of a
      > static object for registering a new GCInfo object. The generated code
      > is required to be thread-safe which is achieved by introducing guard
      > variables in the compiler.
      >
      > The new version is similar to Blink in that it relies on zero
      > initialization of a trivially constructible atomic.
      >
      > Compared to guard variables that are created per GCInfo registration,
      > the atomic creates less bloat (~20bytes/type) and also results in a
      > better fast path.
      >
      > Minimum example: https://godbolt.org/z/qrdTf8
      >
      > Bug: chromium:1056170
      > Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750
      > Reviewed-by: Omer Katz <omerkatz@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73463}
      
      Bug: chromium:1056170
      Change-Id: I01e60beabc1d279d352361657f408f113aac768e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767021
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73471}
      a03a868e
    • Maya Lekova's avatar
      Revert "cppgc: Rework GC info creation" · 8b9d0138
      Maya Lekova authored
      This reverts commit d76064df.
      
      Reason for revert: Breaking MSAN - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/37390/overview
      
      Original change's description:
      > cppgc: Rework GC info creation
      >
      > Previously, GCInfoTrait relied on the non-trivial constructor of a
      > static object for registering a new GCInfo object. The generated code
      > is required to be thread-safe which is achieved by introducing guard
      > variables in the compiler.
      >
      > The new version is similar to Blink in that it relies on zero
      > initialization of a trivially constructible atomic.
      >
      > Compared to guard variables that are created per GCInfo registration,
      > the atomic creates less bloat (~20bytes/type) and also results in a
      > better fast path.
      >
      > Minimum example: https://godbolt.org/z/qrdTf8
      >
      > Bug: chromium:1056170
      > Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750
      > Reviewed-by: Omer Katz <omerkatz@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73463}
      
      Bug: chromium:1056170
      Change-Id: I71960103513d6db7789d752b70727d014c2e6406
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767020
      Auto-Submit: Maya Lekova <mslekova@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/master@{#73466}
      8b9d0138
    • Michael Lippautz's avatar
      cppgc: Rework GC info creation · d76064df
      Michael Lippautz authored
      Previously, GCInfoTrait relied on the non-trivial constructor of a
      static object for registering a new GCInfo object. The generated code
      is required to be thread-safe which is achieved by introducing guard
      variables in the compiler.
      
      The new version is similar to Blink in that it relies on zero
      initialization of a trivially constructible atomic.
      
      Compared to guard variables that are created per GCInfo registration,
      the atomic creates less bloat (~20bytes/type) and also results in a
      better fast path.
      
      Minimum example: https://godbolt.org/z/qrdTf8
      
      Bug: chromium:1056170
      Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73463}
      d76064df
  4. 16 Mar, 2021 1 commit
  5. 15 Mar, 2021 1 commit
  6. 12 Mar, 2021 3 commits
  7. 11 Mar, 2021 3 commits
  8. 09 Mar, 2021 1 commit
  9. 08 Mar, 2021 3 commits
  10. 04 Mar, 2021 3 commits
  11. 03 Mar, 2021 3 commits
  12. 02 Mar, 2021 3 commits
  13. 26 Feb, 2021 4 commits
  14. 25 Feb, 2021 3 commits
  15. 24 Feb, 2021 5 commits