Open GoogleCodeExporter opened 9 years ago
To clarify: Chrome does not match the OS setting and never has. See
https://code.google.com/p/chromium/issues/detail?id=38378.
BUT there is a CEF regression here: CEF scrolls exactly twice as much as
Chromium does. For example:
1. Go to any web page (e.g. http://cefbuilds.com/)
2. Scroll down exactly one mouse wheel "click"
3. Use screenshots to calculate the amount scrolled
Chrome scrolls 100px, while cefclient scrolls 200px. This did not happen back
on the old 1547 branch, so it is definitely a regression -- just not sure how
recent.
In cefclient, sometimes I think I can actually see a repaint in the middle of
the distance -- almost like it's processing two copies of the mouse event in
rapid succession.
Original comment by ytp...@gmail.com
on 5 Jan 2015 at 9:39
I have measured it and can confirm that it is 100px in case of Google Chrome
and 200px in case of CEF.
Original comment by czarek.t...@gmail.com
on 5 Jan 2015 at 10:13
Here's a regression window:
cefclient 3.2171.1875 - bug
cefclient 3.2062.1930 - no bug
So it looks like it broke as soon as the 2171 branch was created.
Original comment by ytp...@gmail.com
on 8 Jan 2015 at 10:32
[deleted comment]
Please note, it shouldn't scroll 100px, or any number of pixels. It should
scroll however many *lines* has been set in the Mouse settings, or scroll by a
whole page if that's been set.
The number of pixels to scroll then, depends on the (root?) font size, screen
pixel density, and zoom.
Original comment by thany81
on 14 Jan 2015 at 9:46
@thany81: I think that's a much bigger request, since Chrome itself does not
implement that behavior. IMHO we should first focus on fixing the regression,
so CEF does not scroll twice as fast as Chrome.
Are you ok with spinning off a new, separate bug / enhancement request about
switching from Chrome's behavior to true line-based scrolling? (Or perhaps even
file a bug on Chromium itself -- though given the bug I linked above, they may
disagree and mark it WONTFIX again).
Original comment by ytp...@gmail.com
on 22 Jan 2015 at 10:54
Did offscreen rendering land between 2062 and 2171? The changes for OSR
(https://code.google.com/p/chromiumembedded/source/detail?r=1751) touch a lot
of code related to mousewheel handling...
Original comment by ytp...@gmail.com
on 22 Jan 2015 at 10:57
I just thought of this: should we also verify the behaviour of scrollwheels
that can tick to the sides? It feels alright, but it'd be nice to keep the two
directions at least vaguely scrolling at the same speed.
@ytp: filed a bug. thanks for the tip.
Original comment by thany81
on 27 Jan 2015 at 8:17
When running cefclient in OSR mode it scrolls fine by 100px:
cefclient --url=http://cefbuilds.com --off-screen-rendering-enabled
Without the off-screen rendering flag it scrolls twice fast by 200px. I've also
tried the cefsimple application and it scrolls by 200px as well.
The only references in source code to mouse wheel scrolling are in
browser_host_impl in methods PlatformTranslateWheelEvent and
SendMouseWheelEvent. These methods are used only by OSR mode in which scrolling
works fine.
I've also tried calling SendMouseWheelEvent() in cefsimple which runs in
windowed mode and the scrolling worked fine, it scrolled by 100px. So when you
call the CEF mouse wheel scrolling functions it works as expected. The issue
seems to be caused by upgrading Chromium from branch 2062 => to 2171.
Tested with CEF 3 branch 2272 revision 1998.
Original comment by czarek.t...@gmail.com
on 29 Jan 2015 at 3:47
@#9: Do you have text or dpi scaling configured on your machine? Try running
with the `--force-device-scale-factor=1` command-line flag to see if that helps
at all. See also
http://www.ubergizmo.com/how-to/how-to-google-chrome-hidpi-support-windows/.
Original comment by magreenb...@gmail.com
on 29 Jan 2015 at 4:05
@#10 magreenb...:
It doesn't matter what are DPI settings, the issue still persists. I have tried
the `--force-device-scale-factor=1` and `--high-dpi-support=1` flags, it didn't
help. I have also tried restoring default DPI settings on my Win7 (text size
150% Larger ==> to 100% smaller), but it also didn't help.
As someone mentioned earlier it looks like the wheel scrolling event occurs
twice in a very fast sequence one after the other. I'm almost sure of that as
when testing on cefbuilds.com you can see the CEF logo image flickering during
scrolling.
I have debugged this further using Window Detective. Attachin screenshot. I
have tested WM_MOUSEWHEEL messages in both cefclient and in Google Chrome.
There are three "Window Messages" windows: the two on the left are for
cefclient (CefBrowserWindow + Chrome_WidgetWin_0), the one on the right is for
Google Chrome (Chrome_Widget_Win_1). You can see that in cefclient the
Chrome_WidgetWin window receives two WM_MOUSEWHEEL events both with delta=-120
(one scroll down event). In Chrome there is only one WM_MOUSEWHEEL event. I
have performed a single wheel scroll in both cefclient and Google Chrome.
Attaching wheel_issue.jpg.
Original comment by czarek.t...@gmail.com
on 29 Jan 2015 at 5:16
Attachments:
I've debugged also CEF 3.2062.1930 in which scrolling works fine. Launched
cefclient. In Window Detective in CefBrowserWindow the two messages are the
same (send message and return value) and in Chrome_WidgetWin I can see only one
WM_MOUSEWHEEL event (post message). In branches 2171 and 2272 in
Chrome_WidgetWin there are three WM_MOUSEWHEEL events (post message, send
message and return value).
Original comment by czarek.t...@gmail.com
on 29 Jan 2015 at 5:38
Attaching a patch against cefclient. This is just a temporary fix, kind of a
hack, for those that need it.
Original comment by czarek.t...@gmail.com
on 30 Jan 2015 at 12:15
Attachments:
This is a Windows-only issue. On Linux scrolling works just fine. The title of
this issue is misleading, as this is not about OS mouse settings, but about
WM_MOUSEWHEEL event being fired twice. This bug was introduced somewhere
between branches 2062..2171. I think there is already enough information
provided for this issue to be accepted.
Original comment by czarek.t...@gmail.com
on 30 Jan 2015 at 12:50
CEF is transitioning from Google Code to Bitbucket project hosting. If you
would like to continue receiving notifications on this issue please add
yourself as a Watcher at the new location:
https://bitbucket.org/chromiumembedded/cef/issue/1481
Original comment by magreenb...@gmail.com
on 14 Mar 2015 at 3:36
Original issue reported on code.google.com by
czarek.t...@gmail.com
on 5 Jan 2015 at 9:29