Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7eb7466a23c38076bb705f0192310b3ec7e0787f
      
https://github.com/WebKit/WebKit/commit/7eb7466a23c38076bb705f0192310b3ec7e0787f
  Author: Lily Spiniolas <[email protected]>
  Date:   2025-12-22 (Mon, 22 Dec 2025)

  Changed paths:
    M Source/WebCore/page/PointerCaptureController.cpp
    M Source/WebCore/page/Quirks.cpp
    M Source/WebCore/page/Quirks.h
    M Source/WebCore/page/QuirksData.h

  Log Message:
  -----------
  netflix.com "episodes and info" button dismisses popover
https://bugs.webkit.org/show_bug.cgi?id=304608
rdar://155498882

Reviewed by Megan Gardner and Wenson Hsieh.

When the "episode and info" button contained within an expanded titlecard
is tapped, instead of opening an overlay with the list of episodes and
show description, the site behaves as if you had moved the mouse outside
of the titlecard, and the overlay does not open.

The expanded titlecard has an event listener for `pointerleave`, and the
button responsible for showing the overlay has a `click` event listener.
When the button is tapped, we dispatch both events, but the `pointerleave`
event fires before the synthetic click. This puts the site into a state
where, for the `click` event handler that follows, the overlay is either
suppressed, or immediately hidden.

Reordering the events so that `pointerleave` is dispatched after the `click`
event resolves this issue. This is the same fix used for an issue with
soylent.com's dropdown menus. We apply the same quirk used there, and rename
it from shouldDispatchPointerOutAfterHandlingSyntheticClick to
shouldDispatchPointerOutAndLeaveAfterHandlingSyntheticClick to reflect that
both `pointerout` and `pointerleave` events are delayed by this quirk.

The behavior enabled by the quirk is tested in
`pointerevents/ios/dispatch-pointerout-after-synthetic-click-quirk.html`

* Source/WebCore/page/PointerCaptureController.cpp:
(WebCore::PointerCaptureController::dispatchEventForTouchAtIndex):
* Source/WebCore/page/Quirks.cpp:
(WebCore::Quirks::shouldDispatchPointerOutAndLeaveAfterHandlingSyntheticClick 
const):
(WebCore::handleSoylentQuirks):
(WebCore::handleNetflixQuirks):
(WebCore::Quirks::shouldDispatchPointerOutAfterHandlingSyntheticClick const): 
Deleted.
* Source/WebCore/page/Quirks.h:
* Source/WebCore/page/QuirksData.h:

Canonical link: https://commits.webkit.org/304883@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to