Summary: | [iOS] Cannot tab cycle through credit card fields on antonsvpatisserie.com checkout page | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Daniel Bates <dbates> | ||||||||
Component: | WebCore Misc. | Assignee: | Daniel Bates <dbates> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | cdumez, esprehn+autocc, ews-watchlist, gyuyoung.kim, megan_gardner, webkit-bug-importer, wenson_hsieh | ||||||||
Priority: | P2 | Keywords: | InRadar, PlatformOnly | ||||||||
Version: | WebKit Local Build | ||||||||||
Hardware: | iPhone / iPad | ||||||||||
OS: | iOS 12 | ||||||||||
URL: | https://www.antonsvpatisserie.com/ | ||||||||||
Bug Depends on: | |||||||||||
Bug Blocks: | 190571 | ||||||||||
Attachments: |
|
Description
Daniel Bates
2019-03-20 21:06:24 PDT
Credit card fields are in an iframe. iOS hacks it to disallow iframes from being focusable: <https://trac.webkit.org/browser/trunk/Source/WebCore/html/HTMLIFrameElement.h?rev=246884#L54> Why did we do this? Well it's because we didn't want a <iframe contenteditable="true"></iframe> to be focusable and for next/previous accessory bar buttons to allow focusing it. Created attachment 373262 [details]
For the bots
Created attachment 373270 [details]
Patch
Comment on attachment 373270 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=373270&action=review > Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2456 > + if (is<HTMLIFrameElement>(node)) This requires me to pull in a header. I could just call node->isFrameOwnerElement() <-- this would also cover <embed>/<object>, which are not needed to be covered.... I waffled on which was better.... went with is<> like the existing code and it's more narrow... What do you think? Comment on attachment 373270 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=373270&action=review >> Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2456 >> + if (is<HTMLIFrameElement>(node)) > > This requires me to pull in a header. I could just call node->isFrameOwnerElement() <-- this would also cover <embed>/<object>, which are not needed to be covered.... I waffled on which was better.... went with is<> like the existing code and it's more narrow... What do you think? For what it's worth, the new include does not bother me but if you really want to avoid it, you can always if (node.hasTagName(HTMLNames::iframeTag)). nit: While we're at it, can we rename node to element? Created attachment 373336 [details]
To land
(In reply to Chris Dumez from comment #6) > nit: While we're at it, can we rename node to element? Ok. Committed r247056: <https://trac.webkit.org/changeset/247056> |