When we run multiple picture-in-picture layout test cases simultaneously, they will interfere with each other because they share the PiP implementation in AVKit/CoreMedia. We need to update the test runner to support running them simultaneously. This issue impacts following layout test cases: media/picture-in-picture-api-enter-pip-4.html media/picture-in-picture-api-exit-pip-1.html media/picture-in-picture-api-pip-events.html media/picture-in-picture-api-pip-window.html media/picture-in-picture-interruption.html
I think what this comes down to is that these tests should be API tests, not layout tests. Layout tests MUST be able to be run in parallel, we don't have that same limitation on API tests. Unless you want to have a sort of mock PiP implementation (which seems complicated and messy) I think the answer here is API tests.
API tests are necessary but not sufficient. It's a well accepted practice to include "mock" implementations of platform features in order to 1) test the WebCore implementation of specifications even on systems where there is no platform support for those features, and 2) be able to control the simulated platform feature from the test itself. On the other hand, the API tests can indeed test the end-to-end implementation of a feature all the way from the platform up to the chrome, and we should also have API tests for Picture-in-Picture. But a "mock" for pip is still a good idea.
<rdar://problem/56754650>
Created attachment 382548 [details] Patch
Comment on attachment 382548 [details] Patch Clearing flags on attachment: 382548 Committed r251920: <https://trac.webkit.org/changeset/251920>
All reviewed patches have been landed. Closing bug.