• Stephen McGruer's avatar
    Revert "[bindings] Replace JSFunction backlink with GC-aware wrapper link" · c1d0a59d
    Stephen McGruer authored
    This reverts commit e7b3bd5b.
    
    Reason for revert: Suspected of breaking CFI bots:
    
    https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Android%20CFI/2266
    https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Linux%20CFI/9276
    
    Example failure: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8939838131233782656/+/steps/content_browsertests/0/logs/DoNotTrackTest.FetchFromWorker/0
    
    ../../third_party/blink/renderer/platform/bindings/wrapper_type_info.h:178:10: runtime error: control flow integrity check for type 'blink::ScriptWrappable' failed during cast to unrelated type (vtable address 0x0000009aab90)
    0x0000009aab90: note: vtable is of type 'blink::V8EventListener'
     00 00 00 00  10 96 ab 08 00 00 00 00  90 9c ab 08 00 00 00 00  40 9b ab 08 00 00 00 00  f0 ad ab 08
    
    Original change's description:
    > [bindings] Replace JSFunction backlink with GC-aware wrapper link
    > 
    > Replaces the custom backlink from V8->Blink that was using a v8::External with a
    > GC-aware backpointer that is encapsulated in the CustomWrappableAdapter
    > interface.
    > 
    > CustomWrappableAdapter establishes a link from a given JavaScript object to the
    > Blink object inheriting from CustomWrappableAdapter. The link is known to
    > garbage collectors and thus the Blink object will be kept alive as long as the
    > JavaScript object is alive. The adapter can be used to model liveness across V8
    > and Blink component boundaries. In contrast to ScriptWrappable, there is no IDL
    > definitions required and the JavaScript object must not escape to user-visible
    > JavaScript.
    > 
    > Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng;luci.chromium.try:linux_layout_tests_slimming_paint_v2;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
    > Change-Id: Id9b6a046fd5e3f4c31ddf15894a9968701831e90
    > Bug: chromium:843903
    > Reviewed-on: https://chromium-review.googlesource.com/1145262
    > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    > Reviewed-by: Kentaro Hara <haraken@chromium.org>
    > Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#578621}
    
    TBR=yukishiino@chromium.org,haraken@chromium.org,mlippautz@chromium.org
    
    Change-Id: I2fdc26e9ecffcb2b5d39295650aa061b742985c9
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Bug: chromium:843903
    Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng;luci.chromium.try:linux_layout_tests_slimming_paint_v2;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
    Reviewed-on: https://chromium-review.googlesource.com/1153390Reviewed-by: default avatarStephen McGruer <smcgruer@chromium.org>
    Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#578692}
    c1d0a59d
BUILD.gn 74.9 KB