Changeset 172199 in webkit


Ignore:
Timestamp:
Aug 6, 2014 7:43:35 PM (10 years ago)
Author:
Simon Fraser
Message:

[iOS WK2] www.france24.com doesn't always load the page, sections stay white
https://bugs.webkit.org/show_bug.cgi?id=135684
<rdar://problem/17931712>

Reviewed by Tim Horton.

It's possible for a UIScrollView for overflow to move between one scrolling tree node
and another. When this happens, we need to avoid unconditionally clearing the delegate
on the node that's being destroyed, because the new node will already have set the
UIScrollView delegate to its own delegate.

  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):

Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r172194 r172199  
     12014-08-06  Simon Fraser  <simon.fraser@apple.com>
     2
     3        [iOS WK2] www.france24.com doesn't always load the page, sections stay white
     4        https://bugs.webkit.org/show_bug.cgi?id=135684
     5        <rdar://problem/17931712>
     6
     7        Reviewed by Tim Horton.
     8       
     9        It's possible for a UIScrollView for overflow to move between one scrolling tree node
     10        and another. When this happens, we need to avoid unconditionally clearing the delegate
     11        on the node that's being destroyed, because the new node will already have set the
     12        UIScrollView delegate to its own delegate.
     13
     14        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
     15        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
     16
    1172014-08-06  Dean Jackson  <dino@apple.com>
    218
  • trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm

    r171370 r172199  
    112112    if (UIScrollView *scrollView = (UIScrollView *)[scrollLayer() delegate]) {
    113113        ASSERT([scrollView isKindOfClass:[UIScrollView self]]);
    114         scrollView.delegate = nil;
     114        // The scrollView may have been adopted by another node, so only clear the delegate if it's ours.
     115        if (scrollView.delegate == m_scrollViewDelegate.get())
     116            scrollView.delegate = nil;
    115117    }
    116118    END_BLOCK_OBJC_EXCEPTIONS
Note: See TracChangeset for help on using the changeset viewer.