1. 12 May, 2020 1 commit
  2. 06 May, 2020 1 commit
  3. 23 Apr, 2020 1 commit
  4. 14 Apr, 2020 1 commit
  5. 18 Mar, 2020 1 commit
  6. 06 Mar, 2020 1 commit
  7. 04 Mar, 2020 1 commit
    • Timothy Gu's avatar
      Reland "Use context of then function for PromiseResolveThenableJob" · 92a2f0c7
      Timothy Gu authored
      This is a reland of 93253978
      
      Original change's description:
      > Use context of then function for PromiseResolveThenableJob
      > 
      > When a microtask is executed, we need to use an appropriate,
      > non-detached Context for its execution. Currently with
      > PromiseResolveThenableJobs [1], the Context used is always drawn from
      > the realm of the Promise constructor being used. This may cause
      > non-intuitive behavior, such as in the following case:
      > 
      >   const DeadPromise = iframe.contentWindow.Promise;
      >   const p = DeadPromise.resolve({
      >     then() {
      >       return { success: true };
      >     }
      >   });
      >   p.then(result => { console.log(result); });
      > 
      >   // Some time later, but synchronously...
      >   iframe.src = "http://example.com"; // navigate away.
      >   // DeadPromise's Context is detached state now.
      >   // p never gets resolved, and its reaction handler never gets called.
      > 
      > To fix this behavior, when PromiseResolveThenableJob is being queued up,
      > the `then` method of the thenable should be used to determine the
      > context of the resultant microtask. Doing so aligns with Firefox, and
      > also with the latest HTML spec [2][3].
      > 
      > This change is analogous to CL 1465902, which uses the realm of the
      > reaction handlers to determine the Context PromiseReactionJobs run in.
      > 
      > [1]: https://tc39.es/ecma262/#sec-promiseresolvethenablejob
      > [2]: https://html.spec.whatwg.org/C/#enqueuejob(queuename,-job,-arguments)
      > [3]: https://github.com/whatwg/html/pull/5212
      > 
      > Bug: v8:10200
      > Change-Id: I2312788eeea0f9e870c13cf3cb5730a87d15609e
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071624
      > Commit-Queue: Timothy Gu <timothygu@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Shu-yu Guo <syg@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#66507}
      
      Bug: v8:10200
      Change-Id: I5af003a06c60b0c8cd19de47f847a947d40d046c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2082109Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Timothy Gu <timothygu@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66586}
      92a2f0c7
  8. 29 Feb, 2020 1 commit
    • Francis McCabe's avatar
      Revert "Use context of then function for PromiseResolveThenableJob" · 7558e182
      Francis McCabe authored
      This reverts commit 93253978.
      
      Reason for revert: Causing blink layout failures. See 
      
      https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux%20Future/2684
      
      Original change's description:
      > Use context of then function for PromiseResolveThenableJob
      > 
      > When a microtask is executed, we need to use an appropriate,
      > non-detached Context for its execution. Currently with
      > PromiseResolveThenableJobs [1], the Context used is always drawn from
      > the realm of the Promise constructor being used. This may cause
      > non-intuitive behavior, such as in the following case:
      > 
      >   const DeadPromise = iframe.contentWindow.Promise;
      >   const p = DeadPromise.resolve({
      >     then() {
      >       return { success: true };
      >     }
      >   });
      >   p.then(result => { console.log(result); });
      > 
      >   // Some time later, but synchronously...
      >   iframe.src = "http://example.com"; // navigate away.
      >   // DeadPromise's Context is detached state now.
      >   // p never gets resolved, and its reaction handler never gets called.
      > 
      > To fix this behavior, when PromiseResolveThenableJob is being queued up,
      > the `then` method of the thenable should be used to determine the
      > context of the resultant microtask. Doing so aligns with Firefox, and
      > also with the latest HTML spec [2][3].
      > 
      > This change is analogous to CL 1465902, which uses the realm of the
      > reaction handlers to determine the Context PromiseReactionJobs run in.
      > 
      > [1]: https://tc39.es/ecma262/#sec-promiseresolvethenablejob
      > [2]: https://html.spec.whatwg.org/C/#enqueuejob(queuename,-job,-arguments)
      > [3]: https://github.com/whatwg/html/pull/5212
      > 
      > Bug: v8:10200
      > Change-Id: I2312788eeea0f9e870c13cf3cb5730a87d15609e
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071624
      > Commit-Queue: Timothy Gu <timothygu@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Shu-yu Guo <syg@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#66507}
      
      TBR=verwaest@chromium.org,timothygu@chromium.org,syg@chromium.org
      
      Change-Id: I81737750f8b369567ba586c5a2cfb489836b7e74
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10200
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2081091Reviewed-by: 's avatarFrancis McCabe <fgm@chromium.org>
      Commit-Queue: Francis McCabe <fgm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66510}
      7558e182
  9. 28 Feb, 2020 1 commit
  10. 29 Jan, 2020 1 commit