WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
312527
[Site Isolation] Route popup menu value-changed IPC to the originating frame
https://bugs.webkit.org/show_bug.cgi?id=312527
Summary
[Site Isolation] Route popup menu value-changed IPC to the originating frame
zak ridouh
Reported
2026-04-16 17:05:01 PDT
When a <select> popup menu is open, focus can move to a remote frame during the popup's nested run loop. WebPageProxy::Internals::valueChangedForPopupMenu() previously called focusedOrMainFrame() to find the destination process for the DidChangeSelectedIndexForActivePopupMenu IPC. With site isolation, that may resolve to a different process than the one that hosts the <select>, so the selection change is delivered to the wrong process. The originating WebProcess never receives the close signal, leaving its m_popupIsVisible state stuck and making the <select> appear broken, the next click is interpreted as a dismiss rather than an open, and the chosen option never reaches the DOM. Capture the originating frame's identifier in m_activePopupMenuFrameID at showPopupMenu() time and use it to route both DidChangeSelectedIndexForActivePopupMenu and (on non-Cocoa platforms) SetTextForActivePopupMenu. Clear the identifier in hidePopupMenu() and resetState().
Attachments
Add attachment
proposed patch, testcase, etc.
zak ridouh
Comment 1
2026-04-16 17:05:21 PDT
<
rdar://174886701
>
zak ridouh
Comment 2
2026-04-16 17:08:55 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/62939
EWS
Comment 3
2026-05-18 17:59:13 PDT
Committed
313449@main
(0a6b5cd60b4f): <
https://commits.webkit.org/313449@main
> Reviewed commits have been landed. Closing PR #62939 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug