Changeset 57724 in webkit


Ignore:
Timestamp:
Apr 16, 2010 10:18:12 AM (14 years ago)
Author:
eric@webkit.org
Message:

2010-04-16 Jay Civelli <jcivelli@chromium.org>

Reviewed by Dimitri Glazkov.

[chromium] Select popups would assert when destroyed.
https://bugs.webkit.org/show_bug.cgi?id=37436

  • platform/chromium/PopupMenuChromium.cpp: (WebCore::PopupContainer::PopupContainer): (WebCore::PopupContainer::showPopup): (WebCore::PopupContainer::notifyPopupHidden):
  • platform/chromium/PopupMenuChromium.h:

2010-04-16 Jay Civelli <jcivelli@chromium.org>

Reviewed by Dimitri Glazkov.

[chromium] Select popups would assert when destroyed.
Also adding unit-tests for the select popup code.
https://bugs.webkit.org/show_bug.cgi?id=37436

  • WebKit.gyp:
  • src/WebViewImpl.h: (WebKit::WebViewImpl::selectPopup):
  • tests/PopupMenuTest.cpp: Added.
Location:
trunk
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r57721 r57724  
     12010-04-16  Jay Civelli  <jcivelli@chromium.org>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        [chromium] Select popups would assert when destroyed.
     6        https://bugs.webkit.org/show_bug.cgi?id=37436
     7
     8
     9        * platform/chromium/PopupMenuChromium.cpp:
     10        (WebCore::PopupContainer::PopupContainer):
     11        (WebCore::PopupContainer::showPopup):
     12        (WebCore::PopupContainer::notifyPopupHidden):
     13        * platform/chromium/PopupMenuChromium.h:
     14
    1152010-04-16  Antonio Gomes  <tonikitoo@webkit.org>
    216
  • trunk/WebCore/platform/chromium/PopupMenuChromium.cpp

    r57606 r57724  
    314314    : m_listBox(PopupListBox::create(client, settings))
    315315    , m_settings(settings)
    316     , m_popupType(popupType) 
     316    , m_popupType(popupType)
     317    , m_popupOpen(false)
    317318{
    318319    setScrollbarModes(ScrollbarAlwaysOff, ScrollbarAlwaysOff);
     
    368369        }
    369370        chromeClient->popupOpened(this, widgetRect, false);
     371        m_popupOpen = true;
    370372    }
    371373
     
    417419void PopupContainer::notifyPopupHidden()
    418420{
    419      chromeClientChromium()->popupClosed(this);
     421    if (!m_popupOpen)
     422        return;
     423    m_popupOpen = false;
     424    chromeClientChromium()->popupClosed(this);
    420425}
    421426
  • trunk/WebCore/platform/chromium/PopupMenuChromium.h

    r57606 r57724  
    149149    void show(const IntRect&, FrameView*, int index);
    150150
    151     // Hide the popup.
     151    // Hides the popup.
    152152    void hidePopup();
    153153
     
    178178    PopupType popupType() const { return m_popupType; }
    179179
     180    // Whether the popup is currently open.
     181    bool m_popupOpen;
     182
    180183private:
    181184    friend class WTF::RefCounted<PopupContainer>;
  • trunk/WebKit/chromium/ChangeLog

    r57720 r57724  
     12010-04-16  Jay Civelli  <jcivelli@chromium.org>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        [chromium] Select popups would assert when destroyed.
     6        Also adding unit-tests for the select popup code.
     7        https://bugs.webkit.org/show_bug.cgi?id=37436
     8
     9        * WebKit.gyp:
     10        * src/WebViewImpl.h:
     11        (WebKit::WebViewImpl::selectPopup):
     12        * tests/PopupMenuTest.cpp: Added.
     13
    1142010-04-16  Tony Chang  <tony@chromium.org>
    215
  • trunk/WebKit/chromium/WebKit.gyp

    r57606 r57724  
    508508                ['OS=="win"', {
    509509                    'sources': [
     510                        # FIXME: Port PopupMenuTest to Linux and Mac.
     511                        'tests/PopupMenuTest.cpp',
    510512                        'tests/TransparencyWinTest.cpp',
    511513                        'tests/UniscribeHelperTest.cpp',
  • trunk/WebKit/chromium/src/WebViewImpl.h

    r57699 r57724  
    313313#endif
    314314
     315    WebCore::PopupContainer* selectPopup() const { return m_selectPopup.get(); }
     316
    315317private:
    316318    friend class WebView;  // So WebView::Create can call our constructor
Note: See TracChangeset for help on using the changeset viewer.