Closed Bug 1454091 Opened 2 years ago Closed 2 years ago

[wpt-sync] Sync PR 10467 - Reland 2: Use PostTask to schedule cross-process postMessage forwarding.

Categories

(Core :: DOM: Security, enhancement, P4)

enhancement

Tracking

()

RESOLVED FIXED
mozilla61
Tracking Status
firefox61 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream][domsecurity-backlog])

Sync web-platform-tests PR 10467 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/w3c/web-platform-tests/pull/10467
Details from upstream follow.

Alex Moshchuk <alexmos@chromium.org> wrote:
>  Reland 2: Use PostTask to schedule cross-process postMessage forwarding.
>  
>  Changes from first reland attempt at https://crrev.com/c/1011287:
>  - fix an additional source of flakiness in ChromeOS login tests
>  
>  Changes from original attempt at https://crrev.com/c/999182:
>  - fix flakiness in two additional ChromeOS login tests
>  - fix CSP WPT tests to not depend on ordering between iframe's onload
>    and postMessage - see https://crbug.com/832319.
>  
>  Previously, we sent the IPC to forward a cross-process postMessage
>  immediately.  This caused a behavioral difference from the
>  same-process case where the postMessage is always scheduled.  Namely,
>  in a scenario like this:
>  
>    frame.postMessage(...);
>    doSomethingThatSendsIPCsToFrame(frame);
>  
>  the IPCs from JS following the postMessage would've been ordered
>  incorrectly, causing |frame| to see their side effects after the
>  postMessage dispatch in the cross-process case, whereas they would be
>  seen before the postMessage dispatch in the same-process case.  One
>  example of this is frame.focus(), and another is a frame element
>  onload event (dispatched via FrameHostMsg_DispatchLoad) arriving after
>  a postMessage dispatched from an inline script while the frame was
>  still loading.
>  
>  To resolve these ordering concerns, this CL changes cross-process
>  postMessage to do a PostTask on the sender side before sending the
>  message to the browser process.  This improves the current state of
>  the world, but does not yet achieve a perfect match for the IPC
>  ordering in the same-process case - see discussion on the bug.
>  
>  Bug: 828529
>  Change-Id: If2cc6591db31471adff0d84ec0b689905e21cdf1
>  Reviewed-on: https://chromium-review.googlesource.com/999182
>  Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
>  Reviewed-by: Daniel Cheng <dcheng@chromium.org>
>  Commit-Queue: Alex Moshchuk <alexmos@chromium.org>
>  Cr-Original-Commit-Position: refs/heads/master@{#550284}
>  Reviewed-on: https://chromium-review.googlesource.com/1011287
>  Cr-Commit-Position: refs/heads/master@{#550621}
>  Reviewed-on: https://chromium-review.googlesource.com/1012472
>  WPT-Export-Revision: b5e90721cd67e6be343c2599d4e63b1ca1c25a46
Component: web-platform-tests → DOM: Security
Product: Testing → Core
Whiteboard: [wptsync downstream] → [wptsync downstream][domsecurity-backlog]
Ran 16 tests and 225 subtests
OK     : 16
PASS   : 143
FAIL   : 82
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/1679673e1d64
[wpt PR 10467] - Reland 2: Use PostTask to schedule cross-process postMessage forwarding., a=testonly
https://hg.mozilla.org/mozilla-central/rev/1679673e1d64
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
You need to log in before you can comment on or make changes to this bug.