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