| Index: Source/core/page/RuntimeCSSEnabled.cpp
|
| diff --git a/Source/core/page/RuntimeCSSEnabled.cpp b/Source/core/page/RuntimeCSSEnabled.cpp
|
| deleted file mode 100644
|
| index 55b1c54830ff30e084c5f06175e09164af4cd097..0000000000000000000000000000000000000000
|
| --- a/Source/core/page/RuntimeCSSEnabled.cpp
|
| +++ /dev/null
|
| @@ -1,172 +0,0 @@
|
| -/*
|
| - * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions
|
| - * are met:
|
| - *
|
| - * 1. Redistributions of source code must retain the above
|
| - * copyright notice, this list of conditions and the following
|
| - * disclaimer.
|
| - * 2. Redistributions in binary form must reproduce the above
|
| - * copyright notice, this list of conditions and the following
|
| - * disclaimer in the documentation and/or other materials
|
| - * provided with the distribution.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
| - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
| - * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
| - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
| - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
| - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
| - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
| - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
| - * OF THE POSSIBILITY OF SUCH DAMAGE.
|
| - */
|
| -
|
| -#include "config.h"
|
| -#include "core/page/RuntimeCSSEnabled.h"
|
| -#include "RuntimeEnabledFeatures.h"
|
| -
|
| -namespace WebCore {
|
| -
|
| -// FIXME: We should use a real BitVector class instead!
|
| -typedef Vector<bool> BoolVector;
|
| -
|
| -static void setCSSPropertiesEnabled(CSSPropertyID* properties, size_t length, bool featureFlag)
|
| -{
|
| - for (size_t i = 0; i < length; i++)
|
| - RuntimeCSSEnabled::setCSSPropertyEnabled(properties[i], featureFlag);
|
| -}
|
| -
|
| -static void setPropertySwitchesFromRuntimeFeatures()
|
| -{
|
| - CSSPropertyID regionProperites[] = {
|
| - CSSPropertyWebkitFlowInto,
|
| - CSSPropertyWebkitFlowFrom,
|
| - CSSPropertyWebkitRegionFragment,
|
| - CSSPropertyWebkitRegionBreakAfter,
|
| - CSSPropertyWebkitRegionBreakBefore,
|
| - CSSPropertyWebkitRegionBreakInside
|
| - };
|
| - setCSSPropertiesEnabled(regionProperites, WTF_ARRAY_LENGTH(regionProperites), RuntimeEnabledFeatures::cssRegionsEnabled());
|
| - CSSPropertyID exclusionProperties[] = {
|
| - CSSPropertyWebkitWrapFlow,
|
| - CSSPropertyWebkitWrapThrough,
|
| - };
|
| - setCSSPropertiesEnabled(exclusionProperties, WTF_ARRAY_LENGTH(exclusionProperties), RuntimeEnabledFeatures::cssExclusionsEnabled());
|
| - CSSPropertyID shapeProperties[] = {
|
| - CSSPropertyShapeMargin,
|
| - CSSPropertyShapePadding,
|
| - CSSPropertyShapeImageThreshold,
|
| - CSSPropertyShapeInside,
|
| - CSSPropertyShapeOutside,
|
| - };
|
| - setCSSPropertiesEnabled(shapeProperties, WTF_ARRAY_LENGTH(shapeProperties), RuntimeEnabledFeatures::cssShapesEnabled());
|
| - CSSPropertyID css3TextDecorationProperties[] = {
|
| - CSSPropertyTextDecorationColor,
|
| - CSSPropertyTextDecorationLine,
|
| - CSSPropertyTextDecorationStyle,
|
| - CSSPropertyTextUnderlinePosition,
|
| - };
|
| - setCSSPropertiesEnabled(css3TextDecorationProperties, WTF_ARRAY_LENGTH(css3TextDecorationProperties), RuntimeEnabledFeatures::css3TextDecorationsEnabled());
|
| - CSSPropertyID css3TextProperties[] = {
|
| - CSSPropertyTextAlignLast,
|
| - CSSPropertyTextJustify,
|
| - };
|
| - setCSSPropertiesEnabled(css3TextProperties, WTF_ARRAY_LENGTH(css3TextProperties), RuntimeEnabledFeatures::css3TextEnabled());
|
| - CSSPropertyID cssGridLayoutProperties[] = {
|
| - CSSPropertyGridAutoColumns,
|
| - CSSPropertyGridAutoRows,
|
| - CSSPropertyGridDefinitionColumns,
|
| - CSSPropertyGridDefinitionRows,
|
| - CSSPropertyGridColumnStart,
|
| - CSSPropertyGridColumnEnd,
|
| - CSSPropertyGridRowStart,
|
| - CSSPropertyGridRowEnd,
|
| - CSSPropertyGridColumn,
|
| - CSSPropertyGridRow,
|
| - CSSPropertyGridArea,
|
| - CSSPropertyGridAutoFlow,
|
| - CSSPropertyGridTemplate
|
| - };
|
| - setCSSPropertiesEnabled(cssGridLayoutProperties, WTF_ARRAY_LENGTH(cssGridLayoutProperties), RuntimeEnabledFeatures::cssGridLayoutEnabled());
|
| - CSSPropertyID cssObjectFitPositionProperties[] = {
|
| - CSSPropertyObjectFit,
|
| - CSSPropertyObjectPosition
|
| - };
|
| - setCSSPropertiesEnabled(cssObjectFitPositionProperties, WTF_ARRAY_LENGTH(cssObjectFitPositionProperties), RuntimeEnabledFeatures::objectFitPositionEnabled());
|
| -
|
| - CSSPropertyID animationProperties[] = {
|
| - CSSPropertyAnimation,
|
| - CSSPropertyAnimationName,
|
| - CSSPropertyAnimationDuration,
|
| - CSSPropertyAnimationTimingFunction,
|
| - CSSPropertyAnimationDelay,
|
| - CSSPropertyAnimationIterationCount,
|
| - CSSPropertyAnimationDirection,
|
| - CSSPropertyAnimationFillMode,
|
| - CSSPropertyAnimationPlayState
|
| - };
|
| - setCSSPropertiesEnabled(animationProperties, WTF_ARRAY_LENGTH(animationProperties), RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled());
|
| -
|
| - RuntimeCSSEnabled::setCSSPropertyEnabled(CSSPropertyBackgroundBlendMode, RuntimeEnabledFeatures::cssCompositingEnabled());
|
| - RuntimeCSSEnabled::setCSSPropertyEnabled(CSSPropertyMixBlendMode, RuntimeEnabledFeatures::cssCompositingEnabled());
|
| - RuntimeCSSEnabled::setCSSPropertyEnabled(CSSPropertyIsolation, RuntimeEnabledFeatures::cssCompositingEnabled());
|
| - RuntimeCSSEnabled::setCSSPropertyEnabled(CSSPropertyTouchAction, RuntimeEnabledFeatures::cssTouchActionEnabled());
|
| - RuntimeCSSEnabled::setCSSPropertyEnabled(CSSPropertyPaintOrder, RuntimeEnabledFeatures::svgPaintOrderEnabled());
|
| - RuntimeCSSEnabled::setCSSPropertyEnabled(CSSPropertyVariable, RuntimeEnabledFeatures::cssVariablesEnabled());
|
| - RuntimeCSSEnabled::setCSSPropertyEnabled(CSSPropertyMaskSourceType, RuntimeEnabledFeatures::cssMaskSourceTypeEnabled());
|
| - RuntimeCSSEnabled::setCSSPropertyEnabled(CSSPropertyColumnFill, RuntimeEnabledFeatures::regionBasedColumnsEnabled());
|
| -
|
| - // InternalCallback is an implementation detail, rather than an experimental feature, and should never be exposed to the web.
|
| - RuntimeCSSEnabled::setCSSPropertyEnabled(CSSPropertyInternalCallback, false);
|
| -}
|
| -
|
| -static BoolVector& propertySwitches()
|
| -{
|
| - static BoolVector* switches = 0;
|
| - if (!switches) {
|
| - switches = new BoolVector;
|
| - // Accomodate CSSPropertyIDs that fall outside the firstCSSProperty, lastCSSProperty range (eg. CSSPropertyVariable).
|
| - switches->fill(true, lastCSSProperty + 1);
|
| - setPropertySwitchesFromRuntimeFeatures();
|
| - }
|
| - return *switches;
|
| -}
|
| -
|
| -size_t indexForProperty(CSSPropertyID propertyId)
|
| -{
|
| - RELEASE_ASSERT(propertyId >= 0 && propertyId <= lastCSSProperty);
|
| - ASSERT(propertyId != CSSPropertyInvalid);
|
| - return static_cast<size_t>(propertyId);
|
| -}
|
| -
|
| -bool RuntimeCSSEnabled::isCSSPropertyEnabled(CSSPropertyID propertyId)
|
| -{
|
| - // Internal properties shouldn't be exposed to the web
|
| - // so they are considered to be always disabled.
|
| - if (isInternalProperty(propertyId))
|
| - return false;
|
| -
|
| - return propertySwitches()[indexForProperty(propertyId)];
|
| -}
|
| -
|
| -void RuntimeCSSEnabled::setCSSPropertyEnabled(CSSPropertyID propertyId, bool enable)
|
| -{
|
| - propertySwitches()[indexForProperty(propertyId)] = enable;
|
| -}
|
| -
|
| -void RuntimeCSSEnabled::filterEnabledCSSPropertiesIntoVector(const CSSPropertyID* properties, size_t propertyCount, Vector<CSSPropertyID>& outVector)
|
| -{
|
| - for (unsigned i = 0; i < propertyCount; i++) {
|
| - CSSPropertyID property = properties[i];
|
| - if (RuntimeCSSEnabled::isCSSPropertyEnabled(property))
|
| - outVector.append(property);
|
| - }
|
| -}
|
| -
|
| -} // namespace WebCore
|
|
|