• Nico Hartmann's avatar
    Revert "[api] Add API callback setter for the SAB origin trial" · 4ce88f56
    Nico Hartmann authored
    This reverts commit bc1eb7b4.
    
    Reason for revert: https://ci.chromium.org/ui/p/chromium/builders/try/android-pie-arm64-rel/369203/overview
    
    Original change's description:
    > [api] Add API callback setter for the SAB origin trial
    >
    > This change makes it possible to enable SharedArrayBuffer per Context,
    > controlling whether it should be enabled or not with a callback. The
    > previous implementation of the reverse origin trial for
    > SharedArrayBuffer was broken, since the feature could only be enabled
    > globally per process, and only if the feature flag is set early enough
    > in the v8 initialization. This does not play well with how origin
    > trials work.
    >
    > The implementation is similar to the callbacks that already exist for
    > the origin trials for WebAssembly simd and exceptions.
    >
    > SharedArrayBuffer is still controlled by the flag
    > harmony_sharedarraybuffer. If that flag is disabled, then
    > SharedArrayBuffer is disabled unconditionally. On top of that, this CL
    > introduces a new flag for enabling SharedArrayBuffer per context. If
    > that flag is set, a callback is used to determine whether
    > SharedArrayBuffer should be enabled.
    >
    >
    > Note that this only controls whether the SharedArrayBuffer constructor
    > should be exposed on the global object or not. It is always possible
    > to construct a SharedArrayBuffer using
    >
    >   new WebAssembly.Memory({
    >     shared:true, initial:0, maximum:0 }).buffer.constructor;
    >
    >
    > There are few things which I do not like of this approach, but I did
    > not have better ideas:
    >
    > 1. The complex logic of dobule flag + callback. However, this seemed
    > the best way to me to not break embedders which rely on that flag
    > being enabled by default.
    >
    > 2. The fact that what actually matters is just whether the callback
    > returns `true` once. It would be good to check that the callback gives
    > a consistent return value, or to provide a better API that cannot be
    > missunderstood.
    >
    >
    > Bug: chromium:923807,chromium:1071424,chromium:1138860
    > Change-Id: Ibe3776fad4d3bff5dda9066967e4b20328014266
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2867473
    > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
    > Commit-Queue: Antonio Sartori <antoniosartori@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#74378}
    
    Bug: chromium:923807
    Bug: chromium:1071424
    Bug: chromium:1138860
    Change-Id: Iec678dee130db891c2096e47bc072a5d77ae9476
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2874403
    Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
    Auto-Submit: Nico Hartmann <nicohartmann@chromium.org>
    Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarLutz Vahl <vahl@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#74404}
    4ce88f56
api.cc 391 KB