181a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles)/* 281a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 381a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 481a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * 581a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * This library is free software; you can redistribute it and/or 681a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * modify it under the terms of the GNU Library General Public 781a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * License as published by the Free Software Foundation; either 881a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * version 2 of the License, or (at your option) any later version. 981a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * 1081a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * This library is distributed in the hope that it will be useful, 1181a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of 1281a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1381a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * Library General Public License for more details. 1481a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * 1581a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * You should have received a copy of the GNU Library General Public License 1681a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * along with this library; see the file COPYING.LIB. If not, write to 1781a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 1881a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * Boston, MA 02110-1301, USA. 1981a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) * 2081a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) */ 2181a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) 2281a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles)#include "config.h" 2381a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles)#include "core/css/resolver/StyleResolverState.h" 2481a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) 2509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "core/animation/css/CSSAnimations.h" 2681a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles)#include "core/dom/Node.h" 2781a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles)#include "core/dom/NodeRenderStyle.h" 2809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "core/frame/FrameHost.h" 2981a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) 30c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 3181a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) 3209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)StyleResolverState::StyleResolverState(Document& document, Element* element, RenderStyle* parentStyle) 33c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) : m_elementContext(element ? ElementResolveContext(*element) : ElementResolveContext(document)) 341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) , m_document(document) 35d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) , m_style(nullptr) 3609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) , m_cssToLengthConversionData(0, rootElementStyle(), document.renderView()) 371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) , m_parentStyle(parentStyle) 387757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch , m_applyPropertyToRegularStyle(true) 397757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch , m_applyPropertyToVisitedLinkStyle(false) 4007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch , m_lineHeightValue(nullptr) 417757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch , m_styleMap(*this, m_elementStyleResources) 4281a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles){ 4343e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) if (!parentStyle && m_elementContext.parentNode()) 44e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch m_parentStyle = m_elementContext.parentNode()->renderStyle(); 45591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 467242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci ASSERT(document.isActive()); 4709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) m_elementStyleResources.setDeviceScaleFactor(document.frameHost()->deviceScaleFactor()); 4809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)} 4909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 5009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)StyleResolverState::~StyleResolverState() 5109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles){ 5209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)} 5309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 5407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdochvoid StyleResolverState::setAnimationUpdate(PassOwnPtrWillBeRawPtr<CSSAnimationUpdate> update) 5509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles){ 5609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) m_animationUpdate = update; 5709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)} 5809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 5907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben MurdochPassOwnPtrWillBeRawPtr<CSSAnimationUpdate> StyleResolverState::takeAnimationUpdate() 6009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles){ 6109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return m_animationUpdate.release(); 6281a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles)} 6381a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) 64c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 65