Changeset 188918 in webkit


Ignore:
Timestamp:
Aug 25, 2015 11:00:02 AM (9 years ago)
Author:
Wenson Hsieh
Message:

Fix crash due to search field disappearing when showing results menu
https://bugs.webkit.org/show_bug.cgi?id=148410
<rdar://problem/22399850>

Reviewed by Brent Fulgham.

When clicking on the results button of a search field that hides upon being focused, WebKit will crash because we
attempt to toggle the results menu using the search field's renderer which is null. This is addressed by adding a null
check to make sure the search field has not been hidden before toggling the menu.

Test: fast/forms/search/search-results-hidden-crash.html

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Add a null check for the search field's renderer.

Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/TestExpectations

    r188917 r188918  
    1919
    2020fast/forms/search/search-padding-cancel-results-buttons.html [ Skip ]
     21fast/forms/search/search-results-hidden-crash.html [ Skip ]
    2122
    2223#//////////////////////////////////////////////////////////////////////////////////////////
  • trunk/LayoutTests/platform/mac/TestExpectations

    r188901 r188918  
    1212
    1313fast/forms/search/search-padding-cancel-results-buttons.html [ Pass ]
     14fast/forms/search/search-results-hidden-crash.html [ Pass ]
    1415
    1516#//////////////////////////////////////////////////////////////////////////////////////////
  • trunk/Source/WebCore/ChangeLog

    r188917 r188918  
     12015-08-25  Wenson Hsieh  <wenson_hsieh@apple.com>
     2
     3        Fix crash due to search field disappearing when showing results menu
     4        https://bugs.webkit.org/show_bug.cgi?id=148410
     5        <rdar://problem/22399850>
     6
     7        Reviewed by Brent Fulgham.
     8
     9        When clicking on the results button of a search field that hides upon being focused, WebKit will crash because we
     10        attempt to toggle the results menu using the search field's renderer which is null. This is addressed by adding a null
     11        check to make sure the search field has not been hidden before toggling the menu.
     12
     13        Test: fast/forms/search/search-results-hidden-crash.html
     14
     15        * html/shadow/TextControlInnerElements.cpp:
     16        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Add a null check for the search field's renderer.
     17
    1182015-08-25  Chris Dumez  <cdumez@apple.com>
    219
  • trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp

    r185459 r188918  
    148148        input->select();
    149149#if !PLATFORM(IOS)
    150         RenderSearchField& renderer = downcast<RenderSearchField>(*input->renderer());
    151         if (renderer.popupIsVisible())
    152             renderer.hidePopup();
    153         else if (input->maxResults() > 0)
    154             renderer.showPopup();
     150        if (RenderObject* renderer = input->renderer()) {
     151            RenderSearchField& searchFieldRenderer = downcast<RenderSearchField>(*renderer);
     152            if (searchFieldRenderer.popupIsVisible())
     153                searchFieldRenderer.hidePopup();
     154            else if (input->maxResults() > 0)
     155                searchFieldRenderer.showPopup();
     156        }
    155157#endif
    156158        event->setDefaultHandled();
Note: See TracChangeset for help on using the changeset viewer.