Bug 193380 - [GTK][STABLE] Build fails with OpenGL disabled due to missing PlatformWheelEvent::isEndOfNonMomentumScroll()
Summary: [GTK][STABLE] Build fails with OpenGL disabled due to missing PlatformWheelEv...
Status: RESOLVED CONFIGURATION CHANGED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: Other
Hardware: Unspecified Linux
: P2 Normal
Assignee: Adrian Perez
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-01-12 07:50 PST by Adrian Perez
Modified: 2019-12-19 01:07 PST (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adrian Perez 2019-01-12 07:50:08 PST
This issue has been found by the Buildroot autobuild infrastructure,
the relevant part of the build log is copied below; the complete build
configuration can be found at:

  http://autobuild.buildroot.net/results/dd89d219efb711ecaa71a268bd6b36b06b035c80

The issue here is that OpenGL support is disabled at build time (not how
the config file has both BR2_PACKAGE_LIBGTK3_X11 and BR2_PACKAGE_HAS_LIBGLES
disabled, which results in -DENABLE_OPENGL=OFF and -DENABLE_GLES2=OFF being
passed to CMake.

This results in ENABLE_ASYNC_SCROLLING being disabled, due to this bit in
Source/cmake/OptionsGTK.cmake:

   WEBKIT_OPTION_DEPEND(ENABLE_ASYNC_SCROLLING ENABLE_OPENGL)

Then, in Source/WebCore/platform/PlatformWheelEvent.h the declaration for
the isEndOfNonMomentumScroll() method is guarded with ENABLE(ASYNC_SCROLLING)
but the actual implementation is guarded with PLATFORM(GTK) — resulting in
the error below due to the missing declaration.

WebKitGTK+ version 2.22.5 is affected, but the issue seems to be solved
in trunk.

----

In file included from /home/buildroot/autobuild/run/instance-2/output/build/webkitgtk-2.22.5/Source/WebCore/dom/WheelEvent.h:28:0,
                 from /home/buildroot/autobuild/run/instance-2/output/build/webkitgtk-2.22.5/DerivedSources/WebCore/EventHeaders.h:227,
                 from /home/buildroot/autobuild/run/instance-2/output/build/webkitgtk-2.22.5/DerivedSources/WebCore/EventFactory.cpp:29,
                 from /home/buildroot/autobuild/run/instance-2/output/build/webkitgtk-2.22.5/DerivedSources/WebCore/unified-sources/UnifiedSource1.cpp:3:
/home/buildroot/autobuild/run/instance-2/output/build/webkitgtk-2.22.5/Source/WebCore/platform/PlatformWheelEvent.h:216:60: error: no 'bool WebCore::PlatformWheelEvent::isEndOfNonMomentumScroll() const' member function declared in class 'WebCore::PlatformWheelEvent'
 inline bool PlatformWheelEvent::isEndOfNonMomentumScroll() const
                                                            ^~~~~
/home/buildroot/autobuild/run/instance-2/output/build/webkitgtk-2.22.5/Source/WebCore/platform/PlatformWheelEvent.h:221:67: error: no 'bool WebCore::PlatformWheelEvent::isTransitioningToMomentumScroll() const' member function declared in class 'WebCore::PlatformWheelEvent'
 inline bool PlatformWheelEvent::isTransitioningToMomentumScroll() const
                                                                   ^~~~~
Comment 1 Michael Catanzaro 2019-01-12 08:06:51 PST
Maybe fixed in trunk by r238928?
Comment 2 Adrian Perez 2019-01-12 15:50:13 PST
(In reply to Michael Catanzaro from comment #1)
> Maybe fixed in trunk by r238928?

Yes, that's my guess as well. I am leaving a Buildroot compilation
overnight with the same settings as the autobuilder *and* r238928
applied to see whether that works. Thanks!
Comment 3 Adrian Perez 2019-01-13 07:19:25 PST
(In reply to Adrian Perez from comment #2)
> (In reply to Michael Catanzaro from comment #1)
> > Maybe fixed in trunk by r238928?
> 
> Yes, that's my guess as well. I am leaving a Buildroot compilation
> overnight with the same settings as the autobuilder *and* r238928
> applied to see whether that works. Thanks!

It turns out that applying only r238928 is not enough, with it applied
a different build error shows up:


In file included from /home/aperez/devel/wpe/buildroot/ttt/build/webkitgtk-2.22.5/DerivedSources/WebCore/unified-sources/UnifiedSource322.cpp:8:0:                                   
/home/aperez/devel/wpe/buildroot/ttt/build/webkitgtk-2.22.5/Source/WebCore/platform/gtk/ScrollAnimatorGtk.cpp: In member function ‘virtual bool WebCore::ScrollAnimatorGtk::handleWheelEvent(const WebCore::PlatformWheelEvent&)’:
/home/aperez/devel/wpe/buildroot/ttt/build/webkitgtk-2.22.5/Source/WebCore/platform/gtk/ScrollAnimatorGtk.cpp:135:15: error: ‘const class WebCore::PlatformWheelEvent’ has no member named ‘isEndOfNonMomentumScroll’
     if (event.isEndOfNonMomentumScroll()) {
               ^~~~~~~~~~~~~~~~~~~~~~~~
/home/aperez/devel/wpe/buildroot/ttt/build/webkitgtk-2.22.5/Source/WebCore/platform/gtk/ScrollAnimatorGtk.cpp:140:15: error: ‘const class WebCore::PlatformWheelEvent’ has no member named ‘isTransitioningToMomentumScroll’
     if (event.isTransitioningToMomentumScroll()) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Comment 4 Adrian Perez 2019-12-19 01:07:02 PST
Buildroot is shipping WebKitGTK 2.26.x, this issue is not a problem anymore.