Factor pending CSS resources into a struct
https://bugs.webkit.org/show_bug.cgi?id=159268
Reviewed by Andreas Kling.
To fix resource loading related re-entrancy issues in StyleResolver we should move the triggering of
resource loads outside the style resolver. The first step for that is to capture pending resources to a struct.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::cachedOrPendingImage):
- css/CSSCursorImageValue.h:
- css/CSSGradientValue.cpp:
(WebCore::GradientStop::GradientStop):
(WebCore::CSSGradientValue::gradientWithStylesResolved):
(WebCore::CSSGradientValue::loadSubimages):
(WebCore::CSSGradientValue::CSSGradientValue):
- css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::cachedImageSet):
(WebCore::CSSImageSetValue::cachedOrPendingImageSet):
- css/CSSImageSetValue.h:
- css/StyleResolver.cpp:
(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::State::setParentStyle):
(WebCore::StyleResolver::State::ensurePendingResources):
(WebCore::isAtShadowBoundary):
(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):
(WebCore::filterOperationForType):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingResources):
(WebCore::StyleResolver::MatchedProperties::MatchedProperties):
(WebCore::StyleResolver::loadPendingSVGDocuments): Deleted.
(WebCore::StyleResolver::loadPendingImage): Deleted.
(WebCore::StyleResolver::loadPendingShapeImage): Deleted.
(WebCore::StyleResolver::loadPendingImages): Deleted.
(WebCore::StyleResolver::rootElementStyle):
(WebCore::StyleResolver::element):
(WebCore::StyleResolver::document):
(WebCore::StyleResolver::documentSettings):
(WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::State::applyPropertyToRegularStyle):
(WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::State::setFontDirty):
(WebCore::StyleResolver::State::fontDirty):
(WebCore::StyleResolver::State::useSVGZoomRules):
(WebCore::StyleResolver::State::takePendingResources):
(WebCore::StyleResolver::State::cssToLengthConversionData):
(WebCore::StyleResolver::State::cascadeLevel):
(WebCore::StyleResolver::State::setCascadeLevel):
(WebCore::StyleResolver::state):
(WebCore::StyleResolver::State::pendingImageProperties): Deleted.
(WebCore::StyleResolver::State::filtersWithPendingSVGDocuments): Deleted.
- style/StylePendingResources.cpp: Added.
(WebCore::Style::loadPendingImage):
(WebCore::Style::loadPendingImages):
(WebCore::Style::loadPendingSVGFilters):
(WebCore::Style::loadPendingResources):
Move the functions for triggering the resource loads from StyleResolver.
- style/StylePendingResources.h: Added.
Add struct for pending resources.