Changeset 109405 in webkit


Ignore:
Timestamp:
Mar 1, 2012 1:26:50 PM (12 years ago)
Author:
andersca@apple.com
Message:

Assertion failure in pageContainsAnyHorizontalScrollbars() (scrollableArea->isOnActivePage()) when leaving pages with embedded PDFs
https://bugs.webkit.org/show_bug.cgi?id=80044
<rdar://problem/10919940>

Reviewed by Brady Eidson.

Remove the code that would add and remove wheel event handlers since that's not what we want to track.
Instead, dynamically add and remove the view as its scrollbars come and go.

  • WebProcess/Plugins/PDF/BuiltInPDFView.cpp:

(WebKit::BuiltInPDFView::updateScrollbars):
(WebKit::BuiltInPDFView::initialize):

  • WebProcess/Plugins/PDF/BuiltInPDFView.h:

(BuiltInPDFView):

Location:
trunk/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r109402 r109405  
     12012-03-01  Anders Carlsson  <andersca@apple.com>
     2
     3        Assertion failure in pageContainsAnyHorizontalScrollbars() (scrollableArea->isOnActivePage()) when leaving pages with embedded PDFs
     4        https://bugs.webkit.org/show_bug.cgi?id=80044
     5        <rdar://problem/10919940>
     6
     7        Reviewed by Brady Eidson.
     8
     9        Remove the code that would add and remove wheel event handlers since that's not what we want to track.
     10        Instead, dynamically add and remove the view as its scrollbars come and go.
     11
     12        * WebProcess/Plugins/PDF/BuiltInPDFView.cpp:
     13        (WebKit::BuiltInPDFView::updateScrollbars):
     14        (WebKit::BuiltInPDFView::initialize):
     15        * WebProcess/Plugins/PDF/BuiltInPDFView.h:
     16        (BuiltInPDFView):
     17
    1182012-03-01  Kangil Han  <kangil.han@samsung.com>
    219
  • trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp

    r106977 r109405  
    228228        m_verticalScrollbar->setFrameRect(scrollbarRect);
    229229    }
    230 }
    231 
    232 void BuiltInPDFView::didAddHorizontalScrollbar(Scrollbar* scrollbar)
    233 {
    234     pluginView()->frame()->document()->didAddWheelEventHandler();
    235     ScrollableArea::didAddHorizontalScrollbar(scrollbar);
    236 }
    237 
    238 void BuiltInPDFView::willRemoveHorizontalScrollbar(Scrollbar* scrollbar)
    239 {
    240     ScrollableArea::willRemoveHorizontalScrollbar(scrollbar);
    241     // FIXME: Maybe need a separate ScrollableArea::didRemoveHorizontalScrollbar callback?
    242     if (PluginView* pluginView = this->pluginView())
    243         pluginView->frame()->document()->didRemoveWheelEventHandler();
    244 }
    245 
    246 void BuiltInPDFView::didAddVerticalScrollbar(Scrollbar* scrollbar)
    247 {
    248     pluginView()->frame()->document()->didAddWheelEventHandler();
    249     ScrollableArea::didAddVerticalScrollbar(scrollbar);
    250 }
    251 
    252 void BuiltInPDFView::willRemoveVerticalScrollbar(Scrollbar* scrollbar)
    253 {
    254     ScrollableArea::willRemoveVerticalScrollbar(scrollbar);
    255     // FIXME: Maybe need a separate ScrollableArea::didRemoveHorizontalScrollbar callback?
    256     if (PluginView* pluginView = this->pluginView())
    257         pluginView->frame()->document()->didRemoveWheelEventHandler();
     230   
     231    FrameView* frameView = m_frame->coreFrame()->view();
     232    if (!frameView)
     233        return;
     234
     235    if (m_verticalScrollbar || m_horizontalScrollbar)
     236        frameView->addScrollableArea(this);
     237    else
     238        frameView->removeScrollableArea(this);
    258239}
    259240
     
    349330bool BuiltInPDFView::initialize(const Parameters& parameters)
    350331{
    351     m_frame->coreFrame()->view()->addScrollableArea(this);
    352 
    353332    // Load the src URL if needed.
    354333    m_sourceURL = parameters.url;
  • trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h

    r107665 r109405  
    5959
    6060    void updateScrollbars();
    61     void didAddHorizontalScrollbar(WebCore::Scrollbar*);
    62     void willRemoveHorizontalScrollbar(WebCore::Scrollbar*);
    63     void didAddVerticalScrollbar(WebCore::Scrollbar*);
    64     void willRemoveVerticalScrollbar(WebCore::Scrollbar*);
    6561    PassRefPtr<WebCore::Scrollbar> createScrollbar(WebCore::ScrollbarOrientation);
    6662    void destroyScrollbar(WebCore::ScrollbarOrientation);
Note: See TracChangeset for help on using the changeset viewer.