New issue
Advanced search Search tips

Issue 622887 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

OOPIF: http-to-https-redirect-and-register.html times out with --site-per-process

Project Member Reported by alex...@chromium.org, Jun 23 2016

Issue description

Repro steps:

third_party/WebKit/Tools/Scripts/run-webkit-tests -t gn-debug --additional-driver-flag=--site-per-process http/tests/serviceworker/http-to-https-redirect-and-register.html --driver-logging --full-results-html

After digging into the test, it appears that it's failing because the test incorrectly relies on a couple of events arriving in a certain order, which isn't holding with OOPIFs.  Specifically, the second promise_test adds a cross-origin iframe, which registers a ServiceWorker.  When that registration finishes, a postMessage is sent to the parent frame.  Meanwhile, the parent frame waits for the frame's onload to fire, then installs an onmessage handler which will finish the test upon receiving a message.  With --site-per-process, the ServiceWorker registration postMessage arrives before the onload fires, and since there's no onmessage handler registered yet, we lose that message.

To sum up, this seems to be a test issue that can be fixed with some reordering in the test logic.
 
Cc: -alex...@chromium.org
Owner: alex...@chromium.org
Status: Started (was: Available)
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/033dafcf829151ce612ed36460049e0a282fbf38

commit 033dafcf829151ce612ed36460049e0a282fbf38
Author: alexmos <alexmos@chromium.org>
Date: Fri Jun 24 17:47:45 2016

Fix http-to-https-redirect-and-register.html for --site-per-process.

The test was assuming that the onload callback would be dispatched
before the postMessage from SW registration, which wasn't happening
when the frame in the second promise_test was an OOPIF.  This CL
changes the onload and postMessage handlers to be independent of
ordering.  See bug for more details.

BUG= 622887 

Review-Url: https://codereview.chromium.org/2092953003
Cr-Commit-Position: refs/heads/master@{#401900}

[modify] https://crrev.com/033dafcf829151ce612ed36460049e0a282fbf38/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process
[modify] https://crrev.com/033dafcf829151ce612ed36460049e0a282fbf38/third_party/WebKit/LayoutTests/http/tests/serviceworker/http-to-https-redirect-and-register.html

Status: Fixed (was: Started)

Sign in to add a comment