Changeset 246099 in webkit


Ignore:
Timestamp:
Jun 4, 2019 11:09:24 PM (5 years ago)
Author:
rniwa@webkit.org
Message:

iPadOS: Google calendars new event picker moves and flickers in landscape with software keyboard
https://bugs.webkit.org/show_bug.cgi?id=198556

Reviewed by Wenson Hsieh.

Fix the issuse that it's really hard to create a new event using Google calendar on iPadOS with
a software keyboard enabled because tapping on date brings up software keyboard and erratically
shifts up/down the new event dialog/pane.

Add a site specific quirk to pretend these input elements have inputmode=none for now.

No new tests since this is a site specific quirk.

  • page/Quirks.cpp:

(WebCore::Quirks::needsInputModeNoneImplicitly const):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r246096 r246099  
     12019-06-04  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        iPadOS: Google calendars new event picker moves and flickers in landscape with software keyboard
     4        https://bugs.webkit.org/show_bug.cgi?id=198556
     5
     6        Reviewed by Wenson Hsieh.
     7
     8        Fix the issuse that it's really hard to create a new event using Google calendar on iPadOS with
     9        a software keyboard enabled because tapping on date brings up software keyboard and erratically
     10        shifts up/down the new event dialog/pane.
     11
     12        Add a site specific quirk to pretend these input elements have inputmode=none for now.
     13
     14        No new tests since this is a site specific quirk.
     15
     16        * page/Quirks.cpp:
     17        (WebCore::Quirks::needsInputModeNoneImplicitly const):
     18
    1192019-06-04  Zalan Bujtas  <zalan@apple.com>
    220
  • trunk/Source/WebCore/page/Quirks.cpp

    r245774 r246099  
    339339        return false;
    340340
     341    if (element.hasTagName(HTMLNames::inputTag)) {
     342        if (!equalLettersIgnoringASCIICase(m_document->url().host(), "calendar.google.com"))
     343            return false;
     344        static NeverDestroyed<QualifiedName> dataInitialValueAttr(nullAtom(), "data-initial-value", nullAtom());
     345        static NeverDestroyed<QualifiedName> dataPreviousValueAttr(nullAtom(), "data-previous-value", nullAtom());
     346
     347        return equalLettersIgnoringASCIICase(element.attributeWithoutSynchronization(HTMLNames::autocompleteAttr), "off")
     348            && element.hasAttributeWithoutSynchronization(dataInitialValueAttr)
     349            && element.hasAttributeWithoutSynchronization(dataPreviousValueAttr);
     350    }
     351
    341352    if (!element.hasTagName(HTMLNames::textareaTag))
    342353        return false;
Note: See TracChangeset for help on using the changeset viewer.