[Webkit-unassigned] [Bug 232376] [GLIB] twitch.tv forces synchronous scrolling

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Nov 11 02:08:05 PST 2021


https://bugs.webkit.org/show_bug.cgi?id=232376

--- Comment #7 from Chris Lord <clord at igalia.com> ---
(In reply to Chris Lord from comment #6)
> The only code I can find about it that has a side-effect appears to be here:
> 
> https://github.com/WebKit/WebKit/blob/main/Source/WebCore/page/mac/
> EventHandlerMac.mm#L156
> 
> > bool EventHandler::wheelEvent(NSEvent *event)
> > {
> >     Page* page = m_frame.page();
> >     if (!page)
> >         return false;
> > 
> >     CurrentEventScope scope(event, nil);
> >     auto wheelEvent = PlatformEventFactory::createPlatformWheelEvent(event, page->chrome().platformPageClient());
> >     OptionSet<WheelEventProcessingSteps> processingSteps = { WheelEventProcessingSteps::MainThreadForScrolling, WheelEventProcessingSteps::MainThreadForBlockingDOMEventDispatch };
> > 
> >     if (wheelEvent.phase() == PlatformWheelEventPhase::Changed || wheelEvent.momentumPhase() == PlatformWheelEventPhase::Changed) {
> >         if (m_frame.settings().wheelEventGesturesBecomeNonBlocking() && m_wheelScrollGestureState.value_or(WheelScrollGestureState::Blocking) == WheelScrollGestureState::NonBlocking)
> >             processingSteps = { WheelEventProcessingSteps::MainThreadForScrolling, WheelEventProcessingSteps::MainThreadForNonBlockingDOMEventDispatch };
> >     }
> >     return handleWheelEvent(wheelEvent, processingSteps);
> > }
> 
> Am I missing something there? It sets processingSteps to {
> WheelEventProcessingSteps::MainThreadForScrolling,
> WheelEventProcessingSteps::MainThreadForBlockingDOMEventDispatch }, then if
> the wheel event phase is changed and
> settings().wheelEventGesturesBecomeNonBlocking() is true and
> m_wheelScrollGestureState is WheelScrollGestureState::NonBlocking, sets is
> to { WheelEventProcessingSteps::MainThreadForScrolling,
> WheelEventProcessingSteps::MainThreadForBlockingDOMEventDispatch } - which
> is the exact same value? Does OptionSet have some kind of assignment
> overload that turns assignments into toggles?
> 
> Also this code needs to be replicated in a non-Mac specific place, but I'd
> like to understand it first...

I am missing something, mainly the "Non" in "NonBlocking"... I'll excuse myself, it was late in the day.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20211111/51e4dded/attachment.htm>


More information about the webkit-unassigned mailing list