Changeset 222594 in webkit
- Timestamp:
- Sep 27, 2017 6:38:18 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r222588 r222594 1 2017-09-27 Zalan Bujtas <zalan@apple.com> 2 3 Deferred image size change makes image-load-on-delay.html flaky. 4 https://bugs.webkit.org/show_bug.cgi?id=177520 5 <rdar://problem/34674299> 6 7 Reviewed by Dean Jackson. 8 9 * platform/mac/TestExpectations: 10 1 11 2017-09-27 Myles C. Maxfield <mmaxfield@apple.com> 2 12 -
trunk/LayoutTests/platform/mac/TestExpectations
r222569 r222594 1772 1772 webkit.org/b/177323 imported/w3c/web-platform-tests/fetch/security/embedded-credentials.tentative.sub.html [ Pass Failure ] 1773 1773 1774 webkit.org/b/177520 accessibility/image-load-on-delay.html [ Pass Failure ]1775 1776 1774 webkit.org/b/177388 inspector/canvas/shaderProgram-add-remove-webgl.html [ Pass Failure ] 1777 1775 -
trunk/Source/WebCore/ChangeLog
r222592 r222594 1 2017-09-27 Zalan Bujtas <zalan@apple.com> 2 3 Deferred image size change makes image-load-on-delay.html flaky. 4 https://bugs.webkit.org/show_bug.cgi?id=177520 5 <rdar://problem/34674299> 6 7 Reviewed by Dean Jackson. 8 9 Only defer recomputeIsIgnored when the image change actually triggers layout. 10 11 * accessibility/AXObjectCache.cpp: 12 (WebCore::rendererNeedsDeferredUpdate): 13 (WebCore::AXObjectCache::deferRecomputeIsIgnoredIfNeeded): 14 (WebCore::AXObjectCache::deferTextChangedIfNeeded): 15 * accessibility/AXObjectCache.h: 16 (WebCore::AXObjectCache::deferRecomputeIsIgnoredIfNeeded): 17 * rendering/RenderImage.cpp: 18 (WebCore::RenderImage::imageChanged): 19 1 20 2017-09-27 Tim Horton <timothy_horton@apple.com> 2 21 -
trunk/Source/WebCore/accessibility/AXObjectCache.cpp
r222226 r222594 2784 2784 } 2785 2785 2786 static bool rendererNeedsDeferredUpdate(RenderObject& renderer) 2787 { 2788 ASSERT(!renderer.beingDestroyed()); 2789 auto& document = renderer.document(); 2790 return renderer.needsLayout() || document.needsStyleRecalc() || document.inRenderTreeUpdate() || (document.view() && document.view()->isInRenderTreeLayout()); 2791 } 2792 2793 void AXObjectCache::deferRecomputeIsIgnoredIfNeeded(Element* element) 2794 { 2795 if (!element) 2796 return; 2797 2798 auto* renderer = element->renderer(); 2799 if (!renderer || renderer->beingDestroyed()) 2800 return; 2801 2802 if (rendererNeedsDeferredUpdate(*renderer)) { 2803 m_deferredRecomputeIsIgnoredList.add(element); 2804 return; 2805 } 2806 recomputeIsIgnored(renderer); 2807 } 2808 2786 2809 void AXObjectCache::deferRecomputeIsIgnored(Element* element) 2787 2810 { … … 2800 2823 return; 2801 2824 2802 if (node->renderer() && node->renderer()->beingDestroyed()) 2803 return; 2804 2805 auto& document = node->document(); 2806 // FIXME: We should just defer all text changes. 2807 if (document.needsStyleRecalc() || document.inRenderTreeUpdate() || (document.view() && document.view()->isInRenderTreeLayout())) { 2825 auto* renderer = node->renderer(); 2826 if (renderer && renderer->beingDestroyed()) 2827 return; 2828 2829 if (renderer && rendererNeedsDeferredUpdate(*renderer)) { 2808 2830 m_deferredTextChangedList.add(node); 2809 2831 return; -
trunk/Source/WebCore/accessibility/AXObjectCache.h
r222226 r222594 330 330 static void setShouldRepostNotificationsForTests(bool value); 331 331 #endif 332 void deferRecomputeIsIgnoredIfNeeded(Element*); 332 333 void deferRecomputeIsIgnored(Element*); 333 334 void deferTextChangedIfNeeded(Node*); … … 487 488 inline void AXObjectCache::childrenChanged(Node*, Node*) { } 488 489 inline void AXObjectCache::childrenChanged(RenderObject*, RenderObject*) { } 490 inline void AXObjectCache::deferRecomputeIsIgnoredIfNeeded(Element*) { } 489 491 inline void AXObjectCache::deferRecomputeIsIgnored(Element*) { } 490 492 inline void AXObjectCache::deferTextChangedIfNeeded(Node*) { } -
trunk/Source/WebCore/rendering/RenderImage.cpp
r222575 r222594 266 266 imageSizeChange = setImageSizeForAltText(cachedImage()); 267 267 } 268 269 if (UNLIKELY(AXObjectCache::accessibilityEnabled())) {270 if (AXObjectCache* cache = document().existingAXObjectCache())271 cache->deferRecomputeIsIgnored(element());272 }273 274 268 repaintOrMarkForLayout(imageSizeChange, rect); 269 if (AXObjectCache* cache = document().existingAXObjectCache()) 270 cache->deferRecomputeIsIgnoredIfNeeded(element()); 275 271 } 276 272
Note: See TracChangeset
for help on using the changeset viewer.