Regression : Color Picker window is seen blank |
|||||||
Issue descriptionVersion: 54.0.2806.0 OS: Ubuntu 14.04 What steps will reproduce the problem? (1)Launch chrome -> Go to chrome://apps page (2)Now press F12 to open Dev tools window -> In Elements section open color picker window and observe (please refer Video) Expected:Color Picker window should not be seen blank Actual: Instead Color Picker window is seen blank This is Regression Issue broken in M-54 will provide Bisect info soon
,
Jul 25 2016
Note: 1.Will update win behavior soon 2.Attaching Expected Video for reference Manual good and Bad Builds: Good Build: 54.0.2804.0 Bad Build: 54.0.2805.0 Below is the Tool Bisect Info: CHANGELOG URL: https://chromium.googlesource.com/chromium/src/+log/59441af612e4c6922a412b22a783cf8cae3cdcf6..4b34e4b56319572e06425dd77e4d3b30d86ce049 Suspecting https://codereview.chromium.org/2168223002 from changelog @pfeldman : Please feel free to re-assign if its not related to your change
,
Jul 25 2016
Issue is seen on Windows OS also
,
Jul 25 2016
Adding Beta Blocker as this is a Recent Regression on M54. Please feel free to remove if not required
,
Jul 25 2016
,
Jul 25 2016
Can repro on Windows version 54.0.2805.0 canary, I can work on this issue.
,
Jul 27 2016
After having a deep investigation, I found this bug have existed before the commit https://codereview.chromium.org/2168223002. But not being exposed. The root case is: In function "reposition" of SwatchPopoverHelper, "showView" of Popover is called (https://cs.chromium.org/chromium/src/third_party/WebKit/Source/devtools/front_end/ui/SwatchPopoverHelper.js?q=SwatchPopoverHelper.js&sq=package:chromium&dr&l=73). So, when we want to re-position the widget, the "showView" is executed more then one time. I am planning to prepare 2 CLs to solve this problem. (1) ensure we can only call the show function once (https://codereview.chromium.org/2186833002). (2) add a new function to do the reposition, like the Dialog.js does.(https://cs.chromium.org/chromium/src/third_party/WebKit/Source/devtools/front_end/ui/Dialog.js?q=Dialog.js&sq=package:chromium&dr&l=118) pfeldman@ what's your opinion? thanks!
,
Jul 27 2016
,
Jul 28 2016
I noticed a CL was landed (https://codereview.chromium.org/2180853003), but it leads to another issue 631890 . The root cause of these two issues (630920&631890) is that the Popover is to be shown more then one time. At the current logic, the previous Popover will be hidden first, then to show the new one, which means the previous one will be removed from the DOM tree directly without being notified (actually, the widget is the content of the popover, please seehttps://cs.chromium.org/chromium/src/third_party/WebKit/Source/devtools/front_end/ui/Popover.js?sq=package:chromium&dr&l=107). If these two popovers are different, everything is OK. But when the two popovers are exact the same one, the this._visible of this widget goes wrong. Even now we reparent the widget, that what the cl 2180853003 does, the status here (https://cs.chromium.org/chromium/src/third_party/WebKit/Source/devtools/front_end/ui/Widget.js?sq=package:chromium&dr&l=259) is still wrong. After being hidden, the this._visible should equal to "false", but the real value is "true", which results that this._processWillShow()&this._processWasShown() are never called. The key is that we must call "hide()" of the Widget, if we want to hide it. We MUST prevent a widget from being removed directly, like this bug. My solution is simply and followed this principle. If the "show()" is called again when the widget is sill visible, just return. I think this behavior is reasonable and general. Please view the CL at https://codereview.chromium.org/2186833002 P.S. Another solution is that when the popover is being hidden, just call the content widget's hide method (we must keep a handle of the content widget), this will correct the internal visibility property in time.
,
Jul 28 2016
,
Aug 1 2016
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by durga.behera@chromium.org
, Jul 25 2016