18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2004 Zack Rusin <zack@kde.org> 35f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Lesser General Public 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Lesser General Public License for more details. 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Lesser General Public 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License along with this library; if not, write to the Free Software 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 02110-1301 USA 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h" 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSComputedStyleDeclaration.h" 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#include "AnimationController.h" 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSBorderImageValue.h" 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSMutableStyleDeclaration.h" 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSPrimitiveValue.h" 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSPrimitiveValueMappings.h" 310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include "CSSProperty.h" 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSPropertyNames.h" 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSReflectValue.h" 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSTimingFunctionValue.h" 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSValueList.h" 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Document.h" 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ExceptionCode.h" 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Rect.h" 39635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "RenderBox.h" 408f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#include "RenderLayer.h" 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ShadowValue.h" 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_LAYOUT 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Frame.h" 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Settings.h" 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebKitCSSTransformValue.h" 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(DASHBOARD_SUPPORT) 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "DashboardRegion.h" 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// List of all properties we know how to compute, omitting shorthands. 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatic const int computedProperties[] = { 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBackgroundAttachment, 570bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch CSSPropertyBackgroundClip, 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBackgroundColor, 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBackgroundImage, 600bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch CSSPropertyBackgroundOrigin, 615f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian CSSPropertyBackgroundPosition, // more-specific background-position-x/y are non-standard 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBackgroundRepeat, 63231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block CSSPropertyBackgroundSize, 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderBottomColor, 650bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch CSSPropertyBorderBottomLeftRadius, 660bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch CSSPropertyBorderBottomRightRadius, 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderBottomStyle, 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderBottomWidth, 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderCollapse, 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderLeftColor, 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderLeftStyle, 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderLeftWidth, 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderRightColor, 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderRightStyle, 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderRightWidth, 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderTopColor, 770bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch CSSPropertyBorderTopLeftRadius, 780bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch CSSPropertyBorderTopRightRadius, 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderTopStyle, 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBorderTopWidth, 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBottom, 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyCaptionSide, 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyClear, 845f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian CSSPropertyClip, 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyColor, 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyCursor, 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyDirection, 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyDisplay, 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyEmptyCells, 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFloat, 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFontFamily, 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFontSize, 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFontStyle, 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFontVariant, 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFontWeight, 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyHeight, 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyLeft, 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyLetterSpacing, 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyLineHeight, 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyListStyleImage, 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyListStylePosition, 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyListStyleType, 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMarginBottom, 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMarginLeft, 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMarginRight, 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMarginTop, 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMaxHeight, 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMaxWidth, 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMinHeight, 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMinWidth, 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyOpacity, 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyOrphans, 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyOutlineColor, 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyOutlineStyle, 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyOutlineWidth, 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyOverflowX, 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyOverflowY, 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyPaddingBottom, 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyPaddingLeft, 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyPaddingRight, 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyPaddingTop, 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyPageBreakAfter, 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyPageBreakBefore, 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyPageBreakInside, 125635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CSSPropertyPointerEvents, 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyPosition, 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyResize, 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyRight, 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyTableLayout, 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyTextAlign, 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyTextDecoration, 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyTextIndent, 133231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block CSSPropertyTextRendering, 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyTextShadow, 1350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch CSSPropertyTextOverflow, 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyTextTransform, 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyTop, 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyUnicodeBidi, 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyVerticalAlign, 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyVisibility, 1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWhiteSpace, 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWidows, 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWidth, 1445f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian CSSPropertyWordBreak, 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWordSpacing, 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWordWrap, 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyZIndex, 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyZoom, 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 150635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CSSPropertyWebkitAnimationDelay, 151635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CSSPropertyWebkitAnimationDirection, 152635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CSSPropertyWebkitAnimationDuration, 153635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CSSPropertyWebkitAnimationIterationCount, 154635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CSSPropertyWebkitAnimationName, 1550bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch CSSPropertyWebkitAnimationPlayState, 156635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CSSPropertyWebkitAnimationTimingFunction, 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitAppearance, 1588f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian CSSPropertyWebkitBackfaceVisibility, 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBackgroundClip, 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBackgroundComposite, 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBackgroundOrigin, 162cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block CSSPropertyWebkitBackgroundSize, 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBorderFit, 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBorderHorizontalSpacing, 1655f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian CSSPropertyWebkitBorderImage, 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBorderVerticalSpacing, 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBoxAlign, 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBoxDirection, 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBoxFlex, 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBoxFlexGroup, 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBoxLines, 1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBoxOrdinalGroup, 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBoxOrient, 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBoxPack, 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBoxReflect, 176231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block CSSPropertyWebkitBoxShadow, 1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitBoxSizing, 178643ca7872b450ea4efacab6188849e5aac2ba161Steve Block CSSPropertyWebkitColorCorrection, 1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitColumnBreakAfter, 1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitColumnBreakBefore, 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitColumnBreakInside, 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitColumnCount, 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitColumnGap, 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitColumnRuleColor, 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitColumnRuleStyle, 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitColumnRuleWidth, 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitColumnWidth, 1885f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if ENABLE(DASHBOARD_SUPPORT) 1895f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian CSSPropertyWebkitDashboardRegion, 1905f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 191231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block CSSPropertyWebkitFontSmoothing, 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitHighlight, 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitLineBreak, 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitLineClamp, 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMarginBottomCollapse, 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMarginTopCollapse, 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMarqueeDirection, 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMarqueeIncrement, 1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMarqueeRepetition, 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMarqueeStyle, 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMaskAttachment, 2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMaskBoxImage, 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMaskClip, 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMaskComposite, 2055f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian CSSPropertyWebkitMaskImage, 2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMaskOrigin, 2075f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian CSSPropertyWebkitMaskPosition, 2085f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian CSSPropertyWebkitMaskRepeat, 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitMaskSize, 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitNbspMode, 2118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian CSSPropertyWebkitPerspective, 2128f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian CSSPropertyWebkitPerspectiveOrigin, 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitRtlOrdering, 2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTextDecorationsInEffect, 2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTextFillColor, 2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTextSecurity, 2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTextStrokeColor, 2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTextStrokeWidth, 2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTransform, 220635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CSSPropertyWebkitTransformOrigin, 2218f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian CSSPropertyWebkitTransformStyle, 2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTransitionDelay, 2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTransitionDuration, 2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTransitionProperty, 2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTransitionTimingFunction, 2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitUserDrag, 2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitUserModify, 2285f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian CSSPropertyWebkitUserSelect 2295f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG) 2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , 2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyClipPath, 2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyClipRule, 2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMask, 2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFilter, 2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFloodColor, 2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFloodOpacity, 2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyLightingColor, 2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyStopColor, 2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyStopOpacity, 2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyColorInterpolation, 2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyColorInterpolationFilters, 2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyColorRendering, 2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFill, 2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFillOpacity, 2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyFillRule, 2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyImageRendering, 2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMarkerEnd, 2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMarkerMid, 2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyMarkerStart, 2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyShapeRendering, 2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyStroke, 2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyStrokeDasharray, 2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyStrokeDashoffset, 2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyStrokeLinecap, 2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyStrokeLinejoin, 2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyStrokeMiterlimit, 2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyStrokeOpacity, 2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyStrokeWidth, 2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyAlignmentBaseline, 2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyBaselineShift, 2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyDominantBaseline, 2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyKerning, 2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyTextAnchor, 2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWritingMode, 2668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyGlyphOrientationHorizontal, 267cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block CSSPropertyGlyphOrientationVertical, 268d0825bca7fe65beaee391d30da42e937db621564Steve Block CSSPropertyWebkitSvgShadow 2698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 2708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_CSS_TAP_HIGHLIGHT_COLOR 2718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , 2728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSPropertyWebkitTapHighlightColor 2738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 2748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 2758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectconst unsigned numComputedProperties = sizeof(computedProperties) / sizeof(computedProperties[0]); 2778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatic int valueForRepeatRule(int rule) 2798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch (rule) { 2818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case RepeatImageRule: 2828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSValueRepeat; 2838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case RoundImageRule: 2848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSValueRound; 2858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project default: 2868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSValueStretch; 2878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatic PassRefPtr<CSSValue> valueForNinePieceImage(const NinePieceImage& image) 2918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!image.hasImage()) 2938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 2948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Image first. 2968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValue> imageValue; 2978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (image.image()) 2988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project imageValue = image.image()->cssValue(); 2998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Create the slices. 3018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSPrimitiveValue> top; 3028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (image.m_slices.top().isPercent()) 3038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project top = CSSPrimitiveValue::create(image.m_slices.top().value(), CSSPrimitiveValue::CSS_PERCENTAGE); 3048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 3058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project top = CSSPrimitiveValue::create(image.m_slices.top().value(), CSSPrimitiveValue::CSS_NUMBER); 3068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSPrimitiveValue> right; 3088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (image.m_slices.right().isPercent()) 3098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project right = CSSPrimitiveValue::create(image.m_slices.right().value(), CSSPrimitiveValue::CSS_PERCENTAGE); 3108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 3118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project right = CSSPrimitiveValue::create(image.m_slices.right().value(), CSSPrimitiveValue::CSS_NUMBER); 3128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSPrimitiveValue> bottom; 3148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (image.m_slices.bottom().isPercent()) 3158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bottom = CSSPrimitiveValue::create(image.m_slices.bottom().value(), CSSPrimitiveValue::CSS_PERCENTAGE); 3168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 3178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bottom = CSSPrimitiveValue::create(image.m_slices.bottom().value(), CSSPrimitiveValue::CSS_NUMBER); 3188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSPrimitiveValue> left; 3208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (image.m_slices.left().isPercent()) 3218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project left = CSSPrimitiveValue::create(image.m_slices.left().value(), CSSPrimitiveValue::CSS_PERCENTAGE); 3228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 3238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project left = CSSPrimitiveValue::create(image.m_slices.left().value(), CSSPrimitiveValue::CSS_NUMBER); 3248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<Rect> rect = Rect::create(); 3268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project rect->setTop(top); 3278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project rect->setRight(right); 3288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project rect->setBottom(bottom); 3298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project rect->setLeft(left); 3308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSBorderImageValue::create(imageValue, rect, valueForRepeatRule(image.m_horizontalRule), valueForRepeatRule(image.m_verticalRule)); 3328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatic PassRefPtr<CSSValue> valueForReflection(const StyleReflection* reflection) 3358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!reflection) 3378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 3388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSPrimitiveValue> offset; 3408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (reflection->offset().isPercent()) 3418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project offset = CSSPrimitiveValue::create(reflection->offset().percent(), CSSPrimitiveValue::CSS_PERCENTAGE); 3428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 3438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project offset = CSSPrimitiveValue::create(reflection->offset().value(), CSSPrimitiveValue::CSS_PX); 3448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSReflectValue::create(reflection->direction(), offset.release(), valueForNinePieceImage(reflection->mask())); 3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatic PassRefPtr<CSSValue> getPositionOffsetValue(RenderStyle* style, int propertyID) 3498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!style) 3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 3528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length l; 3548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch (propertyID) { 3558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyLeft: 3568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project l = style->left(); 3578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 3588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyRight: 3598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project l = style->right(); 3608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 3618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTop: 3628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project l = style->top(); 3638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 3648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBottom: 3658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project l = style->bottom(); 3668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 3678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project default: 3688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 3698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->position() == AbsolutePosition || style->position() == FixedPosition) 3728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(l); 3738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->position() == RelativePosition) 3758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // FIXME: It's not enough to simply return "auto" values for one offset if the other side is defined. 3768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // In other words if left is auto and right is not auto, then left's computed value is negative right(). 3778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // So we should get the opposite length unit and see if it is auto. 3788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(l); 3798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueAuto); 3818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatic PassRefPtr<CSSPrimitiveValue> currentColorOrValidColor(RenderStyle* style, const Color& color) 3848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!color.isValid()) 3868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createColor(style->color().rgb()); 3878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createColor(color.rgb()); 3888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatic PassRefPtr<CSSValue> getBorderRadiusCornerValue(IntSize radius) 3918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (radius.width() == radius.height()) 3938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(radius.width(), CSSPrimitiveValue::CSS_PX); 3948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 3968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create(radius.width(), CSSPrimitiveValue::CSS_PX)); 3978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create(radius.height(), CSSPrimitiveValue::CSS_PX)); 3988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return list.release(); 3998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 4008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatic IntRect sizingBox(RenderObject* renderer) 4028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 403635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (!renderer->isBox()) 404635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return IntRect(); 405635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 406635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RenderBox* box = toRenderBox(renderer); 407635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return box->style()->boxSizing() == CONTENT_BOX ? box->contentBoxRect() : box->borderBoxRect(); 4088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 4098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4108f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianstatic inline bool hasCompositedLayer(RenderObject* renderer) 4118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian{ 4128f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return renderer && renderer->hasLayer() && toRenderBoxModelObject(renderer)->layer()->isComposited(); 4138f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian} 4148f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 4158f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianstatic PassRefPtr<CSSValue> computedTransform(RenderObject* renderer, const RenderStyle* style) 4168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 4178f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (!renderer || style->transform().operations().isEmpty()) 4188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 4198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project IntRect box = sizingBox(renderer); 4218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 422635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project TransformationMatrix transform; 4238f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian style->applyTransform(transform, box.size(), RenderStyle::ExcludeTransformOrigin); 4248f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // Note that this does not flatten to an affine transform if ENABLE(3D_RENDERING) is off, by design. 4258f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 4268f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian RefPtr<WebKitCSSTransformValue> transformVal; 4278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4288f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // FIXME: Need to print out individual functions (https://bugs.webkit.org/show_bug.cgi?id=23924) 4298f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (transform.isAffine()) { 4308f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal = WebKitCSSTransformValue::create(WebKitCSSTransformValue::MatrixTransformOperation); 4318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4328f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.a(), CSSPrimitiveValue::CSS_NUMBER)); 4338f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.b(), CSSPrimitiveValue::CSS_NUMBER)); 4348f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.c(), CSSPrimitiveValue::CSS_NUMBER)); 4358f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.d(), CSSPrimitiveValue::CSS_NUMBER)); 4368f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.e(), CSSPrimitiveValue::CSS_NUMBER)); 4378f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.f(), CSSPrimitiveValue::CSS_NUMBER)); 4388f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian } else { 4398f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal = WebKitCSSTransformValue::create(WebKitCSSTransformValue::Matrix3DTransformOperation); 4408f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 4418f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m11(), CSSPrimitiveValue::CSS_NUMBER)); 4428f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m12(), CSSPrimitiveValue::CSS_NUMBER)); 4438f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m13(), CSSPrimitiveValue::CSS_NUMBER)); 4448f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m14(), CSSPrimitiveValue::CSS_NUMBER)); 4458f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 4468f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m21(), CSSPrimitiveValue::CSS_NUMBER)); 4478f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m22(), CSSPrimitiveValue::CSS_NUMBER)); 4488f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m23(), CSSPrimitiveValue::CSS_NUMBER)); 4498f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m24(), CSSPrimitiveValue::CSS_NUMBER)); 4508f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 4518f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m31(), CSSPrimitiveValue::CSS_NUMBER)); 4528f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m32(), CSSPrimitiveValue::CSS_NUMBER)); 4538f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m33(), CSSPrimitiveValue::CSS_NUMBER)); 4548f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m34(), CSSPrimitiveValue::CSS_NUMBER)); 4558f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 4568f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m41(), CSSPrimitiveValue::CSS_NUMBER)); 4578f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m42(), CSSPrimitiveValue::CSS_NUMBER)); 4588f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m43(), CSSPrimitiveValue::CSS_NUMBER)); 4598f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian transformVal->append(CSSPrimitiveValue::create(transform.m44(), CSSPrimitiveValue::CSS_NUMBER)); 4608f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian } 4618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 4638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(transformVal); 4648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return list.release(); 4668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 4678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 468635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectstatic PassRefPtr<CSSValue> getDelayValue(const AnimationList* animList) 469635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 470635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); 471635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (animList) { 472635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project for (size_t i = 0; i < animList->size(); ++i) 473635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(animList->animation(i)->delay(), CSSPrimitiveValue::CSS_S)); 474635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } else { 475635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project // Note that initialAnimationDelay() is used for both transitions and animations 476635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(Animation::initialAnimationDelay(), CSSPrimitiveValue::CSS_S)); 477635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 478635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return list.release(); 479635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 480635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 481635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectstatic PassRefPtr<CSSValue> getDurationValue(const AnimationList* animList) 482635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 483635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); 484635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (animList) { 485635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project for (size_t i = 0; i < animList->size(); ++i) 486635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(animList->animation(i)->duration(), CSSPrimitiveValue::CSS_S)); 487635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } else { 488635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project // Note that initialAnimationDuration() is used for both transitions and animations 489635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(Animation::initialAnimationDuration(), CSSPrimitiveValue::CSS_S)); 490635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 491635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return list.release(); 492635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 493635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 494635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectstatic PassRefPtr<CSSValue> getTimingFunctionValue(const AnimationList* animList) 495635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 496635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); 497635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (animList) { 498635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project for (size_t i = 0; i < animList->size(); ++i) { 499635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project const TimingFunction& tf = animList->animation(i)->timingFunction(); 500635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSTimingFunctionValue::create(tf.x1(), tf.y1(), tf.x2(), tf.y2())); 501635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 502635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } else { 503635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project // Note that initialAnimationTimingFunction() is used for both transitions and animations 504635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project const TimingFunction& tf = Animation::initialAnimationTimingFunction(); 505635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSTimingFunctionValue::create(tf.x1(), tf.y1(), tf.x2(), tf.y2())); 506635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 507635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return list.release(); 508635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 509635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 5108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCSSComputedStyleDeclaration::CSSComputedStyleDeclaration(PassRefPtr<Node> n) 5118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project : m_node(n) 5128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCSSComputedStyleDeclaration::~CSSComputedStyleDeclaration() 5168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectString CSSComputedStyleDeclaration::cssText() const 5208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String result(""); 5228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for (unsigned i = 0; i < numComputedProperties; i++) { 5248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (i) 5258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project result += " "; 5268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project result += getPropertyName(static_cast<CSSPropertyID>(computedProperties[i])); 5278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project result += ": "; 5288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project result += getPropertyValue(computedProperties[i]); 5298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project result += ";"; 5308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return result; 5338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid CSSComputedStyleDeclaration::setCssText(const String&, ExceptionCode& ec) 5368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ec = NO_MODIFICATION_ALLOWED_ERR; 5388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5405f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianstatic int cssIdentifierForFontSizeKeyword(int keywordSize) 5415f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian{ 5425f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian ASSERT_ARG(keywordSize, keywordSize); 5435f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian ASSERT_ARG(keywordSize, keywordSize <= 8); 5445f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSValueXxSmall + keywordSize - 1; 5455f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian} 5465f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 5475f1ab04193ad0130ca8204aadaceae083aca9881Feng QianPassRefPtr<CSSValue> CSSComputedStyleDeclaration::getFontSizeCSSValuePreferringKeyword() const 5485f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian{ 5495f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian Node* node = m_node.get(); 5505f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (!node) 5515f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return 0; 5525f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 5535f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian node->document()->updateLayoutIgnorePendingStylesheets(); 5545f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 5555f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian RefPtr<RenderStyle> style = node->computedStyle(); 5565f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (!style) 5575f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return 0; 5585f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 5595f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (int keywordSize = style->fontDescription().keywordSize()) 5605f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSPrimitiveValue::createIdentifier(cssIdentifierForFontSizeKeyword(keywordSize)); 5615f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 5625f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSPrimitiveValue::create(style->fontDescription().computedPixelSize(), CSSPrimitiveValue::CSS_PX); 5635f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian} 5645f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 565cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve BlockPassRefPtr<CSSValue> CSSComputedStyleDeclaration::valueForShadow(const ShadowData* shadow, int id) const 566cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block{ 567cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block if (!shadow) 568cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block return CSSPrimitiveValue::createIdentifier(CSSValueNone); 569cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 570cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block CSSPropertyID propertyID = static_cast<CSSPropertyID>(id); 571cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 572cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); 573cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block for (const ShadowData* s = shadow; s; s = s->next) { 574cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block RefPtr<CSSPrimitiveValue> x = CSSPrimitiveValue::create(s->x, CSSPrimitiveValue::CSS_PX); 575cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block RefPtr<CSSPrimitiveValue> y = CSSPrimitiveValue::create(s->y, CSSPrimitiveValue::CSS_PX); 576cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block RefPtr<CSSPrimitiveValue> blur = CSSPrimitiveValue::create(s->blur, CSSPrimitiveValue::CSS_PX); 577cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block RefPtr<CSSPrimitiveValue> spread = propertyID == CSSPropertyTextShadow ? 0 : CSSPrimitiveValue::create(s->spread, CSSPrimitiveValue::CSS_PX); 578cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block RefPtr<CSSPrimitiveValue> style = propertyID == CSSPropertyTextShadow || s->style == Normal ? 0 : CSSPrimitiveValue::createIdentifier(CSSValueInset); 579cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block RefPtr<CSSPrimitiveValue> color = CSSPrimitiveValue::createColor(s->color.rgb()); 580cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block list->prepend(ShadowValue::create(x.release(), y.release(), blur.release(), spread.release(), style.release(), color.release())); 581cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block } 582cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block return list.release(); 583cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block} 584cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 5858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectPassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(int propertyID) const 5868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return getPropertyCSSValue(propertyID, UpdateLayout); 5888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5905f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianstatic int identifierForFamily(const AtomicString& family) 5915f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian{ 5925f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DEFINE_STATIC_LOCAL(AtomicString, cursiveFamily, ("-webkit-cursive")); 5935f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DEFINE_STATIC_LOCAL(AtomicString, fantasyFamily, ("-webkit-fantasy")); 5945f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DEFINE_STATIC_LOCAL(AtomicString, monospaceFamily, ("-webkit-monospace")); 5955f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DEFINE_STATIC_LOCAL(AtomicString, sansSerifFamily, ("-webkit-sans-serif")); 5965f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DEFINE_STATIC_LOCAL(AtomicString, serifFamily, ("-webkit-serif")); 5975f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (family == cursiveFamily) 5985f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSValueCursive; 5995f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (family == fantasyFamily) 6005f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSValueFantasy; 6015f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (family == monospaceFamily) 6025f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSValueMonospace; 6035f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (family == sansSerifFamily) 6045f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSValueSansSerif; 6055f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (family == serifFamily) 6065f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSValueSerif; 6075f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return 0; 6085f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian} 6095f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 6105f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianstatic PassRefPtr<CSSPrimitiveValue> valueForFamily(const AtomicString& family) 6115f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian{ 6125f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (int familyIdentifier = identifierForFamily(family)) 6135f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSPrimitiveValue::createIdentifier(familyIdentifier); 6145f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSPrimitiveValue::create(family.string(), CSSPrimitiveValue::CSS_STRING); 6155f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian} 6165f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 6170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochstatic PassRefPtr<CSSValue> renderTextDecorationFlagsToCSSValue(int textDecoration) 6180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{ 6190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 6200bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (textDecoration & UNDERLINE) 6210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch list->append(CSSPrimitiveValue::createIdentifier(CSSValueUnderline)); 6220bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (textDecoration & OVERLINE) 6230bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch list->append(CSSPrimitiveValue::createIdentifier(CSSValueOverline)); 6240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (textDecoration & LINE_THROUGH) 6250bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch list->append(CSSPrimitiveValue::createIdentifier(CSSValueLineThrough)); 6260bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (textDecoration & BLINK) 6270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch list->append(CSSPrimitiveValue::createIdentifier(CSSValueBlink)); 6280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 6290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (!list->length()) 6300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return CSSPrimitiveValue::createIdentifier(CSSValueNone); 6310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return list; 6320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch} 6330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 634231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockstatic PassRefPtr<CSSValue> fillRepeatToCSSValue(EFillRepeat xRepeat, EFillRepeat yRepeat) 635231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{ 636231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block // For backwards compatibility, if both values are equal, just return one of them. And 637231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block // if the two values are equivalent to repeat-x or repeat-y, just return the shorthand. 638231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block if (xRepeat == yRepeat) 639231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return CSSPrimitiveValue::create(xRepeat); 640231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block if (xRepeat == CSSValueRepeat && yRepeat == CSSValueNoRepeat) 641231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return CSSPrimitiveValue::createIdentifier(CSSValueRepeatX); 642231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block if (xRepeat == CSSValueNoRepeat && yRepeat == CSSValueRepeat) 643231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return CSSPrimitiveValue::createIdentifier(CSSValueRepeatY); 644231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 645231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 646231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block list->append(CSSPrimitiveValue::create(xRepeat)); 647231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block list->append(CSSPrimitiveValue::create(yRepeat)); 648231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return list.release(); 649231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block} 650231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 651231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockstatic void logUnimplementedPropertyID(int propertyID) 652231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{ 653231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DEFINE_STATIC_LOCAL(HashSet<int>, propertyIDSet, ()); 654231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block if (!propertyIDSet.add(propertyID).second) 655231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return; 656231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 657231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block LOG_ERROR("WebKit does not yet implement getComputedStyle for '%s'.", getPropertyName(static_cast<CSSPropertyID>(propertyID))); 658231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block} 659231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 6608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectPassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(int propertyID, EUpdateLayout updateLayout) const 6618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 6628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Node* node = m_node.get(); 6638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!node) 6648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 6658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Make sure our layout is up to date before we allow a query on these attributes. 6678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (updateLayout) 6688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project node->document()->updateLayoutIgnorePendingStylesheets(); 6698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RenderObject* renderer = node->renderer(); 6718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6728f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian RefPtr<RenderStyle> style; 6738f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (renderer && hasCompositedLayer(renderer) && AnimationController::supportsAcceleratedAnimationOfProperty(static_cast<CSSPropertyID>(propertyID))) 6748f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian style = renderer->animation()->getAnimatedStyleForRenderer(renderer); 6758f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian else 6768f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian style = node->computedStyle(); 6778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!style) 6788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 6798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_LAYOUT 6818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const Settings * settings = node->document()->frame() ? node->document()->frame()->settings() : 0; 6828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 6838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch (static_cast<CSSPropertyID>(propertyID)) { 6858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyInvalid: 6868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 6878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBackgroundColor: 6898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createColor(style->backgroundColor().rgb()); 6908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBackgroundImage: 6918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->backgroundImage()) 6928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return style->backgroundImage()->cssValue(); 6938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 694cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block case CSSPropertyBackgroundSize: 695cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block case CSSPropertyWebkitBackgroundSize: { 696231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block EFillSizeType size = style->backgroundSizeType(); 697231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block if (size == Contain) 698231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return CSSPrimitiveValue::createIdentifier(CSSValueContain); 699231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block if (size == Cover) 700231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return CSSPrimitiveValue::createIdentifier(CSSValueCover); 7018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 702231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block list->append(CSSPrimitiveValue::create(style->backgroundSizeLength().width())); 703231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block list->append(CSSPrimitiveValue::create(style->backgroundSizeLength().height())); 7048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return list.release(); 7058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 7068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBackgroundRepeat: 707231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return fillRepeatToCSSValue(style->backgroundRepeatX(), style->backgroundRepeatY()); 7088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBackgroundComposite: 7098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->backgroundComposite()); 7108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBackgroundAttachment: 7110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return CSSPrimitiveValue::create(style->backgroundAttachment()); 7120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyBackgroundClip: 7130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyBackgroundOrigin: 7148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBackgroundClip: 7158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBackgroundOrigin: { 7160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch EFillBox box = (propertyID == CSSPropertyWebkitBackgroundClip || propertyID == CSSPropertyBackgroundClip) ? style->backgroundClip() : style->backgroundOrigin(); 7178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(box); 7188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 7198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBackgroundPosition: { 7208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 7218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create(style->backgroundXPosition())); 7238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create(style->backgroundYPosition())); 7248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return list.release(); 7268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 7278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBackgroundPositionX: 7288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->backgroundXPosition()); 7298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBackgroundPositionY: 7308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->backgroundYPosition()); 7318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderCollapse: 7328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->borderCollapse()) 7338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueCollapse); 7348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueSeparate); 7358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderSpacing: { 7368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 7378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create(style->horizontalBorderSpacing(), CSSPrimitiveValue::CSS_PX)); 7388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create(style->verticalBorderSpacing(), CSSPrimitiveValue::CSS_PX)); 7398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return list.release(); 7408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 7418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBorderHorizontalSpacing: 7428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->horizontalBorderSpacing(), CSSPrimitiveValue::CSS_PX); 7438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBorderVerticalSpacing: 7448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->verticalBorderSpacing(), CSSPrimitiveValue::CSS_PX); 7458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderTopColor: 7468f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return currentColorOrValidColor(style.get(), style->borderTopColor()); 7478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderRightColor: 7488f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return currentColorOrValidColor(style.get(), style->borderRightColor()); 7498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderBottomColor: 7508f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return currentColorOrValidColor(style.get(), style->borderBottomColor()); 7518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderLeftColor: 7528f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return currentColorOrValidColor(style.get(), style->borderLeftColor()); 7538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderTopStyle: 7548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->borderTopStyle()); 7558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderRightStyle: 7568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->borderRightStyle()); 7578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderBottomStyle: 7588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->borderBottomStyle()); 7598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderLeftStyle: 7608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->borderLeftStyle()); 7618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderTopWidth: 7628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->borderTopWidth(), CSSPrimitiveValue::CSS_PX); 7638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderRightWidth: 7648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->borderRightWidth(), CSSPrimitiveValue::CSS_PX); 7658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderBottomWidth: 7668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->borderBottomWidth(), CSSPrimitiveValue::CSS_PX); 7678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderLeftWidth: 7688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->borderLeftWidth(), CSSPrimitiveValue::CSS_PX); 7698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBottom: 7708f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return getPositionOffsetValue(style.get(), CSSPropertyBottom); 7718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBoxAlign: 7728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->boxAlign()); 7738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBoxDirection: 7748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->boxDirection()); 7758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBoxFlex: 7768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->boxFlex(), CSSPrimitiveValue::CSS_NUMBER); 7778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBoxFlexGroup: 7788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->boxFlexGroup(), CSSPrimitiveValue::CSS_NUMBER); 7798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBoxLines: 7808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->boxLines()); 7818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBoxOrdinalGroup: 7828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->boxOrdinalGroup(), CSSPrimitiveValue::CSS_NUMBER); 7838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBoxOrient: 7848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->boxOrient()); 7858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBoxPack: { 7868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EBoxAlignment boxPack = style->boxPack(); 7878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ASSERT(boxPack != BSTRETCH); 7888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ASSERT(boxPack != BBASELINE); 7898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (boxPack == BJUSTIFY || boxPack== BBASELINE) 7908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 7918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(boxPack); 7928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 7938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBoxReflect: 7948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return valueForReflection(style->boxReflect()); 795231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block case CSSPropertyWebkitBoxShadow: 796cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block return valueForShadow(style->boxShadow(), propertyID); 7978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyCaptionSide: 7988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->captionSide()); 7998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyClear: 8008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->clear()); 8018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyColor: 8028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createColor(style->color().rgb()); 8038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumnCount: 8048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->hasAutoColumnCount()) 8058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueAuto); 8068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->columnCount(), CSSPrimitiveValue::CSS_NUMBER); 8078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumnGap: 8088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->hasNormalColumnGap()) 8098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNormal); 8108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->columnGap(), CSSPrimitiveValue::CSS_NUMBER); 8118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumnRuleColor: 8128f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return currentColorOrValidColor(style.get(), style->columnRuleColor()); 8138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumnRuleStyle: 8148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->columnRuleStyle()); 8158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumnRuleWidth: 8168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->columnRuleWidth(), CSSPrimitiveValue::CSS_PX); 8178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumnBreakAfter: 8188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->columnBreakAfter()); 8198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumnBreakBefore: 8208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->columnBreakBefore()); 8218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumnBreakInside: 8228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->columnBreakInside()); 8238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumnWidth: 8248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->hasAutoColumnWidth()) 8258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueAuto); 8268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->columnWidth(), CSSPrimitiveValue::CSS_NUMBER); 8278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyCursor: { 8288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValueList> list; 8298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CursorList* cursors = style->cursors(); 8308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (cursors && cursors->size() > 0) { 8318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list = CSSValueList::createCommaSeparated(); 8328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for (unsigned i = 0; i < cursors->size(); ++i) 8338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create((*cursors)[i].cursorImage->url(), CSSPrimitiveValue::CSS_URI)); 8348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 8358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValue> value = CSSPrimitiveValue::create(style->cursor()); 8368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (list) { 8378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(value); 8388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return list.release(); 8398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 8408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return value.release(); 8418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 8428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyDirection: 8438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->direction()); 8448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyDisplay: 8458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->display()); 8468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyEmptyCells: 8478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->emptyCells()); 8488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyFloat: 8498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_LAYOUT 8508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (settings && settings->layoutAlgorithm() == Settings::kLayoutSSR) 8518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 8528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 8538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->floating()); 8545f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian case CSSPropertyFontFamily: { 8555f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian const FontFamily& firstFamily = style->fontDescription().family(); 8565f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (!firstFamily.next()) 8575f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return valueForFamily(firstFamily.family()); 8585f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); 8595f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian for (const FontFamily* family = &firstFamily; family; family = family->next()) 8605f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian list->append(valueForFamily(family->family())); 8615f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return list.release(); 8625f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian } 8638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyFontSize: 8648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->fontDescription().computedPixelSize(), CSSPrimitiveValue::CSS_PX); 8658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBinding: 8668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 8678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyFontStyle: 8688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->fontDescription().italic()) 8698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueItalic); 8708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNormal); 8718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyFontVariant: 8728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->fontDescription().smallCaps()) 8738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueSmallCaps); 8748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNormal); 8758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyFontWeight: 8768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch (style->fontDescription().weight()) { 8778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case FontWeight100: 8788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValue100); 8798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case FontWeight200: 8808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValue200); 8818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case FontWeight300: 8828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValue300); 8838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case FontWeightNormal: 8848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNormal); 8858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case FontWeight500: 8868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValue500); 8878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case FontWeight600: 8888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValue600); 8898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case FontWeightBold: 8908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueBold); 8918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case FontWeight800: 8928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValue800); 8938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case FontWeight900: 8948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValue900); 8958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 8968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ASSERT_NOT_REACHED(); 8978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNormal); 8988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyHeight: 8998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (renderer) 9008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(sizingBox(renderer).height(), CSSPrimitiveValue::CSS_PX); 9018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->height()); 9028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitHighlight: 9038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->highlight() == nullAtom) 9048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 9058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->highlight(), CSSPrimitiveValue::CSS_STRING); 9068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBorderFit: 9078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->borderFit() == BorderFitBorder) 9088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueBorder); 9098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueLines); 9108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyLeft: 9118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return getPositionOffsetValue(style.get(), CSSPropertyLeft); 9128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyLetterSpacing: 9138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!style->letterSpacing()) 9148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNormal); 9158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->letterSpacing(), CSSPrimitiveValue::CSS_PX); 9168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitLineClamp: 917643ca7872b450ea4efacab6188849e5aac2ba161Steve Block if (style->lineClamp().isNone()) 9188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 919643ca7872b450ea4efacab6188849e5aac2ba161Steve Block return CSSPrimitiveValue::create(style->lineClamp().value(), style->lineClamp().isPercentage() ? CSSPrimitiveValue::CSS_PERCENTAGE : CSSPrimitiveValue::CSS_NUMBER); 9208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyLineHeight: { 9218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length length = style->lineHeight(); 9228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (length.isNegative()) 9238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNormal); 9248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (length.isPercent()) 9258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // This is imperfect, because it doesn't include the zoom factor and the real computation 9268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // for how high to be in pixels does include things like minimum font size and the zoom factor. 9278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // On the other hand, since font-size doesn't include the zoom factor, we really can't do 9288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // that here either. 929d0825bca7fe65beaee391d30da42e937db621564Steve Block return CSSPrimitiveValue::create(static_cast<int>(length.percent() * style->fontDescription().specifiedSize()) / 100, CSSPrimitiveValue::CSS_PX); 9308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(length.value(), CSSPrimitiveValue::CSS_PX); 9318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 9328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyListStyleImage: 9338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->listStyleImage()) 9348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return style->listStyleImage()->cssValue(); 9358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 9368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyListStylePosition: 9378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->listStylePosition()); 9388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyListStyleType: 9398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->listStyleType()); 9408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyMarginTop: 941635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (renderer && renderer->isBox()) 9428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // FIXME: Supposed to return the percentage if percentage was specified. 943635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return CSSPrimitiveValue::create(toRenderBox(renderer)->marginTop(), CSSPrimitiveValue::CSS_PX); 9448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->marginTop()); 9458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyMarginRight: 946635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (renderer && renderer->isBox()) 9478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // FIXME: Supposed to return the percentage if percentage was specified. 948635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return CSSPrimitiveValue::create(toRenderBox(renderer)->marginRight(), CSSPrimitiveValue::CSS_PX); 9498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->marginRight()); 9508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyMarginBottom: 951635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (renderer && renderer->isBox()) 9528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // FIXME: Supposed to return the percentage if percentage was specified. 953635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return CSSPrimitiveValue::create(toRenderBox(renderer)->marginBottom(), CSSPrimitiveValue::CSS_PX); 9548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->marginBottom()); 9558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyMarginLeft: 956635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (renderer && renderer->isBox()) 9578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // FIXME: Supposed to return the percentage if percentage was specified. 958635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return CSSPrimitiveValue::create(toRenderBox(renderer)->marginLeft(), CSSPrimitiveValue::CSS_PX); 9598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->marginLeft()); 9608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMarqueeDirection: 9618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->marqueeDirection()); 9628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMarqueeIncrement: 9638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->marqueeIncrement()); 9648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMarqueeRepetition: 9658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->marqueeLoopCount() < 0) 9668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueInfinite); 9678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->marqueeLoopCount(), CSSPrimitiveValue::CSS_NUMBER); 9688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMarqueeStyle: 9698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->marqueeBehavior()); 9708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskImage: 9718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->maskImage()) 9728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return style->maskImage()->cssValue(); 9738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 9748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskSize: { 9758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 9768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create(style->maskSize().width())); 9778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create(style->maskSize().height())); 9788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return list.release(); 9798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 9808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskRepeat: 981231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return fillRepeatToCSSValue(style->maskRepeatX(), style->maskRepeatY()); 9828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskAttachment: 9830bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return CSSPrimitiveValue::create(style->maskAttachment()); 9848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskComposite: 9858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->maskComposite()); 9868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskClip: 9878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskOrigin: { 9888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EFillBox box = (propertyID == CSSPropertyWebkitMaskClip ? style->maskClip() : style->maskOrigin()); 9898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(box); 9908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 9918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskPosition: { 9928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 9938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create(style->maskXPosition())); 9958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project list->append(CSSPrimitiveValue::create(style->maskYPosition())); 9968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return list.release(); 9988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 9998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskPositionX: 10008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->maskXPosition()); 10018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskPositionY: 10028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->maskYPosition()); 10038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitUserModify: 10048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->userModify()); 10058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyMaxHeight: { 10068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const Length& maxHeight = style->maxHeight(); 10078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (maxHeight.isFixed() && maxHeight.value() == undefinedLength) 10088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 10098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(maxHeight); 10108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 10118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyMaxWidth: { 10128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const Length& maxWidth = style->maxWidth(); 10138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (maxWidth.isFixed() && maxWidth.value() == undefinedLength) 10148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 10158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(maxWidth); 10168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 10178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyMinHeight: 10188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->minHeight()); 10198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyMinWidth: 10208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->minWidth()); 10218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyOpacity: 10228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->opacity(), CSSPrimitiveValue::CSS_NUMBER); 10238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyOrphans: 10248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->orphans(), CSSPrimitiveValue::CSS_NUMBER); 10258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyOutlineColor: 10268f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return currentColorOrValidColor(style.get(), style->outlineColor()); 10278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyOutlineStyle: 10288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->outlineStyleIsAuto()) 10298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueAuto); 10308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->outlineStyle()); 10318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyOutlineWidth: 10328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->outlineWidth(), CSSPrimitiveValue::CSS_PX); 10338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyOverflow: 10348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(max(style->overflowX(), style->overflowY())); 10358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyOverflowX: 10368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->overflowX()); 10378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyOverflowY: 10388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_LAYOUT 10398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (settings && settings->layoutAlgorithm() == Settings::kLayoutSSR) 10408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueVisible); 10418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 10428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->overflowY()); 10438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyPaddingTop: 1044635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (renderer && renderer->isBox()) 1045635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return CSSPrimitiveValue::create(toRenderBox(renderer)->paddingTop(false), CSSPrimitiveValue::CSS_PX); 10468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->paddingTop()); 10478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyPaddingRight: 1048635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (renderer && renderer->isBox()) 1049635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return CSSPrimitiveValue::create(toRenderBox(renderer)->paddingRight(false), CSSPrimitiveValue::CSS_PX); 10508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->paddingRight()); 10518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyPaddingBottom: 1052635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (renderer && renderer->isBox()) 1053635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return CSSPrimitiveValue::create(toRenderBox(renderer)->paddingBottom(false), CSSPrimitiveValue::CSS_PX); 10548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->paddingBottom()); 10558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyPaddingLeft: 1056635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (renderer && renderer->isBox()) 1057635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return CSSPrimitiveValue::create(toRenderBox(renderer)->paddingLeft(false), CSSPrimitiveValue::CSS_PX); 10588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->paddingLeft()); 10598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyPageBreakAfter: 10608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->pageBreakAfter()); 10618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyPageBreakBefore: 10628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->pageBreakBefore()); 10638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyPageBreakInside: { 10648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EPageBreak pageBreak = style->pageBreakInside(); 10658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ASSERT(pageBreak != PBALWAYS); 10668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (pageBreak == PBALWAYS) 10678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 10688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->pageBreakInside()); 10698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 10708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyPosition: 10718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_LAYOUT 10728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (settings && settings->layoutAlgorithm() == Settings::kLayoutSSR) 10738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueStatic); 10748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 10758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->position()); 10768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyRight: 10778f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return getPositionOffsetValue(style.get(), CSSPropertyRight); 10788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTableLayout: 10798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->tableLayout()); 10808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextAlign: 10818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->textAlign()); 10820bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyTextDecoration: 10830bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return renderTextDecorationFlagsToCSSValue(style->textDecoration()); 10840bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyWebkitTextDecorationsInEffect: 10850bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return renderTextDecorationFlagsToCSSValue(style->textDecorationsInEffect()); 10868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitTextFillColor: 10878f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return currentColorOrValidColor(style.get(), style->textFillColor()); 10888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextIndent: 10898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->textIndent()); 10908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextShadow: 1091cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block return valueForShadow(style->textShadow(), propertyID); 1092231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block case CSSPropertyTextRendering: 1093231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return CSSPrimitiveValue::create(style->fontDescription().textRenderingMode()); 10940bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyTextOverflow: 10950bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (style->textOverflow()) 10960bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return CSSPrimitiveValue::createIdentifier(CSSValueEllipsis); 10970bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return CSSPrimitiveValue::createIdentifier(CSSValueClip); 10988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitTextSecurity: 10998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->textSecurity()); 11008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitTextSizeAdjust: 11018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->textSizeAdjust()) 11028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueAuto); 11038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 11048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitTextStrokeColor: 11058f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return currentColorOrValidColor(style.get(), style->textStrokeColor()); 11068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitTextStrokeWidth: 11078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->textStrokeWidth(), CSSPrimitiveValue::CSS_PX); 11088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextTransform: 11098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->textTransform()); 11108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTop: 11118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return getPositionOffsetValue(style.get(), CSSPropertyTop); 11128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyUnicodeBidi: 11138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->unicodeBidi()); 11148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyVerticalAlign: 11158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch (style->verticalAlign()) { 11168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case BASELINE: 11178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueBaseline); 11188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case MIDDLE: 11198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueMiddle); 11208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case SUB: 11218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueSub); 11228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case SUPER: 11238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueSuper); 11248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case TEXT_TOP: 11258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueTextTop); 11268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case TEXT_BOTTOM: 11278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueTextBottom); 11288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case TOP: 11298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueTop); 11308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case BOTTOM: 11318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueBottom); 11328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case BASELINE_MIDDLE: 11338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueWebkitBaselineMiddle); 11348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case LENGTH: 11358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->verticalAlignLength()); 11368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 11378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ASSERT_NOT_REACHED(); 11388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 11398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyVisibility: 11408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_LAYOUT 11418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (settings && settings->layoutAlgorithm() == Settings::kLayoutSSR) 11428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueVisible); 11438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 11448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->visibility()); 11458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWhiteSpace: 11468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_LAYOUT 11478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (settings && settings->layoutAlgorithm() == Settings::kLayoutSSR) 11488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch (style->whiteSpace()) { 11498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case NORMAL: 11508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case NOWRAP: 11518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case KHTML_NOWRAP: 11528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNormal); 11538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case PRE: 11548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case PRE_WRAP: 11558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValuePreWrap); 11568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case PRE_LINE: 11578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValuePreLine); 11588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 11598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 11608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 11618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->whiteSpace()); 11628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWidows: 11638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->widows(), CSSPrimitiveValue::CSS_NUMBER); 11648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWidth: 11658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (renderer) 11668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(sizingBox(renderer).width(), CSSPrimitiveValue::CSS_PX); 11678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->width()); 11688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWordBreak: 11698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->wordBreak()); 11708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWordSpacing: 11718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->wordSpacing(), CSSPrimitiveValue::CSS_PX); 11728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWordWrap: 11738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->wordWrap()); 11748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitLineBreak: 11758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->khtmlLineBreak()); 11768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitNbspMode: 11778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->nbspMode()); 11788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMatchNearestMailBlockquoteColor: 11798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->matchNearestMailBlockquoteColor()); 11808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyResize: 11818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->resize()); 1182231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block case CSSPropertyWebkitFontSmoothing: 1183231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return CSSPrimitiveValue::create(style->fontDescription().fontSmoothing()); 11848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyZIndex: 11858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->hasAutoZIndex()) 11868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueAuto); 11878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->zIndex(), CSSPrimitiveValue::CSS_NUMBER); 11888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyZoom: 11898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->zoom(), CSSPrimitiveValue::CSS_NUMBER); 11908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBoxSizing: 11918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->boxSizing() == CONTENT_BOX) 11928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueContentBox); 11938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueBorderBox); 11948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(DASHBOARD_SUPPORT) 11958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitDashboardRegion: 11968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 11978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const Vector<StyleDashboardRegion>& regions = style->dashboardRegions(); 11988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned count = regions.size(); 11998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (count == 1 && regions[0].type == StyleDashboardRegion::None) 12008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueNone); 12018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 12028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<DashboardRegion> firstRegion; 12038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project DashboardRegion* previousRegion = 0; 12048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for (unsigned i = 0; i < count; i++) { 12058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<DashboardRegion> region = DashboardRegion::create(); 12068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project StyleDashboardRegion styleRegion = regions[i]; 12078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 12088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region->m_label = styleRegion.label; 12098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project LengthBox offset = styleRegion.offset; 12108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region->setTop(CSSPrimitiveValue::create(offset.top().value(), CSSPrimitiveValue::CSS_PX)); 12118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region->setRight(CSSPrimitiveValue::create(offset.right().value(), CSSPrimitiveValue::CSS_PX)); 12128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region->setBottom(CSSPrimitiveValue::create(offset.bottom().value(), CSSPrimitiveValue::CSS_PX)); 12138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region->setLeft(CSSPrimitiveValue::create(offset.left().value(), CSSPrimitiveValue::CSS_PX)); 12148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region->m_isRectangle = (styleRegion.type == StyleDashboardRegion::Rectangle); 12158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region->m_isCircle = (styleRegion.type == StyleDashboardRegion::Circle); 12168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 12178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (previousRegion) 12188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project previousRegion->m_next = region; 12198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 12208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project firstRegion = region; 12218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project previousRegion = region.get(); 12228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 12238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(firstRegion.release()); 12248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 12258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1226635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyWebkitAnimationDelay: 1227635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return getDelayValue(style->animations()); 1228635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyWebkitAnimationDirection: { 1229635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); 1230635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project const AnimationList* t = style->animations(); 1231635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (t) { 1232635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project for (size_t i = 0; i < t->size(); ++i) { 1233635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (t->animation(i)->direction()) 1234635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::createIdentifier(CSSValueAlternate)); 1235635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project else 1236635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::createIdentifier(CSSValueNormal)); 1237635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 1238635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } else 1239635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::createIdentifier(CSSValueNormal)); 1240635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return list.release(); 1241635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 1242635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyWebkitAnimationDuration: 1243635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return getDurationValue(style->animations()); 1244635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyWebkitAnimationIterationCount: { 1245635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); 1246635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project const AnimationList* t = style->animations(); 1247635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (t) { 1248635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project for (size_t i = 0; i < t->size(); ++i) { 1249635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project int iterationCount = t->animation(i)->iterationCount(); 12508f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (iterationCount == Animation::IterationCountInfinite) 1251635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::createIdentifier(CSSValueInfinite)); 1252635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project else 1253635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(iterationCount, CSSPrimitiveValue::CSS_NUMBER)); 1254635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 1255635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } else 1256635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(Animation::initialAnimationIterationCount(), CSSPrimitiveValue::CSS_NUMBER)); 1257635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return list.release(); 1258635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 1259635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyWebkitAnimationName: { 1260635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); 1261635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project const AnimationList* t = style->animations(); 1262635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (t) { 1263635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project for (size_t i = 0; i < t->size(); ++i) { 1264635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(t->animation(i)->name(), CSSPrimitiveValue::CSS_STRING)); 1265635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 1266635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } else 1267635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::createIdentifier(CSSValueNone)); 1268635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return list.release(); 1269635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 12700bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyWebkitAnimationPlayState: { 12710bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); 12720bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch const AnimationList* t = style->animations(); 12730bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (t) { 12740bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch for (size_t i = 0; i < t->size(); ++i) { 12750bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch int prop = t->animation(i)->playState(); 12760bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (prop == AnimPlayStatePlaying) 12770bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch list->append(CSSPrimitiveValue::createIdentifier(CSSValueRunning)); 12780bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch else 12790bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch list->append(CSSPrimitiveValue::createIdentifier(CSSValuePaused)); 12800bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch } 12810bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch } else 12820bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch list->append(CSSPrimitiveValue::createIdentifier(CSSValueRunning)); 12830bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return list.release(); 12840bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch } 1285635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyWebkitAnimationTimingFunction: 1286635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return getTimingFunctionValue(style->animations()); 12878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitAppearance: 12888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->appearance()); 12898f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyWebkitBackfaceVisibility: 12908f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return CSSPrimitiveValue::createIdentifier((style->backfaceVisibility() == BackfaceVisibilityHidden) ? CSSValueHidden : CSSValueVisible); 12918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBorderImage: 12928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return valueForNinePieceImage(style->borderImage()); 12938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMaskBoxImage: 12948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return valueForNinePieceImage(style->maskBoxImage()); 12958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitFontSizeDelta: 12968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Not a real style property -- used by the editing engine -- so has no computed value. 12978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 12988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMarginBottomCollapse: 12998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->marginBottomCollapse()); 13008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMarginTopCollapse: 13018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->marginTopCollapse()); 13028f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyWebkitPerspective: 13038f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (!style->hasPerspective()) 13048f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return CSSPrimitiveValue::createIdentifier(CSSValueNone); 13058f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return CSSPrimitiveValue::create(style->perspective(), CSSPrimitiveValue::CSS_NUMBER); 13068f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyWebkitPerspectiveOrigin: { 13078f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 13088f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (renderer) { 13098f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian IntRect box = sizingBox(renderer); 13108f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian list->append(CSSPrimitiveValue::create(style->perspectiveOriginX().calcMinValue(box.width()), CSSPrimitiveValue::CSS_PX)); 13118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian list->append(CSSPrimitiveValue::create(style->perspectiveOriginY().calcMinValue(box.height()), CSSPrimitiveValue::CSS_PX)); 13128f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian } 13138f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian else { 13148f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian list->append(CSSPrimitiveValue::create(style->perspectiveOriginX())); 13158f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian list->append(CSSPrimitiveValue::create(style->perspectiveOriginY())); 13168f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian } 13178f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return list.release(); 13188f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian } 13198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitRtlOrdering: 13208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (style->visuallyOrdered()) 13218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueVisual); 13228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createIdentifier(CSSValueLogical); 13238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitUserDrag: 13248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->userDrag()); 13258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitUserSelect: 13268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::create(style->userSelect()); 13270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyBorderBottomLeftRadius: 13288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return getBorderRadiusCornerValue(style->borderBottomLeftRadius()); 13290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyBorderBottomRightRadius: 13308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return getBorderRadiusCornerValue(style->borderBottomRightRadius()); 13310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyBorderTopLeftRadius: 13328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return getBorderRadiusCornerValue(style->borderTopLeftRadius()); 13330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyBorderTopRightRadius: 13348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return getBorderRadiusCornerValue(style->borderTopRightRadius()); 13355f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian case CSSPropertyClip: { 13365f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian if (!style->hasClip()) 13375f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSPrimitiveValue::createIdentifier(CSSValueAuto); 13385f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian RefPtr<Rect> rect = Rect::create(); 13395f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian rect->setTop(CSSPrimitiveValue::create(style->clip().top().value(), CSSPrimitiveValue::CSS_PX)); 13405f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian rect->setRight(CSSPrimitiveValue::create(style->clip().right().value(), CSSPrimitiveValue::CSS_PX)); 13415f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian rect->setBottom(CSSPrimitiveValue::create(style->clip().bottom().value(), CSSPrimitiveValue::CSS_PX)); 13425f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian rect->setLeft(CSSPrimitiveValue::create(style->clip().left().value(), CSSPrimitiveValue::CSS_PX)); 13435f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian return CSSPrimitiveValue::create(rect.release()); 13448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 13458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitTransform: 13468f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return computedTransform(renderer, style.get()); 1347635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyWebkitTransformOrigin: { 1348635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 13498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (renderer) { 13508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project IntRect box = sizingBox(renderer); 1351635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(style->transformOriginX().calcMinValue(box.width()), CSSPrimitiveValue::CSS_PX)); 1352635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(style->transformOriginY().calcMinValue(box.height()), CSSPrimitiveValue::CSS_PX)); 13538f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (style->transformOriginZ() != 0) 13548f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian list->append(CSSPrimitiveValue::create(style->transformOriginZ(), CSSPrimitiveValue::CSS_PX)); 1355635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } else { 1356635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(style->transformOriginX())); 1357635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::create(style->transformOriginY())); 13588f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (style->transformOriginZ() != 0) 13598f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian list->append(CSSPrimitiveValue::create(style->transformOriginZ(), CSSPrimitiveValue::CSS_PX)); 13608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 13618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return list.release(); 13628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 13638f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyWebkitTransformStyle: 13648f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return CSSPrimitiveValue::createIdentifier((style->transformStyle3D() == TransformStyle3DPreserve3D) ? CSSValuePreserve3d : CSSValueFlat); 1365635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyWebkitTransitionDelay: 1366635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return getDelayValue(style->transitions()); 1367635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyWebkitTransitionDuration: 1368635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return getDurationValue(style->transitions()); 13698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitTransitionProperty: { 13708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); 13718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const AnimationList* t = style->transitions(); 13728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (t) { 13738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for (size_t i = 0; i < t->size(); ++i) { 13748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int prop = t->animation(i)->property(); 1375635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RefPtr<CSSValue> propertyValue; 13768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (prop == cAnimateNone) 1377635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project propertyValue = CSSPrimitiveValue::createIdentifier(CSSValueNone); 13788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else if (prop == cAnimateAll) 1379635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project propertyValue = CSSPrimitiveValue::createIdentifier(CSSValueAll); 13808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 1381635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project propertyValue = CSSPrimitiveValue::create(getPropertyName(static_cast<CSSPropertyID>(prop)), CSSPrimitiveValue::CSS_STRING); 1382635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(propertyValue); 13838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1384635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } else 1385635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project list->append(CSSPrimitiveValue::createIdentifier(CSSValueAll)); 13868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return list.release(); 13878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1388635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyWebkitTransitionTimingFunction: 1389635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return getTimingFunctionValue(style->transitions()); 1390635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case CSSPropertyPointerEvents: 1391635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return CSSPrimitiveValue::create(style->pointerEvents()); 1392643ca7872b450ea4efacab6188849e5aac2ba161Steve Block case CSSPropertyWebkitColorCorrection: 1393643ca7872b450ea4efacab6188849e5aac2ba161Steve Block return CSSPrimitiveValue::create(style->colorSpace()); 13948f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 13958f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian /* Shorthand properties, currently not supported see bug 13658*/ 13968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBackground: 13978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorder: 13988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderBottom: 13998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderColor: 14008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderLeft: 14010bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch case CSSPropertyBorderRadius: 14028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderRight: 14038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderStyle: 14048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderTop: 14058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyBorderWidth: 14068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyFont: 14078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyListStyle: 14088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyMargin: 14098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyPadding: 14108f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian break; 14118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 14128f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian /* Unimplemented CSS 3 properties (including CSS3 shorthand properties) */ 14138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextLineThrough: 14148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextLineThroughColor: 14158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextLineThroughMode: 14168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextLineThroughStyle: 14178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextLineThroughWidth: 14188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextOverline: 14198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextOverlineColor: 14208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextOverlineMode: 14218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextOverlineStyle: 14228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextOverlineWidth: 14238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextUnderline: 14248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextUnderlineColor: 14258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextUnderlineMode: 14268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextUnderlineStyle: 14278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyTextUnderlineWidth: 14288f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian break; 14298f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 14308f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian /* Unimplemented @font-face properties */ 14318f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyFontStretch: 14328f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertySrc: 14338f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyUnicodeRange: 14348f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian break; 14358f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 14368f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian /* Other unimplemented properties */ 14378f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyContent: // FIXME: needs implementation, bug 23668 14388f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyCounterIncrement: 14398f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyCounterReset: 14408f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyOutline: // FIXME: needs implementation 14418f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyOutlineOffset: // FIXME: needs implementation 14428f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyPage: // for @page 14438f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertyQuotes: // FIXME: needs implementation 14448f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian case CSSPropertySize: // for @page 14458f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian break; 14468f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 14478f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian /* Unimplemented -webkit- properties */ 14488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitAnimation: 14498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitBorderRadius: 14508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumns: 14518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitColumnRule: 14528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMarginCollapse: 14538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMarginStart: 14548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMarquee: 14558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMarqueeSpeed: 14568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitMask: 14578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitPaddingStart: 14585f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian case CSSPropertyWebkitPerspectiveOriginX: 14595f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian case CSSPropertyWebkitPerspectiveOriginY: 14608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitTextStroke: 14615f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian case CSSPropertyWebkitTransformOriginX: 14625f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian case CSSPropertyWebkitTransformOriginY: 14635f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian case CSSPropertyWebkitTransformOriginZ: 14648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitTransition: 14658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitVariableDeclarationBlock: 14668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 14678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_CSS_TAP_HIGHLIGHT_COLOR 14688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CSSPropertyWebkitTapHighlightColor: 14698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return CSSPrimitiveValue::createColor(style->tapHighlightColor().rgb()); 14708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 14718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG) 14728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // FIXME: This default case ruins the point of using an enum for 14738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // properties -- it prevents us from getting a warning when we 14748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // forget to list a property above. 14758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project default: 14768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return getSVGPropertyCSSValue(propertyID, DoNotUpdateLayout); 14778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 14788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 14798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1480231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block logUnimplementedPropertyID(propertyID); 14818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 14828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 14838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 14848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectString CSSComputedStyleDeclaration::getPropertyValue(int propertyID) const 14858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 14868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSValue> value = getPropertyCSSValue(propertyID); 14878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (value) 14888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return value->cssText(); 14898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return ""; 14908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 14918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 14928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool CSSComputedStyleDeclaration::getPropertyPriority(int /*propertyID*/) const 14938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 14948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // All computed styles have a priority of false (not "important"). 14958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 14968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 14978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 14988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectString CSSComputedStyleDeclaration::removeProperty(int /*propertyID*/, ExceptionCode& ec) 14998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 15008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ec = NO_MODIFICATION_ALLOWED_ERR; 15018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return String(); 15028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 15038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid CSSComputedStyleDeclaration::setProperty(int /*propertyID*/, const String& /*value*/, bool /*important*/, ExceptionCode& ec) 15058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 15068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ec = NO_MODIFICATION_ALLOWED_ERR; 15078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 15088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectunsigned CSSComputedStyleDeclaration::length() const 15108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 15118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Node* node = m_node.get(); 15128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!node) 15138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 15148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RenderStyle* style = node->computedStyle(); 15168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!style) 15178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 15188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return numComputedProperties; 15208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 15218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectString CSSComputedStyleDeclaration::item(unsigned i) const 15238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 15248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (i >= length()) 1525643ca7872b450ea4efacab6188849e5aac2ba161Steve Block return ""; 15268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return getPropertyName(static_cast<CSSPropertyID>(computedProperties[i])); 15288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 15298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochbool CSSComputedStyleDeclaration::cssPropertyMatches(const CSSProperty* property) const 15318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 15320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (property->id() == CSSPropertyFontSize && property->value()->isPrimitiveValue() && m_node) { 15330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch m_node->document()->updateLayoutIgnorePendingStylesheets(); 15340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch RenderStyle* style = m_node->computedStyle(); 15350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (style && style->fontDescription().keywordSize()) { 15360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch int sizeValue = cssIdentifierForFontSizeKeyword(style->fontDescription().keywordSize()); 15370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(property->value()); 15380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (primitiveValue->primitiveType() == CSSPrimitiveValue::CSS_IDENT && primitiveValue->getIdent() == sizeValue) 15390bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return true; 15400bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch } 15418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 15420bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 15430bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return CSSStyleDeclaration::cssPropertyMatches(property); 15448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 15458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectPassRefPtr<CSSMutableStyleDeclaration> CSSComputedStyleDeclaration::copy() const 15478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 15488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return copyPropertiesInSet(computedProperties, numComputedProperties); 15498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 15508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectPassRefPtr<CSSMutableStyleDeclaration> CSSComputedStyleDeclaration::makeMutable() 15528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 15538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return copy(); 15548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 15558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 1557