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
3 // found in the LICENSE file.
5 #ifndef SizesAttributeParser_h
6 #define SizesAttributeParser_h
8 #include "core/css/MediaValues.h"
9 #include "core/css/parser/MediaQueryParser.h"
10 #include "platform/heap/Handle.h"
11 #include "wtf/text/WTFString.h"
15 class SizesAttributeParser {
18 SizesAttributeParser(PassRefPtr<MediaValues>, const String&);
20 bool viewportDependant() const { return m_viewportDependant; }
24 bool parse(Vector<MediaQueryToken>& tokens);
25 bool parseMediaConditionAndLength(MediaQueryTokenIterator startToken, MediaQueryTokenIterator endToken);
26 unsigned effectiveSize();
27 bool calculateLengthInPixels(MediaQueryTokenIterator startToken, MediaQueryTokenIterator endToken, unsigned& result);
28 bool mediaConditionMatches(PassRefPtrWillBeRawPtr<MediaQuerySet> mediaCondition);
29 unsigned effectiveSizeDefaultValue();
31 RefPtrWillBeMember<MediaQuerySet> m_mediaCondition;
32 RefPtr<MediaValues> m_mediaValues;
35 bool m_viewportDependant;
36 Vector<MediaQueryToken> m_tokens;