New issue
Advanced search Search tips

Issue 742670 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 3
Type: Bug-Regression



Sign in to add a comment

Layout test plugins/iframe-plugin-bgcolor.html is flaky on Win and Mac

Project Member Reported by alancutter@chromium.org, Jul 14 2017

Issue description

plugins/iframe-plugin-bgcolor.html flaky on chromium.webkit/WebKit Mac10.11 (dbg)

Builders failed on: 
- WebKit Mac10.11 (dbg): 

First flake: https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.12/builds/4421

Suspecting:
https://chromium.googlesource.com/chromium/src/+/8c78e51eefd44cc3514c50fce94d180df184fea9
 
Screenshot from 2017-07-14 11:42:26.png
56.0 KB View Download
Components: -Internals>GPU Internals>Plugins
Labels: OS-Mac
Owner: thakis@chromium.org
Looking closer at the error it's probably unrelated to GPU.
This test flakily doesn't log the following console error on Mac.

--- /b/rr/tmpQay1AL/w/layout-test-results/plugins/iframe-plugin-bgcolor-expected.txt
+++ /b/rr/tmpQay1AL/w/layout-test-results/plugins/iframe-plugin-bgcolor-actual.txt
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: Blink Test Plugin: initializing
 layer at (0,0) size 800x600
   LayoutView at (0,0) size 800x600
 layer at (0,0) size 800x170

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 14 2017

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

commit d1b316449804b72b5084b8f26d7f413d42558227
Author: Alan Cutter <alancutter@chromium.org>
Date: Fri Jul 14 04:56:48 2017

Mark plugins/iframe-plugin-bgcolor.html as flaky on Mac

TBR: thakis@chromium.org
Bug: 742670
Change-Id: I3e6bfb0d990f36c5643f3f766d63a0dae0c243c3
Reviewed-on: https://chromium-review.googlesource.com/571538
Reviewed-by: Alan Cutter <alancutter@chromium.org>
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486679}
[modify] https://crrev.com/d1b316449804b72b5084b8f26d7f413d42558227/third_party/WebKit/LayoutTests/TestExpectations

Comment 4 by thakis@chromium.org, Jul 14 2017

Owner: alancutter@chromium.org
I don't know anything about this test.
Cc: qyears...@chromium.org dcheng@chromium.org
Labels: Pri-3 Type-Bug-Regression
Owner: ----
Status: Available (was: Assigned)
I think thakis@ was added based on blame lines in the file, but that was from 2011. I suspect that alancutter won't be looking at this.

dcheng, do you know who might be good to look at flaky layout test?
Cc: joelhockey@chromium.org
Labels: -Sheriff-Chromium Test-Layout OS-Windows
Summary: Layout test plugins/iframe-plugin-bgcolor.html is flaky on Win and Mac (was: plugins/iframe-plugin-bgcolor.html flaky on chromium.webkit/WebKit Mac10.11 (dbg))
Specifically what's happening with this test is that usually the plugin iframe bg color is dark gray, and sometimes it's black.

https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Win7/53916/layout-test-results/plugins/iframe-plugin-bgcolor-expected.png

https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Win7/53916/layout-test-results/plugins/iframe-plugin-bgcolor-actual.png

The reason why it's supposed to be gray is because of a line that thakis added in 2011, but there hasn't been much change to WebKit/core/html/PluginDocument.cpp since then.

Taking this off Sheriff queue since there's nothing immediately to do here. Maybe the flakiness is some sort of timing issue where the background color hasn't been applied when the test is considered done sometimes?

+CC joelhocky since Joel recently worked on the plugin-related code and might know someone who might be interested in investigating this?

Comment 7 by dcheng@chromium.org, Jul 17 2017

Owner: dcheng@chromium.org
Status: Assigned (was: Available)
This definitely didn't use to be flaky. I'll try to take a look after branch point.
Cc: noel@chromium.org
Adding in Noel, who I believe first wrote this test.
Cc: -noel@chromium.org
Sorry Noel, I was thinking of the no-focus-ring-embed test that you wrote.  This is unrelated.

Comment 10 by noel@chromium.org, Jul 18 2017

Same problem reported in  issue 736333  (but for Win) by the looks.

#2 -CONSOLE MESSAGE: Blink Test Plugin: initializing,

It's like the plugin is not loaded when the test ends.

Comment 11 Deleted

I have been able to replicate the flaky behavior going back to early May.  (I can't get 'gclient sync' to work earlier than that).  I don't think anything has changed recently in the plugin, or paint code to cause these flakes.  I'm surprised this test did not show up as flaky years ago, or at least since the test changed to use blink-test-plugin.  I suspect that we are currently seeing flakes due to this test taking longer to run, possibly when layout tests started to be sharded.

When a plugin loads as an iframe, as per this test, it appears that the following things happen:

1/ The background color of the iframe is set.  PluginDocument.cpp sets this to rgb(38,38,38).
2/ The plugin loads and sets the background to black.
3/ The plugin paints a checkerboard pattern.

It seems that the test has been relying on the test completing at step 1.  In the flaky failures, we see examples of both 2 and 3.

I am able to replicate the flaky behavior by running the single layout test to see the failures and running the test as part of all 'plugin' tests where it succeeds.  I get this on HEAD and also on code going back to start of May.

failure when run as single test:
third_party/WebKit/Tools/Scripts/run-webkit-tests -t Default third_party/WebKit/LayoutTests/plugins/iframe-plugin-bgcolor.html

success when run with all 75 plugin tests:
third_party/WebKit/Tools/Scripts/run-webkit-tests -t Default pluginsthird_party/WebKit/LayoutTests/plugins

I think that if we want to get this test working, then we need to change the blink-test-plugin to have some transparency rather than total checkerboard pattern, and then change the test to always wait for the plugin to load and paint completely.
Thanks joelhockey@ for looking into this!

In order to control the time when the test finishes, one approach used by some tests is to use testRunner.waitUntilDone() and testRunner.notifyDone(). If there's some event that we can wait for that indicates the plugin is finished initializing, then this could be added.

Example test that uses notifyDone:

https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/fast/loader/stateobjects/popstate-after-load-complete-addeventlistener.html
The test plugin's code is in https://cs.chromium.org/chromium/src/ppapi/tests/blink_test_plugin.cc?type=cs&q=blink_test_plugin&sq=package:chromium&l=135 -- we could certainly make it paint transparently.

Detecting the paint is a bit harder. As the <iframe> itself is a plugin document in this test case, we can't use the post message hooks that the plugin itself exposes (IIRC, it post messages to the <embed> element, and there's no reachable embed element in this case--it's internal to the special PluginDocument).

Traditionally, we've used startAfterLoadAndFinish() as a hack instead, relying on internal implementation details so that we can assume we painted.


Cc: japhet@chromium.org
 Issue 736333  has been merged into this issue.
Project Member

Comment 16 by bugdroid1@chromium.org, Dec 19

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

commit 825926d301743f87f66b3dc5884d084a9b52e3d1
Author: Xianzhu Wang <wangxianzhu@chromium.org>
Date: Wed Dec 19 22:01:39 2018

Update test expectations of several plugin tests

- plugins/mouse-click-plugin-clears-selection.html
  combine the platform entries.
- plugins/iframe-plugin-bgcolor.html
  combine the platform entries and use the correct bug number.
- plugins/fullscreen-plugins-dont-reload.html
  unskip to ensure test coverage, and add entry in LeakTests

TBR=kpaulhamus@chromium.org,dcheng@chromium.org

Bug:  838354 ,676229,742670
Change-Id: I9d3fc173d02c2f2835a633e2984b7588f40b2ec7
Reviewed-on: https://chromium-review.googlesource.com/c/1385014
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Kim Paulhamus <kpaulhamus@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617971}
[modify] https://crrev.com/825926d301743f87f66b3dc5884d084a9b52e3d1/third_party/blink/web_tests/LeakExpectations
[modify] https://crrev.com/825926d301743f87f66b3dc5884d084a9b52e3d1/third_party/blink/web_tests/TestExpectations

Sign in to add a comment