109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)/*
209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * Copyright (C) 2003 Lars Knoll (knoll@kde.org)
309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * Copyright (C) 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserved.
409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * Copyright (C) 2009 - 2010  Torch Mobile (Beijing) Co. Ltd. All rights reserved.
609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) *
709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * This library is free software; you can redistribute it and/or
809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * modify it under the terms of the GNU Library General Public
909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * License as published by the Free Software Foundation; either
1009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * version 2 of the License, or (at your option) any later version.
1109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) *
1209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * This library is distributed in the hope that it will be useful,
1309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of
1409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * Library General Public License for more details.
1609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) *
1709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * You should have received a copy of the GNU Library General Public License
1809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * along with this library; see the file COPYING.LIB.  If not, write to
1909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
2009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * Boston, MA 02110-1301, USA.
2109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) */
2209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
2309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#ifndef CSSParserObserver_h
2409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define CSSParserObserver_h
2509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
2609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "core/css/CSSPropertySourceData.h"
2709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
28c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
2909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
3009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)// FIXME: Although the parser produces these, they're all ignored!
3109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)enum CSSParserError {
3209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    NoCSSError,
3309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    PropertyDeclarationCSSError,
3409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    InvalidPropertyValueCSSError,
3509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    InvalidPropertyCSSError,
3609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    InvalidSelectorCSSError,
3709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    InvalidSupportsConditionCSSError,
3809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    InvalidRuleCSSError,
3909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    InvalidMediaQueryCSSError,
4009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    InvalidKeyframeSelectorCSSError,
4109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    InvalidSelectorPseudoCSSError,
4209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    UnterminatedCommentCSSError,
4309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    GeneralCSSError
4409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)};
4509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
4609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)// FIXME: What are these actually used for? There is probably
4709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)// a better way for the parser to communicate this information
4809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)// to the Inspector.
4909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
5009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)// This only implemented by StyleSheetHandler in InspectorStyleSheet.cpp.
5109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)class CSSParserObserver {
52aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch    STACK_ALLOCATED();
5309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)public:
5409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void startRuleHeader(CSSRuleSourceData::Type, unsigned offset) = 0;
5509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void endRuleHeader(unsigned offset) = 0;
5609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void startSelector(unsigned offset) = 0;
5709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void endSelector(unsigned offset) = 0;
5809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void startRuleBody(unsigned offset) = 0;
5909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void endRuleBody(unsigned offset, bool error) = 0;
6009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void startProperty(unsigned offset) = 0;
6109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void endProperty(bool isImportant, bool isParsed, unsigned offset, CSSParserError) = 0;
6209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void startComment(unsigned offset) = 0;
6309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void endComment(unsigned offset) = 0;
6409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)};
6509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
66c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
6709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
6809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#endif // CSSParserObserver_h
69