JDK-8168887 : [WebView] ComboBox and DropDownList - Render fragments of the scrollbar are visible
  • Type: Bug
  • Component: javafx
  • Sub-Component: web
  • Affected Version: 8u102,9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: os_x,windows
  • CPU: generic
  • Submitted: 2016-10-25
  • Updated: 2020-01-31
  • Resolved: 2016-12-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u152Fixed 9Fixed
Related Reports
Duplicate :  
Relates :  
Description
FULL PRODUCT VERSION :


A DESCRIPTION OF THE PROBLEM :
A huge number of web pages use Teleriks Kendo UI (http://www.telerik.com/kendo-ui) and we recognized JavaFX's WebKit version has problems with the ComboBox and DropDownList control.

DropDownList-Screenshot:
https://drive.google.com/open?id=0B7P_rknS1TWxU1ZncWo2X19IX0U

ComboBox-Screenshot:
https://drive.google.com/open?id=0B7P_rknS1TWxQW16bm9UNUpfMHM

We've created a jsbin which helps you to reproduce that issue:
https://output.jsbin.com/rexufa

-) No render fragments are visible on Apple's safari browser.
window.navigator appVersion:
5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebkit/600.5.17 (KHTML, like Gecko) Version/8.0.5 Safari/600.5.17

-) REGRESSSION: No render fragments in case of JRE  8u101

REGRESSION.  Last worked in version 8u101

ADDITIONAL REGRESSION INFORMATION: 
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Open the following URL by using JavaFX's webview:
https://output.jsbin.com/rexufa

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No render fragments
ACTUAL -
render fragments of the scrollbar are visible if the user opens or closes a combobox/DropDownList

REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
No workaround found


Comments
changeset: e12af69465c2 user: arajkumar date: Wed Dec 21 20:06:51 2016 +0530 description: 8168887: [WebView] ComboBox and DropDownList - Render fragments of the scrollbar are visible Reviewed-by: ghb, mbilla URL: http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/e12af69465c2
21-12-2016

+1
21-12-2016

[~mbilla], Thanks. Since theme and widget are Java Objects, it's toString() method will have information about it's classname. I feel it will look redundant.
21-12-2016

+1 with nit: if (log.isLoggable(Level.FINE)) { log.fine(String.format("drawScrollbar(%s, %s, x = %d, y = %d)", theme, widget, x, y)); } you can also print theme and widget as drawScrollbar(theme = %s, widget = %s, x = %d, y = %d)", theme, widget, x, y)); //similar to drawString method
21-12-2016

+1
21-12-2016

Analysis: ScrollBarWidget is a custom widget created for WebKit, it's lifecycle is completely managed by WebKit. At the time of painting, ScrollBarWidget's (type of Region) peer(NGRegion) will be called to render itself into the given Graphics context(created for WebKit). During the problematic scenario we could see two ScrollBarWidget "track" parts(normal and mirrored). It is due to some unintended Graphics state been propagated to ScrollBarWidget drawing. Solution: Like other widget drawing, ScrollBarWidget's drawing also need to be wrapped inside WCGraphicsContextPrism.Composite helper to set proper state to the Graphics context before drawing it. There was a similar bug existed for other widgets, it is been fixed by JDK-8115632. Why it is not visible with Accelerated Composition? With AC, ScrollBarWidget will get it's own Graphics context and it will be in clean state. Solution: http://cr.openjdk.java.net/~arajkumar/8168887/webrev
20-12-2016

Not reproducible with -Dprism.order=sw.
19-12-2016

The commit http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b9019cf78774 is causing this regression, due to disabling of accelerated compositing (done as part of JDK-8148129) When i enabled the accelerated compositing , scrollbar is visible properly. As mentioned in the bug JDK-8148129, below 2 links are not working properly when enabled accelerated compositing. https://webkit.org/blog-files/leaves/ http://oracle.com
31-10-2016

Thanks Abhijit,. So this issue is a regression introduced between 8u102 b00 and b01.
28-10-2016

Verified this issue against 8,8u101,8u102,8u112,9ea on Windows,Linux,MacOS and could reproduce the issue with 8u102 and onwards on windows 7 and MacOS, but could not on Linux. Steps to reporudce: ************************* - Run the attached test application(WebViewDemo.java) with JDK. Result: ********* OS : Windows 7 64 bit [Version 6.1.7601], macOS Sierra version 10.12 [Mac mini(Late 2014)] JDK: 8u b132 : Pass 8u101 b13 : Pass 8u76 b04 : Pass [equvalent to 8u012 b00] 8u102 b01 : Fail <<========= Introduced version and build 9ea+133 : Fail OS : Linux (Ubuntu 14.04 LTS) JDK: 8u b132 : Pass 8u76 b04 : Pass 8u101 b13 : Pass 8u102 b01 : Pass 9ea+135 : Pass =======================================================================
28-10-2016