Skip to content
  • betravis@adobe.com's avatar
    [CSS Exclusions][CSS Shapes] Split CSS Exclusions & Shapes compile & runtime flags · ed90c982
    betravis@adobe.com authored
    https://bugs.webkit.org/show_bug.cgi?id=117172
    
    Reviewed by Alexandru Chiculita.
    
    .:
    
    Adding the CSS_SHAPES compile flag.
    
    * Source/autotools/SetupWebKitFeatures.m4:
    * Source/autotools/symbols.filter:
    * Source/cmake/WebKitFeatures.cmake:
    * Source/cmakeconfig.h.cmake:
    
    Source/JavaScriptCore:
    
    Adding the CSS_SHAPES compile flag.
    
    * Configurations/FeatureDefines.xcconfig:
    
    Source/WebCore:
    
    This patch adds a new compile and runtime flag for the CSS Shapes feature, which
    has split off from the previous CSS Exclusions and Shapes specification. The
    specifications are available here:
    http://dev.w3.org/csswg/css-exclusions/
    http://dev.w3.org/csswg/css-shapes/
    
    The changes introduce a new CSS_SHAPES compile flag, and a new cssShapesEnabled
    runtime flag. In general, the code changes are simple renames.
    
    Refactoring, no new tests.
    
    * bindings/generic/RuntimeEnabledFeatures.h:
    (WebCore::RuntimeEnabledFeatures::setCSSShapesEnabled):
    (WebCore::RuntimeEnabledFeatures::cssShapesEnabled):
    * css/CSSComputedStyleDeclaration.cpp:
    (WebCore::ComputedStyleExtractor::propertyValue):
    * css/CSSParser.cpp:
    (WebCore::isSimpleLengthPropertyID):
    (WebCore::CSSParser::parseValue):
    * css/CSSProperty.cpp:
    (WebCore::CSSProperty::isInheritedProperty):
    * css/DeprecatedStyleBuilder.cpp:
    (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
    * css/StyleResolver.cpp:
    (WebCore::StyleResolver::applyProperty):
    (WebCore::StyleResolver::loadPendingImages):
    * page/animation/CSSPropertyAnimation.cpp:
    (WebCore::CSSPropertyAnimation::ensurePropertyMap):
    * rendering/BidiRun.h:
    (WebCore::BidiRun::BidiRun):
    * rendering/ExclusionShapeInfo.cpp:
    * rendering/ExclusionShapeInfo.h:
    * rendering/ExclusionShapeInsideInfo.cpp:
    * rendering/ExclusionShapeInsideInfo.h:
    * rendering/ExclusionShapeOutsideInfo.cpp:
    * rendering/ExclusionShapeOutsideInfo.h:
    * rendering/LayoutState.cpp:
    (WebCore::LayoutState::LayoutState):
    * rendering/LayoutState.h:
    (WebCore::LayoutState::LayoutState):
    * rendering/RenderBlock.cpp:
    (WebCore::RenderBlock::styleDidChange):
    (WebCore::exclusionInfoRequiresRelayout):
    (WebCore::RenderBlock::updateRegionsAndExclusionsBeforeChildLayout):
    (WebCore::RenderBlock::updateRegionsAndExclusionsAfterChildLayout):
    (WebCore::RenderBlock::insertFloatingObject):
    (WebCore::RenderBlock::computeLogicalLocationForFloat):
    (WebCore::RenderBlock::positionNewFloats):
    (WebCore::::collectIfNeeded):
    (WebCore::RenderBlock::logicalLeftOffsetForLine):
    (WebCore::RenderBlock::logicalRightOffsetForLine):
    * rendering/RenderBlock.h:
    (WebCore::RenderBlock::xPositionForFloatIncludingMargin):
    (WebCore::RenderBlock::yPositionForFloatIncludingMargin):
    (WebCore::RenderBlock::FloatIntervalSearchAdapter::FloatIntervalSearchAdapter):
    * rendering/RenderBlockLineLayout.cpp:
    (WebCore::LineWidth::LineWidth):
    (WebCore::LineWidth::updateAvailableWidth):
    (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
    (WebCore::RenderBlock::constructLine):
    (WebCore::computeExpansionForJustifiedText):
    (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
    (WebCore::RenderBlock::computeInlineDirectionPositionsForSegment):
    (WebCore::constructBidiRunsForLine):
    (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
    (WebCore::RenderBlock::LineBreaker::nextLineBreak):
    (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
    * rendering/RenderBox.cpp:
    (WebCore::RenderBox::willBeDestroyed):
    (WebCore::RenderBox::styleDidChange):
    * rendering/RenderBox.h:
    * rendering/RenderBoxModelObject.cpp:
    (WebCore::RenderBoxModelObject::paintOffset):
    * rendering/RenderLayer.cpp:
    (WebCore::RenderLayer::shouldBeNormalFlowOnly):
    * rendering/RenderObject.h:
    (WebCore::RenderObject::hasPaintOffset):
    * rendering/RenderView.h:
    (WebCore::RenderView::pushLayoutState):
    * rendering/style/RenderStyle.cpp:
    (WebCore::RenderStyle::changeRequiresLayout):
    * rendering/style/RenderStyle.h:
    * testing/InternalSettings.cpp:
    (WebCore::InternalSettings::Backup::Backup):
    (WebCore::InternalSettings::Backup::restoreTo):
    (WebCore::InternalSettings::setCSSShapesEnabled):
    
    Source/WebKit/blackberry:
    
    Adding the CSS_SHAPES compile flag.
    
    * WebCoreSupport/AboutDataEnableFeatures.in:
    
    Source/WebKit/mac:
    
    Adding the CSS_SHAPES compile flag.
    
    * Configurations/FeatureDefines.xcconfig:
    
    Source/WebKit2:
    
    Adding the CSS_SHAPES compile flag.
    
    * Configurations/FeatureDefines.xcconfig:
    
    Tools:
    
    Adding the CSS_SHAPES compile flag.
    
    * Scripts/webkitperl/FeatureList.pm:
    * qmake/mkspecs/features/features.pri:
    
    WebKitLibraries:
    
    Adding the CSS_SHAPES compile flag.
    
    * win/tools32/vsprops/FeatureDefines.vsprops:
    * win/tools32/vsprops/FeatureDefinesCairo.vsprops:
    
    LayoutTests:
    
    Adjusting the shape inside tests to use the new setCSSShapesEnabled method, rather
    than the older setCSSExclusionsEnabled method.
    
    * fast/exclusions/css-exclusions-disabled.html:
    * fast/exclusions/parsing/script-tests/parsing-shape-inside.js:
    * fast/exclusions/parsing/script-tests/parsing-shape-lengths.js:
    * fast/exclusions/parsing/script-tests/parsing-shape-margin.js:
    * fast/exclusions/parsing/script-tests/parsing-shape-outside.js:
    * fast/exclusions/parsing/script-tests/parsing-shape-padding.js:
    * fast/exclusions/resources/multi-segment-polygon.js:
    (generatePolygon):
    * fast/exclusions/resources/simple-polygon.js:
    * fast/exclusions/resources/simple-rectangle.js:
    * fast/exclusions/shape-inside/shape-inside-animation.html:
    * fast/exclusions/shape-inside/shape-inside-bottom-edge.html:
    * fast/exclusions/shape-inside/shape-inside-box-sizing.html:
    * fast/exclusions/shape-inside/shape-inside-circle-padding.html:
    * fast/exclusions/shape-inside/shape-inside-circle.html:
    * fast/exclusions/shape-inside/shape-inside-coincident-vertices-expected.html:
    * fast/exclusions/shape-inside/shape-inside-coincident-vertices.html:
    * fast/exclusions/shape-inside/shape-inside-collinear-vertices-expected.html:
    * fast/exclusions/shape-inside/shape-inside-collinear-vertices.html:
    * fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon-expected.html:
    * fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html:
    * fast/exclusions/shape-inside/shape-inside-dynamic-nested-expected.html:
    * fast/exclusions/shape-inside/shape-inside-dynamic-nested.html:
    * fast/exclusions/shape-inside/shape-inside-dynamic-shape.html:
    * fast/exclusions/shape-inside/shape-inside-dynamic-text.html:
    * fast/exclusions/shape-inside/shape-inside-ellipse-padding.html:
    * fast/exclusions/shape-inside/shape-inside-ellipse.html:
    * fast/exclusions/shape-inside/shape-inside-empty-expected.html:
    * fast/exclusions/shape-inside/shape-inside-empty.html:
    * fast/exclusions/shape-inside/shape-inside-first-fit-001.html:
    * fast/exclusions/shape-inside/shape-inside-first-fit-002.html:
    * fast/exclusions/shape-inside/shape-inside-first-fit-003.html:
    * fast/exclusions/shape-inside/shape-inside-first-fit-004-expected.html:
    * fast/exclusions/shape-inside/shape-inside-first-fit-004.html:
    * fast/exclusions/shape-inside/shape-inside-first-fit-reflex.html:
    * fast/exclusions/shape-inside/shape-inside-inline-elements.html:
    * fast/exclusions/shape-inside/shape-inside-multiple-blocks-vertical.html:
    * fast/exclusions/shape-inside/shape-inside-multiple-blocks.html:
    * fast/exclusions/shape-inside/shape-inside-on-nested-container-with-unresolved-height.html:
    * fast/exclusions/shape-inside/shape-inside-overflow-fixed-dimensions.html:
    * fast/exclusions/shape-inside/shape-inside-overflow.html:
    * fast/exclusions/shape-inside/shape-inside-partial-fill-001.html:
    * fast/exclusions/shape-inside/shape-inside-partial-fill-002.html:
    * fast/exclusions/shape-inside/shape-inside-percentage-auto.html:
    * fast/exclusions/shape-inside/shape-inside-percentage.html:
    * fast/exclusions/shape-inside/shape-inside-polygon-layout.html:
    * fast/exclusions/shape-inside/shape-inside-polygon-padding-001.html:
    * fast/exclusions/shape-inside/shape-inside-polygon-padding-002.html:
    * fast/exclusions/shape-inside/shape-inside-polygon-padding-003.html:
    * fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html:
    * fast/exclusions/shape-inside/shape-inside-polygon-zoom.html:
    * fast/exclusions/shape-inside/shape-inside-rectangle-padding.html:
    * fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001-expected.html:
    * fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001.html:
    * fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002-expected.html:
    * fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002.html:
    * fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003-expected.html:
    * fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003.html:
    * fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004-expected.html:
    * fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004.html:
    * fast/exclusions/shape-inside/shape-inside-regular-polygon16-expected.html:
    * fast/exclusions/shape-inside/shape-inside-regular-polygon16.html:
    * fast/exclusions/shape-inside/shape-inside-regular-polygon8-expected.html:
    * fast/exclusions/shape-inside/shape-inside-regular-polygon8.html:
    * fast/exclusions/shape-inside/shape-inside-rounded-rectangle-001.html:
    * fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-001-expected.html:
    * fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-001.html:
    * fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-002-expected.html:
    * fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-002.html:
    * fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-003-expected.html:
    * fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-003.html:
    * fast/exclusions/shape-inside/shape-inside-rounded-rectangle-padding.html:
    * fast/exclusions/shape-inside/shape-inside-shape-logical-top.html:
    * fast/exclusions/shape-inside/shape-inside-sibling-block-dimension-change-needs-relayout-expected.html:
    * fast/exclusions/shape-inside/shape-inside-sibling-block-dimension-change-needs-relayout.html:
    * fast/exclusions/shape-inside/shape-inside-text.html:
    * fast/exclusions/shape-inside/shape-inside-vertical-text.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-diamond-margin-polygon.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-bottom.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-left.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-right.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-left-margin-polygon.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-margin-is-ignored.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-non-zero-y.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-overflow-hidden.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-overhang.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-positioning.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-right-margin-polygon.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-circle.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-ellipse.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-inset-rectangle-percentage.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-inset-rectangle.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-polygon.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle-horizontal-multiple.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle-percentage.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rounded-inset-rectangle.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rounded-rectangle-001.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rounded-rectangle-002.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rounded-rectangle-003.html:
    * fast/exclusions/shape-outside-floats/shape-outside-floats-stacked.html:
    * fast/regions/shape-inside/shape-inside-on-additional-regions.html:
    * fast/regions/shape-inside/shape-inside-on-first-region-block-content.html:
    * fast/regions/shape-inside/shape-inside-on-first-region-inline-content-expected.html:
    * fast/regions/shape-inside/shape-inside-on-first-region-inline-content.html:
    * fast/regions/shape-inside/shape-inside-on-regions-block-content-basic-overflow-shape-top-offset.html:
    * fast/regions/shape-inside/shape-inside-on-regions-block-content-overflow-multiple-shapes.html:
    * fast/regions/shape-inside/shape-inside-on-regions-expected.html:
    * fast/regions/shape-inside/shape-inside-on-regions-inline-content-basic-overflow-shape-top-offset.html:
    * fast/regions/shape-inside/shape-inside-on-regions-inline-content-overflow-multiple-shapes.html:
    * fast/regions/shape-inside/shape-inside-on-regions-inline-content.html:
    * fast/regions/shape-inside/shape-inside-on-regions.html:
    * fast/regions/shape-inside/shape-inside-on-second-region-block-content.html:
    * fast/regions/shape-inside/shape-inside-on-second-region-inline-content.html:
    * fast/regions/shape-inside/shape-inside-recursive-layout.html:
    * fast/regions/shape-inside/shape-inside-with-region-borders.html:
    * fast/regions/shape-inside/shape-inside-with-region-padding.html:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@151247 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    ed90c982