X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2FWebKit%2FSource%2Fcore%2Fcss%2FMediaQueryExp.h;h=036a030d995820a412f88bd8d701d32862990adc;hb=004985e17e624662a4c85c76a7654039dc83f028;hp=5bbe24f3cc68e88c7ad4d7e5999cabfb74d5bf2b;hpb=2f108dbacb161091e42a3479f4e171339b7e7623;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/WebKit/Source/core/css/MediaQueryExp.h b/src/third_party/WebKit/Source/core/css/MediaQueryExp.h index 5bbe24f..036a030 100644 --- a/src/third_party/WebKit/Source/core/css/MediaQueryExp.h +++ b/src/third_party/WebKit/Source/core/css/MediaQueryExp.h @@ -29,7 +29,9 @@ #ifndef MediaQueryExp_h #define MediaQueryExp_h +#include "CSSValueKeywords.h" #include "MediaFeatureNames.h" +#include "core/css/CSSPrimitiveValue.h" #include "core/css/CSSValue.h" #include "wtf/PassOwnPtr.h" #include "wtf/RefPtr.h" @@ -37,7 +39,46 @@ namespace WebCore { class CSSParserValueList; -class MediaQueryExp : public NoBaseWillBeGarbageCollectedFinalized { +struct MediaQueryExpValue { + CSSValueID id; + double value; + CSSPrimitiveValue::UnitTypes unit; + unsigned numerator; + unsigned denominator; + + bool isID; + bool isValue; + bool isRatio; + bool isInteger; + + MediaQueryExpValue() + : id(CSSValueInvalid) + , value(0) + , unit(CSSPrimitiveValue::CSS_UNKNOWN) + , numerator(0) + , denominator(1) + , isID(false) + , isValue(false) + , isRatio(false) + , isInteger(false) + { + } + + bool isValid() const { return (isID || isValue || isRatio); } + String cssText() const; + bool equals(const MediaQueryExpValue& expValue) const + { + if (isID) + return (id == expValue.id); + if (isValue) + return (value == expValue.value); + if (isRatio) + return (numerator == expValue.numerator && denominator == expValue.denominator); + return !expValue.isValid(); + } +}; + +class MediaQueryExp : public NoBaseWillBeGarbageCollectedFinalized { WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; public: static PassOwnPtrWillBeRawPtr createIfValid(const String& mediaFeature, CSSParserValueList*); @@ -45,14 +86,9 @@ public: const String& mediaFeature() const { return m_mediaFeature; } - CSSValue* value() const { return m_value.get(); } + MediaQueryExpValue expValue() const { return m_expValue; } - bool operator==(const MediaQueryExp& other) const - { - return (other.m_mediaFeature == m_mediaFeature) - && ((!other.m_value && !m_value) - || (other.m_value && m_value && other.m_value->equals(*m_value))); - } + bool operator==(const MediaQueryExp& other) const; bool isViewportDependent() const; @@ -60,15 +96,15 @@ public: PassOwnPtrWillBeRawPtr copy() const { return adoptPtrWillBeNoop(new MediaQueryExp(*this)); } - void trace(Visitor* visitor) { visitor->trace(m_value); } - MediaQueryExp(const MediaQueryExp& other); + void trace(Visitor* visitor) { } + private: - MediaQueryExp(const String&, PassRefPtrWillBeRawPtr); + MediaQueryExp(const String&, const MediaQueryExpValue&); String m_mediaFeature; - RefPtrWillBeMember m_value; + MediaQueryExpValue m_expValue; }; } // namespace