Changeset 248463 in webkit
- Timestamp:
- Aug 9, 2019 12:17:44 AM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r248454 r248463 1 2019-08-09 Ryosuke Niwa <rniwa@webkit.org> 2 3 REGRESSION (iOS 13): united.com web forms do not respond to taps 4 https://bugs.webkit.org/show_bug.cgi?id=200531 5 6 Reviewed by Antti Koivisto and Wenson Hsieh. 7 8 The bug is caused by the content change observer detecting “Site Feedback” link at the bottom of 9 the page (https://www.united.com/ual/en/US/account/enroll/default) constantly getting re-generated 10 in every frame via requestAnimationFrame when the page is opened with iPhone UA string. 11 Note that the content re-generation can be reproduced even in Chrome if iPhone UA string is used. 12 13 Ignore this constant content change in ContentChangeObserver as a site specific quirk. 14 15 In the future, we should make ContentChangeObserver observe the final location of each element 16 being observed so that we can ignore content that like this which is placed outside the viewport, 17 and/or far away from where the user tapped. 18 19 * page/Quirks.cpp: 20 (WebCore::Quirks::shouldIgnoreContentChange const): Added. 21 * page/Quirks.h: 22 * page/ios/ContentChangeObserver.cpp: 23 (WebCore::ContentChangeObserver::shouldObserveVisibilityChangeForElement): 24 1 25 2019-08-08 Devin Rousso <drousso@apple.com> 2 26 -
trunk/Source/WebCore/page/Quirks.cpp
r248295 r248463 411 411 } 412 412 413 bool Quirks::shouldIgnoreContentChange(const Element& element) const 414 { 415 #if PLATFORM(IOS_FAMILY) 416 if (!needsQuirks()) 417 return false; 418 419 auto* parentElement = element.parentElement(); 420 if (!parentElement || !parentElement->hasClass()) 421 return false; 422 423 DOMTokenList& classList = parentElement->classList(); 424 if (!classList.contains("feedback") || !classList.contains("feedback-mid")) 425 return false; 426 427 if (!equalLettersIgnoringASCIICase(topPrivatelyControlledDomain(m_document->url().host().toString()), "united.com")) 428 return false; 429 430 return true; 431 #else 432 UNUSED_PARAM(element); 433 return false; 434 #endif 435 } 436 413 437 // FIXME(<rdar://problem/50394969>): Remove after desmos.com adopts inputmode="none". 414 438 bool Quirks::needsInputModeNoneImplicitly(const HTMLElement& element) const -
trunk/Source/WebCore/page/Quirks.h
r248018 r248463 32 32 33 33 class Document; 34 class Element; 34 35 class EventTarget; 35 36 class HTMLElement; … … 56 57 #endif 57 58 bool shouldDisablePointerEventsQuirk() const; 59 bool shouldIgnoreContentChange(const Element&) const; 58 60 bool needsInputModeNoneImplicitly(const HTMLElement&) const; 59 61 bool needsDeferKeyDownAndKeyPressTimersUntilNextEditingCommand() const; -
trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp
r248080 r248463 37 37 #include "NodeRenderStyle.h" 38 38 #include "Page.h" 39 #include "Quirks.h" 39 40 #include "RenderDescendantIterator.h" 40 41 #include "Settings.h" … … 597 598 bool ContentChangeObserver::shouldObserveVisibilityChangeForElement(const Element& element) 598 599 { 599 return isObservingContentChanges() && !hasVisibleChangeState() && !visibleRendererWasDestroyed(element) ;600 return isObservingContentChanges() && !hasVisibleChangeState() && !visibleRendererWasDestroyed(element) && !element.document().quirks().shouldIgnoreContentChange(element); 600 601 } 601 602
Note: See TracChangeset
for help on using the changeset viewer.