Changeset 233872 in webkit
- Timestamp:
- Jul 16, 2018 5:17:45 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r233871 r233872 1 2018-07-16 Said Abou-Hallawa <sabouhallawa@apple.com> 2 3 [iOS] When bringing MobileSafari to the foreground, images, which are pending decoding, won't be drawn into the immediate-paint transaction 4 https://bugs.webkit.org/show_bug.cgi?id=187375 5 6 Reviewed by Simon Fraser. 7 8 The Internals API paintControlTints() is now renamed to invalidateControlTints() 9 to be consistent with the new enum values and with the new name of the 10 C++ function. 11 12 * fast/css/webkit-mask-crash-fieldset-legend.html: 13 * fast/css/webkit-mask-crash-figure.html: 14 * fast/css/webkit-mask-crash-table.html: 15 * fast/css/webkit-mask-crash-td-2.html: 16 * fast/css/webkit-mask-crash-td.html: 17 1 18 2018-07-16 Truitt Savell <tsavell@apple.com> 2 19 -
trunk/LayoutTests/fast/css/webkit-mask-crash-fieldset-legend.html
r158113 r233872 12 12 if (window.internals) { 13 13 testRunner.dumpAsText(); 14 internals. paintControlTints();14 internals.invalidateControlTints(); 15 15 } 16 16 </script> -
trunk/LayoutTests/fast/css/webkit-mask-crash-figure.html
r158113 r233872 12 12 if (window.internals) { 13 13 testRunner.dumpAsText(); 14 internals. paintControlTints();14 internals.invalidateControlTints(); 15 15 } 16 16 </script> -
trunk/LayoutTests/fast/css/webkit-mask-crash-table.html
r158113 r233872 12 12 if (window.internals) { 13 13 testRunner.dumpAsText(); 14 internals. paintControlTints();14 internals.invalidateControlTints(); 15 15 } 16 16 </script> -
trunk/LayoutTests/fast/css/webkit-mask-crash-td-2.html
r158113 r233872 10 10 if (window.internals) { 11 11 testRunner.dumpAsText(); 12 internals. paintControlTints();12 internals.invalidateControlTints(); 13 13 } 14 14 </script> -
trunk/LayoutTests/fast/css/webkit-mask-crash-td.html
r158113 r233872 14 14 if (window.internals) { 15 15 testRunner.dumpAsText(); 16 internals. paintControlTints();16 internals.invalidateControlTints(); 17 17 } 18 18 </script> -
trunk/Source/WebCore/ChangeLog
r233870 r233872 1 2018-07-16 Said Abou-Hallawa <sabouhallawa@apple.com> 2 3 [iOS] When bringing MobileSafari to the foreground, images, which are pending decoding, won't be drawn into the flush immediate transaction 4 https://bugs.webkit.org/show_bug.cgi?id=187375 5 6 Reviewed by Simon Fraser. 7 8 An immediate-paint transaction should force all the images which are pending 9 decoding to be repainted. 10 11 To do that, FrameView::paintControlTints() will be re-factored to a new 12 generic function such that it takes PaintInvalidationReasons. The new function 13 which is named 'traverseForPaintInvalidation' will traverse the render tree 14 for a specific PaintInvalidationReasons. 15 16 invalidateImagesWithAsyncDecodes() will stop the asynchronous decoding for 17 the underlying image and repaint all the clients which are waiting for the 18 decoding to finish. 19 20 * loader/cache/CachedImage.cpp: 21 (WebCore::CachedImage::didRemoveClient): 22 (WebCore::CachedImage::isClientWaitingForAsyncDecoding const): 23 (WebCore::CachedImage::addClientWaitingForAsyncDecoding): 24 (WebCore::CachedImage::removeAllClientsWaitingForAsyncDecoding): 25 (WebCore::CachedImage::allClientsRemoved): 26 (WebCore::CachedImage::clear): 27 (WebCore::CachedImage::createImage): 28 (WebCore::CachedImage::imageFrameAvailable): 29 (WebCore::CachedImage::addPendingImageDrawingClient): Deleted. 30 * loader/cache/CachedImage.h: 31 * page/FrameView.cpp: 32 (WebCore::FrameView::paintScrollCorner): 33 (WebCore::FrameView::updateControlTints): 34 (WebCore::FrameView::traverseForPaintInvalidation): 35 (WebCore::FrameView::adjustPageHeightDeprecated): 36 (WebCore::FrameView::paintControlTints): Deleted. 37 * page/FrameView.h: 38 * platform/ScrollView.cpp: 39 (WebCore::ScrollView::paint): 40 * platform/Scrollbar.cpp: 41 (WebCore::Scrollbar::paint): 42 * platform/graphics/BitmapImage.h: 43 * platform/graphics/GraphicsContext.cpp: 44 (WebCore::GraphicsContext::GraphicsContext): 45 * platform/graphics/GraphicsContext.h: 46 (WebCore::GraphicsContext::performingPaintInvalidation const): 47 (WebCore::GraphicsContext::invalidatingControlTints const): 48 (WebCore::GraphicsContext::invalidatingImagesWithAsyncDecodes const): 49 (WebCore::GraphicsContext::updatingControlTints const): Deleted. 50 * rendering/RenderBoxModelObject.cpp: 51 (WebCore::RenderBoxModelObject::paintFillLayerExtended): 52 * rendering/RenderImage.cpp: 53 (WebCore::RenderImage::paintReplaced): 54 (WebCore::RenderImage::paintAreaElementFocusRing): 55 (WebCore::RenderImage::paintIntoRect): 56 * rendering/RenderLayer.cpp: 57 (WebCore::RenderLayer::paintScrollCorner): 58 (WebCore::RenderLayer::paintResizer): 59 (WebCore::RenderLayer::paintLayer): 60 * rendering/RenderScrollbar.cpp: 61 (WebCore::RenderScrollbar::paint): 62 * rendering/RenderTheme.cpp: 63 (WebCore::RenderTheme::paint): 64 * testing/Internals.cpp: 65 (WebCore::Internals::invalidateControlTints): 66 (WebCore::Internals::paintControlTints): Deleted. 67 * testing/Internals.h: 68 * testing/Internals.idl: 69 1 70 2018-07-16 Ryan Haddad <ryanhaddad@apple.com> 2 71 -
trunk/Source/WebCore/loader/cache/CachedImage.cpp
r233668 r233872 131 131 132 132 m_pendingContainerContextRequests.remove(&static_cast<CachedImageClient&>(client)); 133 m_ pendingImageDrawingClients.remove(&static_cast<CachedImageClient&>(client));133 m_clienstWaitingForAsyncDecoding.remove(&static_cast<CachedImageClient&>(client)); 134 134 135 135 if (m_svgImageCache) … … 141 141 } 142 142 143 void CachedImage::addPendingImageDrawingClient(CachedImageClient& client) 143 bool CachedImage::isClientWaitingForAsyncDecoding(CachedImageClient& client) const 144 { 145 return m_clienstWaitingForAsyncDecoding.contains(&client); 146 } 147 148 void CachedImage::addClientWaitingForAsyncDecoding(CachedImageClient& client) 144 149 { 145 150 ASSERT(client.resourceClientType() == CachedImageClient::expectedType()); 146 if (m_ pendingImageDrawingClients.contains(&client))151 if (m_clienstWaitingForAsyncDecoding.contains(&client)) 147 152 return; 148 153 if (!m_clients.contains(&client)) { … … 150 155 // renderer uses the style of the <body> element, see RenderView::rendererForRootBackground(). 151 156 // In this case, the client we are asked to add is the root box renderer. Since we can't add 152 // a client to m_ pendingImageDrawingClientsunless it is one of the m_clients, we are going157 // a client to m_clienstWaitingForAsyncDecoding unless it is one of the m_clients, we are going 153 158 // to cancel the repaint optimization we do in CachedImage::imageFrameAvailable() by adding 154 // all the m_clients to m_ pendingImageDrawingClients.159 // all the m_clients to m_clienstWaitingForAsyncDecoding. 155 160 CachedResourceClientWalker<CachedImageClient> walker(m_clients); 156 161 while (auto* client = walker.next()) 157 m_ pendingImageDrawingClients.add(client);162 m_clienstWaitingForAsyncDecoding.add(client); 158 163 } else 159 m_pendingImageDrawingClients.add(&client); 164 m_clienstWaitingForAsyncDecoding.add(&client); 165 } 166 167 void CachedImage::removeAllClientsWaitingForAsyncDecoding() 168 { 169 if (m_clienstWaitingForAsyncDecoding.isEmpty() || !hasImage() || !is<BitmapImage>(image())) 170 return; 171 downcast<BitmapImage>(image())->stopAsyncDecodingQueue(); 172 for (auto* client : m_clienstWaitingForAsyncDecoding) 173 client->imageChanged(this); 174 m_clienstWaitingForAsyncDecoding.clear(); 160 175 } 161 176 … … 182 197 { 183 198 m_pendingContainerContextRequests.clear(); 184 m_ pendingImageDrawingClients.clear();199 m_clienstWaitingForAsyncDecoding.clear(); 185 200 if (m_image && !errorOccurred()) 186 201 m_image->resetAnimation(); … … 324 339 clearImage(); 325 340 m_pendingContainerContextRequests.clear(); 326 m_ pendingImageDrawingClients.clear();341 m_clienstWaitingForAsyncDecoding.clear(); 327 342 setEncodedSize(0); 328 343 } … … 348 363 } 349 364 m_pendingContainerContextRequests.clear(); 350 m_ pendingImageDrawingClients.clear();365 m_clienstWaitingForAsyncDecoding.clear(); 351 366 } 352 367 } … … 613 628 while (CachedImageClient* client = clientWalker.next()) { 614 629 // All the clients of animated images have to be notified. The new frame has to be drawn in all of them. 615 if (animatingState == ImageAnimatingState::No && !m_ pendingImageDrawingClients.contains(client))630 if (animatingState == ImageAnimatingState::No && !m_clienstWaitingForAsyncDecoding.contains(client)) 616 631 continue; 617 632 if (client->imageFrameAvailable(*this, animatingState, changeRect) == VisibleInViewportState::Yes) … … 623 638 624 639 if (decodingStatus != DecodingStatus::Partial) 625 m_ pendingImageDrawingClients.clear();640 m_clienstWaitingForAsyncDecoding.clear(); 626 641 } 627 642 -
trunk/Source/WebCore/loader/cache/CachedImage.h
r233839 r233872 86 86 bool isOriginClean(SecurityOrigin*); 87 87 88 void addPendingImageDrawingClient(CachedImageClient&); 88 bool isClientWaitingForAsyncDecoding(CachedImageClient&) const; 89 void addClientWaitingForAsyncDecoding(CachedImageClient&); 90 void removeAllClientsWaitingForAsyncDecoding(); 89 91 90 92 void setForceUpdateImageDataEnabledForTesting(bool enabled) { m_forceUpdateImageDataEnabledForTesting = enabled; } … … 171 173 ContainerContextRequests m_pendingContainerContextRequests; 172 174 173 HashSet<CachedImageClient*> m_ pendingImageDrawingClients;175 HashSet<CachedImageClient*> m_clienstWaitingForAsyncDecoding; 174 176 175 177 RefPtr<CachedImageObserver> m_imageObserver; -
trunk/Source/WebCore/page/FrameView.cpp
r233794 r233872 3870 3870 void FrameView::paintScrollCorner(GraphicsContext& context, const IntRect& cornerRect) 3871 3871 { 3872 if (context. updatingControlTints()) {3872 if (context.invalidatingControlTints()) { 3873 3873 updateScrollCorner(); 3874 3874 return; … … 4007 4007 RenderView* renderView = this->renderView(); 4008 4008 if ((renderView && renderView->theme().supportsControlTints()) || hasCustomScrollbars()) 4009 paintControlTints();4009 invalidateControlTints(); 4010 4010 4011 4011 if (page) … … 4013 4013 } 4014 4014 4015 void FrameView:: paintControlTints()4015 void FrameView::traverseForPaintInvalidation(GraphicsContext::PaintInvalidationReasons paintInvalidationReasons) 4016 4016 { 4017 4017 if (needsLayout()) 4018 4018 layoutContext().layout(); 4019 4019 4020 GraphicsContext context( GraphicsContext::NonPaintingReasons::UpdatingControlTints);4020 GraphicsContext context(paintInvalidationReasons); 4021 4021 if (platformWidget()) { 4022 4022 // FIXME: consult paintsEntireContents(). … … 4487 4487 } 4488 4488 // Use a context with painting disabled. 4489 GraphicsContext context(GraphicsContext:: NonPaintingReasons::NoReasons);4489 GraphicsContext context(GraphicsContext::PaintInvalidationReasons::None); 4490 4490 renderView->setTruncatedAt(static_cast<int>(floorf(oldBottom))); 4491 4491 IntRect dirtyRect(0, static_cast<int>(floorf(oldTop)), renderView->layoutOverflowRect().maxX(), static_cast<int>(ceilf(oldBottom - oldTop))); -
trunk/Source/WebCore/page/FrameView.h
r233623 r233872 29 29 #include "ContainerNode.h" 30 30 #include "FrameViewLayoutContext.h" 31 #include "GraphicsContext.h" 31 32 #include "LayoutMilestones.h" 32 33 #include "LayoutRect.h" … … 640 641 WEBCORE_EXPORT FrameFlattening effectiveFrameFlattening() const; 641 642 643 WEBCORE_EXPORT void traverseForPaintInvalidation(GraphicsContext::PaintInvalidationReasons); 644 void invalidateControlTints() { traverseForPaintInvalidation(GraphicsContext::PaintInvalidationReasons::InvalidatingControlTints); } 645 void invalidateImagesWithAsyncDecodes() { traverseForPaintInvalidation(GraphicsContext::PaintInvalidationReasons::InvalidatingImagesWithAsyncDecodes); } 646 642 647 protected: 643 648 bool scrollContentsFastPath(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect) final; … … 682 687 683 688 void updateOverflowStatus(bool horizontalOverflow, bool verticalOverflow); 684 685 WEBCORE_EXPORT void paintControlTints();686 689 687 690 void forceLayoutParentViewIfNeeded(); -
trunk/Source/WebCore/platform/ScrollView.cpp
r233376 r233872 1168 1168 } 1169 1169 1170 if (context.paintingDisabled() && !context. updatingControlTints())1170 if (context.paintingDisabled() && !context.performingPaintInvalidation()) 1171 1171 return; 1172 1172 -
trunk/Source/WebCore/platform/Scrollbar.cpp
r222422 r233872 159 159 void Scrollbar::paint(GraphicsContext& context, const IntRect& damageRect, Widget::SecurityOriginPaintPolicy) 160 160 { 161 if (context. updatingControlTints() && theme().supportsControlTints()) {161 if (context.invalidatingControlTints() && theme().supportsControlTints()) { 162 162 invalidate(); 163 163 return; -
trunk/Source/WebCore/platform/graphics/BitmapImage.h
r232802 r233872 110 110 void setLargeImageAsyncDecodingEnabledForTesting(bool enabled) { m_largeImageAsyncDecodingEnabledForTesting = enabled; } 111 111 bool isLargeImageAsyncDecodingEnabledForTesting() const { return m_largeImageAsyncDecodingEnabledForTesting; } 112 void stopAsyncDecodingQueue() { m_source->stopAsyncDecodingQueue(); } 112 113 113 114 WEBCORE_EXPORT unsigned decodeCountForTesting() const; -
trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp
r233075 r233872 327 327 } 328 328 329 GraphicsContext::GraphicsContext( NonPaintingReasons nonPaintingReasons)330 : m_ nonPaintingReasons(nonPaintingReasons)329 GraphicsContext::GraphicsContext(PaintInvalidationReasons paintInvalidationReasons) 330 : m_paintInvalidationReasons(paintInvalidationReasons) 331 331 { 332 332 } -
trunk/Source/WebCore/platform/graphics/GraphicsContext.h
r233814 r233872 268 268 WEBCORE_EXPORT ~GraphicsContext(); 269 269 270 enum class NonPaintingReasons { 271 NoReasons, 272 UpdatingControlTints 270 enum class PaintInvalidationReasons : uint8_t { 271 None, 272 InvalidatingControlTints, 273 InvalidatingImagesWithAsyncDecodes 273 274 }; 274 GraphicsContext( NonPaintingReasons);275 GraphicsContext(PaintInvalidationReasons); 275 276 276 277 WEBCORE_EXPORT bool hasPlatformContext() const; … … 278 279 279 280 bool paintingDisabled() const { return !m_data && !m_impl; } 280 bool updatingControlTints() const { return m_nonPaintingReasons == NonPaintingReasons::UpdatingControlTints; } 281 bool performingPaintInvalidation() const { return m_paintInvalidationReasons != PaintInvalidationReasons::None; } 282 bool invalidatingControlTints() const { return m_paintInvalidationReasons == PaintInvalidationReasons::InvalidatingControlTints; } 283 bool invalidatingImagesWithAsyncDecodes() const { return m_paintInvalidationReasons == PaintInvalidationReasons::InvalidatingImagesWithAsyncDecodes; } 281 284 282 285 void setStrokeThickness(float); … … 639 642 Vector<GraphicsContextState, 1> m_stack; 640 643 641 const NonPaintingReasons m_nonPaintingReasons { NonPaintingReasons::NoReasons};644 const PaintInvalidationReasons m_paintInvalidationReasons { PaintInvalidationReasons::None }; 642 645 unsigned m_transparencyCount { 0 }; 643 646 }; -
trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp
r233869 r233872 758 758 bool shouldPaintBackgroundImage = bgImage && bgImage->canRender(this, style().effectiveZoom()); 759 759 760 if (context.invalidatingImagesWithAsyncDecodes()) { 761 if (shouldPaintBackgroundImage && bgImage->cachedImage()->isClientWaitingForAsyncDecoding(*this)) 762 bgImage->cachedImage()->removeAllClientsWaitingForAsyncDecoding(); 763 return; 764 } 765 760 766 bool forceBackgroundToWhite = false; 761 767 if (document().printing()) { … … 979 985 if (drawResult == ImageDrawResult::DidRequestDecoding) { 980 986 ASSERT(bgImage->isCachedImage()); 981 bgImage->cachedImage()->add PendingImageDrawingClient(*this);987 bgImage->cachedImage()->addClientWaitingForAsyncDecoding(*this); 982 988 } 983 989 } -
trunk/Source/WebCore/rendering/RenderImage.cpp
r233315 r233872 401 401 void RenderImage::paintReplaced(PaintInfo& paintInfo, const LayoutPoint& paintOffset) 402 402 { 403 GraphicsContext& context = paintInfo.context(); 404 if (context.invalidatingImagesWithAsyncDecodes()) { 405 if (cachedImage() && cachedImage()->isClientWaitingForAsyncDecoding(*this)) 406 cachedImage()->removeAllClientsWaitingForAsyncDecoding(); 407 return; 408 } 409 403 410 auto contentSize = this->contentSize(); 404 405 GraphicsContext& context = paintInfo.context();406 411 float deviceScaleFactor = document().deviceScaleFactor(); 407 412 LayoutUnit missingImageBorderWidth(1 / deviceScaleFactor); … … 533 538 return; 534 539 535 if (paintInfo.context().paintingDisabled() && !paintInfo.context(). updatingControlTints())540 if (paintInfo.context().paintingDisabled() && !paintInfo.context().performingPaintInvalidation()) 536 541 return; 537 542 … … 615 620 auto drawResult = paintInfo.context().drawImage(*img, rect, ImagePaintingOptions(compositeOperator, BlendModeNormal, decodingMode, orientationDescription, interpolation)); 616 621 if (drawResult == ImageDrawResult::DidRequestDecoding) 617 imageResource().cachedImage()->add PendingImageDrawingClient(*this);622 imageResource().cachedImage()->addClientWaitingForAsyncDecoding(*this); 618 623 619 624 #if USE(SYSTEM_PREVIEW) -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r233851 r233872 3701 3701 return; 3702 3702 3703 if (context. updatingControlTints()) {3703 if (context.invalidatingControlTints()) { 3704 3704 updateScrollCornerStyle(); 3705 3705 return; … … 3761 3761 return; 3762 3762 3763 if (context. updatingControlTints()) {3763 if (context.invalidatingControlTints()) { 3764 3764 updateResizerStyle(); 3765 3765 return; … … 3966 3966 { 3967 3967 if (isComposited()) { 3968 // The updatingControlTints() painting pass goes through compositing layers,3968 // The performingPaintInvalidation() painting pass goes through compositing layers, 3969 3969 // but we need to ensure that we don't cache clip rects computed with the wrong root in this case. 3970 if (context. updatingControlTints() || (paintingInfo.paintBehavior & PaintBehaviorFlattenCompositingLayers))3970 if (context.performingPaintInvalidation() || (paintingInfo.paintBehavior & PaintBehaviorFlattenCompositingLayers)) 3971 3971 paintFlags |= PaintLayerTemporaryClipRects; 3972 3972 else if (!backing()->paintsIntoWindow() -
trunk/Source/WebCore/rendering/RenderScrollbar.cpp
r232178 r233872 103 103 void RenderScrollbar::paint(GraphicsContext& context, const IntRect& damageRect, Widget::SecurityOriginPaintPolicy) 104 104 { 105 if (context. updatingControlTints()) {105 if (context.invalidatingControlTints()) { 106 106 updateScrollbarParts(); 107 107 return; -
trunk/Source/WebCore/rendering/RenderTheme.cpp
r233814 r233872 276 276 // If we are updating control tints, just schedule a repaint if the theme supports tinting 277 277 // for that control. 278 if (paintInfo.context(). updatingControlTints()) {278 if (paintInfo.context().invalidatingControlTints()) { 279 279 if (controlSupportsTints(box)) 280 280 box.repaint(); -
trunk/Source/WebCore/testing/Internals.cpp
r233671 r233872 1811 1811 } 1812 1812 1813 ExceptionOr<void> Internals:: paintControlTints()1813 ExceptionOr<void> Internals::invalidateControlTints() 1814 1814 { 1815 1815 Document* document = contextDocument(); … … 1817 1817 return Exception { InvalidAccessError }; 1818 1818 1819 document->view()-> paintControlTints();1819 document->view()->invalidateControlTints(); 1820 1820 return { }; 1821 1821 } -
trunk/Source/WebCore/testing/Internals.h
r233671 r233872 254 254 ExceptionOr<String> autofillFieldName(Element&); 255 255 256 ExceptionOr<void> paintControlTints();256 ExceptionOr<void> invalidateControlTints(); 257 257 258 258 RefPtr<Range> rangeFromLocationAndLength(Element& scope, int rangeLocation, int rangeLength); -
trunk/Source/WebCore/testing/Internals.idl
r233671 r233872 238 238 [MayThrowException] DOMString autofillFieldName(Element formControlElement); 239 239 240 [MayThrowException] void paintControlTints();240 [MayThrowException] void invalidateControlTints(); 241 241 242 242 [MayThrowException] void scrollElementToRect(Element element, long x, long y, long w, long h); -
trunk/Source/WebKit/ChangeLog
r233869 r233872 1 2018-07-16 Said Abou-Hallawa <sabouhallawa@apple.com> 2 3 [iOS] When bringing MobileSafari to the foreground, images, which are pending decoding, won't be drawn into the immediate-paint transaction 4 https://bugs.webkit.org/show_bug.cgi?id=187375 5 6 Reviewed by Simon Fraser. 7 8 For immediate-paint transaction, we should force all the images which are 9 pending decoding to be repainted before building this transaction. 10 11 * WebProcess/Plugins/PDF/PDFPlugin.mm: 12 (WebKit::PDFPlugin::updateControlTints): 13 * WebProcess/Plugins/PluginView.cpp: 14 (WebKit::PluginView::paint): 15 * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: 16 (WebKit::RemoteLayerTreeDrawingArea::flushLayers): 17 1 18 2018-07-11 Dean Jackson <dino@apple.com> 2 19 -
trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm
r233769 r233872 1203 1203 void PDFPlugin::updateControlTints(GraphicsContext& graphicsContext) 1204 1204 { 1205 ASSERT(graphicsContext. updatingControlTints());1205 ASSERT(graphicsContext.invalidatingControlTints()); 1206 1206 1207 1207 if (m_horizontalScrollbar) -
trunk/Source/WebKit/WebProcess/Plugins/PluginView.cpp
r232198 r233872 789 789 790 790 if (context.paintingDisabled()) { 791 if (context. updatingControlTints())791 if (context.invalidatingControlTints()) 792 792 m_plugin->updateControlTints(context); 793 793 return; -
trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm
r233781 r233872 352 352 } forPhase:kCATransactionPhasePostCommit]; 353 353 354 if (m_nextFlushIsForImmediatePaint) 355 m_webPage.mainFrameView()->invalidateImagesWithAsyncDecodes(); 356 354 357 m_webPage.mainFrameView()->flushCompositingStateIncludingSubframes(); 355 358
Note: See TracChangeset
for help on using the changeset viewer.