Bug 174302

Summary: REGRESSION(r210226): Keyboard-focused element not preserved when navigating back through page cache, causing multiple elements to have focus
Product: WebKit Reporter: mitz
Component: New BugsAssignee: Andreas Kling <kling>
Status: RESOLVED FIXED    
Severity: Normal CC: buildbot, cdumez, commit-queue, dbates, esprehn+autocc, kangil.han, kling, koivisto, simon.fraser, webkit-bug-importer
Priority: P1 Keywords: InRadar, Regression
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
URL: data:text/html,<a%20href="about:blank#1">1</a><a%20href="about:blank#2">2</a><a%20href="about:blank#3">3</a>
Attachments:
Description Flags
Patch none

mitz
Reported 2017-07-09 15:00:09 PDT
To reproduce: 1. Navigate to the URL. 2. Press Option-Tab three times to focus the 3 link 3. Press Return to navigate 4. Navigate back 5. Notice that the 3 link still looks focused, but pressing Return doesn’t navigate to it 6. Press Option-Tab twice 7. Notice that the 1 link, then the 2 link become focused, but the 3 link also looks focused 8. Press Return to navigate, then navigate back 9. Notice that the 2 link and the 3 link still look focused This is a regression from shipping Safari.
Attachments
Patch (4.29 KB, patch)
2017-07-10 07:14 PDT, Andreas Kling
no flags
Radar WebKit Bug Importer
Comment 1 2017-07-09 15:00:52 PDT
Andreas Kling
Comment 2 2017-07-10 02:16:17 PDT
Andreas Kling
Comment 3 2017-07-10 04:03:29 PDT
I think I see the problem here. Document::destroyRenderTree() is clearing the various DOM pointers to "user action elements", including the currently focused element. This feels like a red patch, just need to write a test case. Thanks mitz for the really great bug report!
Andreas Kling
Comment 4 2017-07-10 07:14:10 PDT
WebKit Commit Bot
Comment 5 2017-07-10 10:03:18 PDT
Comment on attachment 314977 [details] Patch Clearing flags on attachment: 314977 Committed r219296: <http://trac.webkit.org/changeset/219296>
WebKit Commit Bot
Comment 6 2017-07-10 10:03:20 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.