WebKit Bugzilla
Attachment 373583 Details for
Bug 199556
: Long hang when loading a cnn.com page on iOS
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-199556-20190706145202.patch (text/plain), 4.76 KB, created by
Simon Fraser (smfr)
on 2019-07-06 14:52:03 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Simon Fraser (smfr)
Created:
2019-07-06 14:52:03 PDT
Size:
4.76 KB
patch
obsolete
>Subversion Revision: 247142 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 3fa7fce12486106396578cff4134fedb140c4e1c..1fc27bb342c15fef8fe83d4a65b7157ab9111290 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,24 @@ >+2019-07-06 Simon Fraser <simon.fraser@apple.com> >+ >+ Long hang when loading a cnn.com page on iOS >+ https://bugs.webkit.org/show_bug.cgi?id=199556 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Loading https://edition.cnn.com/travel/article/brussels-airlines-flight-to-nowhere/index.html in the iOS 13 sim >+ results in a long hang under OverlapMapContainer::append(). We were creating pathological clipping scopes with >+ thousands of entries, because OverlapMapContainer::mergeClippingScopesRecursive() had a logic error where >+ it added 'sourceScope' to the child instead of 'sourceChildScope'. Add a new assertion to detect that case. >+ >+ I wasn't able to create a testcase that caused a hang, but a number of existing tests would have >+ hit the assertion. >+ >+ * rendering/LayerOverlapMap.cpp: >+ (WebCore::OverlapMapContainer::ClippingScope::addChild): >+ (WebCore::OverlapMapContainer::mergeClippingScopesRecursive): >+ * rendering/RenderLayerCompositor.cpp: >+ (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Drive-by fix: m_overflowControlsHostLayer is null on iOS, so use rootGraphicsLayer(). >+ > 2019-07-03 Simon Fraser <simon.fraser@apple.com> > > Some layers inside overflow:scroll don't move back to correct positions when the contents are shrunk >diff --git a/Source/WebCore/rendering/LayerOverlapMap.cpp b/Source/WebCore/rendering/LayerOverlapMap.cpp >index 794a48372c3e5cbc72ee6515041505c2c47176b3..285aa5f9fe9bae7dfc8528c24c1d5567d4129ff3 100644 >--- a/Source/WebCore/rendering/LayerOverlapMap.cpp >+++ b/Source/WebCore/rendering/LayerOverlapMap.cpp >@@ -114,6 +114,7 @@ private: > > ClippingScope* addChild(const ClippingScope& child) > { >+ ASSERT(&layer != &child.layer); > children.append(child); > return &children.last(); > } >@@ -198,7 +199,7 @@ void OverlapMapContainer::mergeClippingScopesRecursive(const ClippingScope& sour > mergeClippingScopesRecursive(sourceChildScope, *destChild); > } else { > // New child, just copy the whole subtree. >- destScope.addChild(sourceScope); >+ destScope.addChild(sourceChildScope); > } > } > } >diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp >index e9b5d945c2eb947e8b569f3ce7451a268104fc69..b665968eabf9bf20ae28bef1caff11d5dbd16ef7 100644 >--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp >+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp >@@ -523,7 +523,7 @@ void RenderLayerCompositor::flushPendingLayerChanges(bool isFlushRoot) > #if ENABLE(TREE_DEBUGGING) > if (layersLogEnabled()) { > LOG(Layers, "RenderLayerCompositor::flushPendingLayerChanges"); >- showGraphicsLayerTree(m_overflowControlsHostLayer.get()); >+ showGraphicsLayerTree(rootGraphicsLayer()); > } > #endif > } >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index f06eb1799969a3e10e88928a259392c970b6cd26..fd31465acd0fdcab8e3cfad97426a75a730503fb 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,16 @@ >+2019-07-06 Simon Fraser <simon.fraser@apple.com> >+ >+ Long hang when loading a cnn.com page on iOS >+ https://bugs.webkit.org/show_bug.cgi?id=199556 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add code to load a page by default in MobileMiniBrowser so it's easy to hack it >+ to load a test page of your choice. >+ >+ * MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m: >+ (-[WebViewController viewDidLoad]): >+ > 2019-07-04 Carlos Alberto Lopez Perez <clopez@igalia.com> > > [GTK] Fix browserperfdash script after r239522 >diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m >index ecb227f40b81db571c770870b721e7d0428de52d..f1b5eded1cf261915cdece586b8b9aae4d7196fb 100644 >--- a/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m >+++ b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m >@@ -75,7 +75,9 @@ - (void)viewDidLoad > self.tabViewController.parent = self; > self.tabViewController.modalPresentationStyle = UIModalPresentationPopover; > >- [self setCurrentWebView:[self createWebView]]; >+ WKWebView *webView = [self createWebView]; >+ [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://webkit.org"]]]; >+ [self setCurrentWebView:webView]; > } > >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 199556
: 373583