| OLD | NEW | 
|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "config.h" | 5 #include "config.h" | 
| 6 #include "core/css/parser/MediaQueryParser.h" | 6 #include "core/css/parser/MediaQueryParser.h" | 
| 7 | 7 | 
| 8 #include "MediaTypeNames.h" | 8 #include "MediaTypeNames.h" | 
| 9 #include "core/css/parser/CSSPropertyParser.h" | 9 #include "core/css/parser/CSSPropertyParser.h" | 
| 10 #include "core/css/parser/MediaQueryTokenizer.h" | 10 #include "core/css/parser/MediaQueryTokenizer.h" | 
| 11 | 11 | 
| 12 namespace WebCore { | 12 namespace WebCore { | 
| 13 | 13 | 
| 14 PassRefPtrWillBeRawPtr<MediaQuerySet> MediaQueryParser::parseMediaQuerySet(const
      String& queryString) | 14 PassRefPtrWillBeRawPtr<MediaQuerySet> MediaQueryParser::parseMediaQuerySet(const
      String& queryString) | 
| 15 { | 15 { | 
| 16     // FIXME: Replace the MediaQueryTokenizer with a generic CSSTokenizer, once 
     there is one, | 16     // FIXME: Replace the MediaQueryTokenizer with a generic CSSTokenizer, once 
     there is one, | 
| 17     // or better yet, replace the MediaQueryParser with a generic thread-safe CS
     S parser. | 17     // or better yet, replace the MediaQueryParser with a generic thread-safe CS
     S parser. | 
| 18     Vector<MediaQueryToken> tokens; | 18     Vector<MediaQueryToken> tokens; | 
| 19     MediaQueryTokenizer::tokenize(queryString, tokens); | 19     MediaQueryTokenizer::tokenize(queryString, tokens); | 
| 20     return MediaQueryParser(MediaQuerySetParser).parseImpl(tokens.begin(), token
     s.end()); | 20     return MediaQueryParser(MediaQuerySetParser).parseImpl(tokens.begin(), token
     s.end()); | 
| 21 } | 21 } | 
| 22 | 22 | 
| 23 PassRefPtrWillBeRawPtr<MediaQuerySet> MediaQueryParser::parseMediaCondition(Toke
     nIterator token, TokenIterator endToken) | 23 PassRefPtrWillBeRawPtr<MediaQuerySet> MediaQueryParser::parseMediaCondition(Medi
     aQueryTokenIterator token, MediaQueryTokenIterator endToken) | 
| 24 { | 24 { | 
| 25     return MediaQueryParser(MediaConditionParser).parseImpl(token, endToken); | 25     return MediaQueryParser(MediaConditionParser).parseImpl(token, endToken); | 
| 26 } | 26 } | 
| 27 | 27 | 
| 28 const MediaQueryParser::State MediaQueryParser::ReadRestrictor = &MediaQueryPars
     er::readRestrictor; | 28 const MediaQueryParser::State MediaQueryParser::ReadRestrictor = &MediaQueryPars
     er::readRestrictor; | 
| 29 const MediaQueryParser::State MediaQueryParser::ReadMediaType = &MediaQueryParse
     r::readMediaType; | 29 const MediaQueryParser::State MediaQueryParser::ReadMediaType = &MediaQueryParse
     r::readMediaType; | 
| 30 const MediaQueryParser::State MediaQueryParser::ReadAnd = &MediaQueryParser::rea
     dAnd; | 30 const MediaQueryParser::State MediaQueryParser::ReadAnd = &MediaQueryParser::rea
     dAnd; | 
| 31 const MediaQueryParser::State MediaQueryParser::ReadFeatureStart = &MediaQueryPa
     rser::readFeatureStart; | 31 const MediaQueryParser::State MediaQueryParser::ReadFeatureStart = &MediaQueryPa
     rser::readFeatureStart; | 
| 32 const MediaQueryParser::State MediaQueryParser::ReadFeature = &MediaQueryParser:
     :readFeature; | 32 const MediaQueryParser::State MediaQueryParser::ReadFeature = &MediaQueryParser:
     :readFeature; | 
| 33 const MediaQueryParser::State MediaQueryParser::ReadFeatureColon = &MediaQueryPa
     rser::readFeatureColon; | 33 const MediaQueryParser::State MediaQueryParser::ReadFeatureColon = &MediaQueryPa
     rser::readFeatureColon; | 
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 180 | 180 | 
| 181     handleBlocks(token); | 181     handleBlocks(token); | 
| 182     m_blockWatcher.handleToken(token); | 182     m_blockWatcher.handleToken(token); | 
| 183 | 183 | 
| 184     // Call the function that handles current state | 184     // Call the function that handles current state | 
| 185     if (type != WhitespaceToken && type != CommentToken) | 185     if (type != WhitespaceToken && type != CommentToken) | 
| 186         ((this)->*(m_state))(type, token); | 186         ((this)->*(m_state))(type, token); | 
| 187 } | 187 } | 
| 188 | 188 | 
| 189 // The state machine loop | 189 // The state machine loop | 
| 190 PassRefPtrWillBeRawPtr<MediaQuerySet> MediaQueryParser::parseImpl(TokenIterator 
     token, TokenIterator endToken) | 190 PassRefPtrWillBeRawPtr<MediaQuerySet> MediaQueryParser::parseImpl(MediaQueryToke
     nIterator token, MediaQueryTokenIterator endToken) | 
| 191 { | 191 { | 
| 192     for (; token != endToken; ++token) | 192     for (; token != endToken; ++token) | 
| 193         processToken(*token); | 193         processToken(*token); | 
| 194 | 194 | 
| 195     if (m_state != ReadAnd && m_state != ReadRestrictor && m_state != Done && (m
     _parserType != MediaConditionParser || m_state != ReadFeatureStart)) | 195     if (m_state != ReadAnd && m_state != ReadRestrictor && m_state != Done && (m
     _parserType != MediaConditionParser || m_state != ReadFeatureStart)) | 
| 196         m_querySet->addMediaQuery(MediaQuery::createNotAll()); | 196         m_querySet->addMediaQuery(MediaQuery::createNotAll()); | 
| 197     else if (m_mediaQueryData.currentMediaQueryChanged()) | 197     else if (m_mediaQueryData.currentMediaQueryChanged()) | 
| 198         m_querySet->addMediaQuery(m_mediaQueryData.takeMediaQuery()); | 198         m_querySet->addMediaQuery(m_mediaQueryData.takeMediaQuery()); | 
| 199 | 199 | 
| 200     return m_querySet; | 200     return m_querySet; | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 254     m_valueList.addValue(value); | 254     m_valueList.addValue(value); | 
| 255 } | 255 } | 
| 256 | 256 | 
| 257 void MediaQueryData::setMediaType(const String& mediaType) | 257 void MediaQueryData::setMediaType(const String& mediaType) | 
| 258 { | 258 { | 
| 259     m_mediaType = mediaType; | 259     m_mediaType = mediaType; | 
| 260     m_mediaTypeSet = true; | 260     m_mediaTypeSet = true; | 
| 261 } | 261 } | 
| 262 | 262 | 
| 263 } // namespace WebCore | 263 } // namespace WebCore | 
| OLD | NEW | 
|---|