Revision 03b7db51f21ce2a157454020bb46301b825152a5 authored by Alex Moshchuk on 13 April 2018, 23:12:06 UTC, committed by Chromium WPT Sync on 13 April 2018, 23:12:06 UTC
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
Tbr: dcheng@chromium.org
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-Original-Commit-Position: refs/heads/master@{#550284}
Reviewed-on: https://chromium-review.googlesource.com/1011287
Cr-Original-Commit-Position: refs/heads/master@{#550621}
Reviewed-on: https://chromium-review.googlesource.com/1012472
Cr-Commit-Position: refs/heads/master@{#550769}
1 parent ae86013
Raw File
README.md
The `import` directory contains tests imported from the [SVG 1.1 Second
Edition test suite](http://www.w3.org/Graphics/SVG/Test/20110816/),
with tests renamed to contain `-manual` in their name.  These tests need
review to verify that they are still correct for the latest version of
SVG (which at the time of writing is [SVG 2](https://svgwg.org/svg2-draft/))
and then need to be converted to reftests or testharness.js-based
tests.

The SVG 1.1 test suite came with [reference
PNGs](http://dev.w3.org/SVG/profiles/1.1F2/test/png/) for each test,
which, while not suitable as exact reftest reference files, at least
give a rough indication of what the test should look like.  For some
tests, such as those involving filters, the test pass criteria are
written with reference to the PNGs.  When converting the tests to
reftests or testharness.js-based tests, you might want to consult the
reference PNG.

Tests should be placed in a directory named after the SVG 2 chapter name
(for example in the `shapes/` directory for Basic Shapes chapter tests).
Scripted tests should be placed under a `scripted/` subdirectory and
reftests under a `reftests/` subdirectory, within the chapter directory.
Filenames for tests of DOM methods and properties should start with
*InterfaceName*.*methodOrPropertyName*, such as
`types/scripted/SVGElement.ownerSVGElement-01.html`.

Direct questions about the imported SVG 1.1 tests to
[Cameron McCormack](mailto:cam@mcc.id.au).
back to top