Closed Bug 1453952 Opened 6 years ago Closed 6 years ago

[wpt-sync] Sync PR 10456 - Reland: 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 10456 into mozilla-central (this bug is closed when the sync is complete).

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

Alex Moshchuk <alexmos@chromium.org> wrote:
>  Reland: Use PostTask to schedule cross-process postMessage forwarding.
>  
>  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: I62a627c501526d09900be4f5bd2c899acf4d1e07
>  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-Commit-Position: refs/heads/master@{#550284}
>  Reviewed-on: https://chromium-review.googlesource.com/1011287
>  WPT-Export-Revision: 55cade9ddbf9ec079503bb9f66c62320e2972ff3
Component: web-platform-tests → DOM: Security
Product: Testing → Core
Ran 16 tests and 225 subtests
OK     : 16
PASS   : 143
FAIL   : 82
Whiteboard: [wptsync downstream] → [wptsync downstream][domsecurity-backlog]
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/8fee71d39390
[wpt PR 10456] - Reland: Use PostTask to schedule cross-process postMessage forwarding., a=testonly
https://hg.mozilla.org/mozilla-central/rev/8fee71d39390
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
You need to log in before you can comment on or make changes to this bug.