New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 591500 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug

Blocking:
issue 636053



Sign in to add a comment

Windows 10 print tests failing

Project Member Reported by chrishtr@chromium.org, Mar 2 2016

Issue description

virtual/threaded/printing/ellipsis-printing-style.html
printing/ellipsis-printing-style.html [ Skip ]
printing/iframe-print.html
virtual/threaded/printing/iframe-print.html
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 2 2016

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

commit 063be11909af7bd64a575259b5ff01eb0686e287
Author: chrishtr <chrishtr@chromium.org>
Date: Wed Mar 02 23:18:23 2016

Mark printing tests failing on Windows 10

BUG=591500
TBR=wkorman@chromium.org

Review URL: https://codereview.chromium.org/1761613002

Cr-Commit-Position: refs/heads/master@{#378871}

[modify] https://crrev.com/063be11909af7bd64a575259b5ff01eb0686e287/third_party/WebKit/LayoutTests/TestExpectations

Comment 2 by grt@chromium.org, Mar 30 2016

Components: Blink>LayoutTests
Labels: OS-Windows
Status: Untriaged (was: Available)
The following layout tests are failing on Windows

printing/forced-break-tree-dump-only.html
printing/page-count-relayout-shrink.html
virtual/threaded/printing/page-count-relayout-shrink.html
virtual/threaded/printing/forced-break-tree-dump-only.html

Comment 3 Deleted

Components: Internals>Printing
Uh, there's no context for this bug. Did they just fail out of the blue? Which bot was this on?

Comment 6 by sshru...@google.com, May 18 2016

Labels: Test-Layout

Comment 7 by sshru...@google.com, May 18 2016

Components: -Blink>LayoutTests
Deprecating component:Blink>LayoutTests, to use label Test=Layout instead.
Cc: wangxianzhu@chromium.org
 Issue 614917  has been merged into this issue.
There seem no actual pixel results:

https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Win10/10591/layout-test-results/results.html

This seems a printing-specific issue on Win10, because other pixel failures have actual pixel results.

Anything special about printing on Win10?
The failure of printing/webgl-repeated-printing.html looks more interesting:

    testRunner.capturePixelsAsyncThen(completionCallback);

The callback is called but with an empty pixel array, so the test fails with the following output:

TEST COMPLETE
Test 0: canvas should be green
FAIL pixel[0] should be of type number but was of type undefined
FAIL pixel[1] should be of type number but was of type undefined
FAIL pixel[2] should be of type number but was of type undefined
Test 1: canvas should be red
FAIL pixel[0] should be of type number but was of type undefined
FAIL pixel[1] should be of type number but was of type undefined
FAIL pixel[2] should be of type number but was of type undefined
Test 2: canvas should be blue
FAIL pixel[0] should be of type number but was of type undefined
FAIL pixel[1] should be of type number but was of type undefined
FAIL pixel[2] should be of type number but was of type undefined

Update:
    testRunner.capturePixelsAsyncThen(completionCallback);

The callback is called but with an empty pixel array, and both width and height are all zero.
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 1 2016

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

commit db7c9d01048c1d6c9dcc1010027a04535beffa59
Author: Xianzhu Wang <wangxianzhu@chromium.org>
Date: Wed Jun 01 01:06:02 2016

Change bug number of Win10 printing failures to crbug.com/591500

BUG=591500, 521730 
TBR=wangxianzhu@chromium.org

Review URL: https://codereview.chromium.org/2025833003 .

Cr-Commit-Position: refs/heads/master@{#397009}

[modify] https://crrev.com/db7c9d01048c1d6c9dcc1010027a04535beffa59/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 1 2016

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

commit 9c2ff364d7ba6128590f3502520ecc51302170a9
Author: Xianzhu Wang <wangxianzhu@chromium.org>
Date: Wed Jun 01 05:58:07 2016

Mark compositing/squashing/squashing-print.html Failure on Win10

BUG=591500
TBR=wangxianzhu@chromium.org

Review URL: https://codereview.chromium.org/2027903002 .

Cr-Commit-Position: refs/heads/master@{#397070}

[modify] https://crrev.com/9c2ff364d7ba6128590f3502520ecc51302170a9/third_party/WebKit/LayoutTests/TestExpectations

Owner: forshaw@chromium.org
Status: Assigned (was: Untriaged)
I suspect that we fail to create BitmapPlatformDevice in non-win32 path in bitmap_platform_device_win.cc for printing tests.

forshaw@ can you take a look?


I don't have an easy way to verify the failures atm, need to sort out a gWindows 10 machine so I can develop on it. However I can say that I wouldn't expect the non-win32 path to be running within the WebKit layout tests. That code path should only be taken if the win32k lockdown policy is enabled and I'd assume that it isn't enabled on these tests. If it was I'd expect it to be failing on Win8.X as well.

If you can find me more information to confirm that's what's failing I'll try and take a look.
Thanks for the information.

Hopefully https://codereview.chromium.org/2025373002/ will provide more information about the failures after landed. As it's very simple, can you review it and I'll list the owners in TBR and land it.

According to https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/win.py&q=win.py&sq=package:chromium&l=1 we treat all windows versions 8, 8.1, 10 and future as win10.

Do the tests fail on win8?
With the patch, the tests produced outputs like the following, indicating that the non-win32 path is used and failed:

[5344:4896:0602/120146:1832359:ERROR:bitmap_platform_device_win.cc(180)] MapViewOfFile failed
[5344:4896:0602/120146:1832359:ERROR:pixel_dump.cc(101)] Failed to create canvas width=800 height=600

https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Win10/10876/layout-test-results/results.html

Very odd, I wouldn't have expected it to take that path in content_shell, if it is doing then I'd expect other things to be failing, regardless of whether that branch was there. The only place I could immediately see which might cause issues is in NativeThemeWin::PaintIndirect (https://code.google.com/p/chromium/codesearch#chromium/src/ui/native_theme/native_theme_win.cc&l=680). That's passing NULL to as the section handle, which would cause MapViewOfFile to fail. But if that was the problem code then non of the following GDI code would work either.

I'll try and dig into it later.
FYI, in content_shell, CapturePixelsForPrinting() (https://code.google.com/p/chromium/codesearch#chromium/src/components/test_runner/pixel_dump.cc&l=98) calls skia::TryCreateBitmapCanvas() which calls CreatePlatformCanvas() with 0 value for the 4th parameter on all platforms. The parameter is shared_section on Windows.
Okay that would definitely explain the reason for the failure. Guess it's running in a renderer sandbox which turns on win32k lockdown by default. Probably the easiest approach would be to modify bitmap_platform_device_win.cc to create a new shared section, or just allocate the buffer from the heap. I'm guessing these tests have never been run in debug mode otherwise the DCHECK should have kicked in.
Cc: tomhud...@chromium.org
BitmapPlatformDevice is (slowly) being removed from the codebase.
Please keep me in the loop on any changes there so I can make sure the replacement abstractions also support them.

Components: Internals>Skia
Cc: robho...@gmail.com
 Issue 618082  has been merged into this issue.
Blocking: 636053
Cc: fmalita@chromium.org
+Florin in case this doesn't get resolved in the next month.

I don't think you can create the canvas straightforwardly on the heap, because this needs to be a PlatformCanvas - for Windows, one backed by GDI.

Since we're deprecating BitmapPlatformDevice, any significant change to that is not likely to get OWNERS approval.

Unfortunately the call is from components/test_runner/pixel_dump.cc, which doesn't seem to have any platform-specific code. It also shouldn't be including skia/ext/, according to comments - that's a layering violation. For now I don't know any way around the layering issue.

Perhaps we can have an alternate skia::TryCreateBitmapCanvas()-like call which creates the shared section; that'd probably work even before we land the new allocators.

Project Member

Comment 28 by bugdroid1@chromium.org, Nov 2 2016

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

commit b0b38137804a4f799ec31f34ee3cc1b59b553ae5
Author: qyearsley <qyearsley@chromium.org>
Date: Wed Nov 02 17:40:03 2016

Disallow [ Missing ] expectations in test expectations files.

Reason: In general, cases where people would need to add Missing expectations should probably be handled generating/fetching new baselines, or adding NeedsRebaseline or NeedsManualRebaseline expectations.

This CL also removes "failures/expected/missing_*" tests that are added in layout_tests/port/test.py.

BUG= 661215 ,591500

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

[modify] https://crrev.com/b0b38137804a4f799ec31f34ee3cc1b59b553ae5/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/b0b38137804a4f799ec31f34ee3cc1b59b553ae5/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py
[modify] https://crrev.com/b0b38137804a4f799ec31f34ee3cc1b59b553ae5/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py
[modify] https://crrev.com/b0b38137804a4f799ec31f34ee3cc1b59b553ae5/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/base.py
[modify] https://crrev.com/b0b38137804a4f799ec31f34ee3cc1b59b553ae5/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py
[modify] https://crrev.com/b0b38137804a4f799ec31f34ee3cc1b59b553ae5/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/test.py
[modify] https://crrev.com/b0b38137804a4f799ec31f34ee3cc1b59b553ae5/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py
[modify] https://crrev.com/b0b38137804a4f799ec31f34ee3cc1b59b553ae5/third_party/WebKit/Tools/Scripts/webkitpy/style/checkers/test_expectations_unittest.py

Project Member

Comment 30 by bugdroid1@chromium.org, Oct 31

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

commit a40bf9236377fc8caa9c8f0ef5e82dbde7dd09e9
Author: Morten Stenshorne <mstensho@chromium.org>
Date: Wed Oct 31 17:59:18 2018

Rebaseline printing/iframe-print.html and remove failure expectations.

It used to fail on Windows. The rebaseline tool shuffled expectations
around quite a bit (I expected only Windows to change), but I guess
that's right.

Bug: 591500,  900469 
Change-Id: Id894f5637a52b9623990b7a618447490c80d137a
Reviewed-on: https://chromium-review.googlesource.com/c/1309653
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604327}
[modify] https://crrev.com/a40bf9236377fc8caa9c8f0ef5e82dbde7dd09e9/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/a40bf9236377fc8caa9c8f0ef5e82dbde7dd09e9/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng_experimental/printing/iframe-print-expected.png
[rename] https://crrev.com/a40bf9236377fc8caa9c8f0ef5e82dbde7dd09e9/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/layout_ng_experimental/printing/iframe-print-expected.png
[delete] https://crrev.com/4b9bcd702e865b76d5ed453dd8d9aa73479288eb/third_party/WebKit/LayoutTests/platform/mac/virtual/threaded/printing/iframe-print-expected.png
[delete] https://crrev.com/4b9bcd702e865b76d5ed453dd8d9aa73479288eb/third_party/WebKit/LayoutTests/platform/win/printing/iframe-print-expected.png
[add] https://crrev.com/a40bf9236377fc8caa9c8f0ef5e82dbde7dd09e9/third_party/WebKit/LayoutTests/platform/win7/virtual/layout_ng_experimental/printing/iframe-print-expected.png

Project Member

Comment 31 by bugdroid1@chromium.org, Oct 31

Sign in to add a comment