OLD | NEW |
1 /* | 1 /* |
2 * CSS Media Query Evaluator | 2 * CSS Media Query Evaluator |
3 * | 3 * |
4 * Copyright (C) 2006 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>. | 4 * Copyright (C) 2006 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>. |
5 * Copyright (C) 2013 Apple Inc. All rights reserved. | 5 * Copyright (C) 2013 Apple Inc. All rights reserved. |
6 * Copyright (C) 2013 Intel Corporation. All rights reserved. | 6 * Copyright (C) 2013 Intel Corporation. All rights reserved. |
7 * | 7 * |
8 * Redistribution and use in source and binary forms, with or without | 8 * Redistribution and use in source and binary forms, with or without |
9 * modification, are permitted provided that the following conditions | 9 * modification, are permitted provided that the following conditions |
10 * are met: | 10 * are met: |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 typedef HashMap<StringImpl*, EvalFunc> FunctionMap; | 62 typedef HashMap<StringImpl*, EvalFunc> FunctionMap; |
63 static FunctionMap* gFunctionMap; | 63 static FunctionMap* gFunctionMap; |
64 | 64 |
65 MediaQueryEvaluator::MediaQueryEvaluator(bool mediaFeatureResult) | 65 MediaQueryEvaluator::MediaQueryEvaluator(bool mediaFeatureResult) |
66 : m_frame(0) | 66 : m_frame(0) |
67 , m_style(0) | 67 , m_style(0) |
68 , m_expResult(mediaFeatureResult) | 68 , m_expResult(mediaFeatureResult) |
69 { | 69 { |
70 } | 70 } |
71 | 71 |
72 MediaQueryEvaluator::MediaQueryEvaluator(const AtomicString& acceptedMediaType,
bool mediaFeatureResult) | 72 MediaQueryEvaluator::MediaQueryEvaluator(const String& acceptedMediaType, bool m
ediaFeatureResult) |
73 : m_mediaType(acceptedMediaType) | 73 : m_mediaType(acceptedMediaType) |
74 , m_frame(0) | 74 , m_frame(0) |
75 , m_style(0) | 75 , m_style(0) |
76 , m_expResult(mediaFeatureResult) | 76 , m_expResult(mediaFeatureResult) |
77 { | 77 { |
78 } | 78 } |
79 | 79 |
80 MediaQueryEvaluator::MediaQueryEvaluator(const char* acceptedMediaType, bool med
iaFeatureResult) | 80 MediaQueryEvaluator::MediaQueryEvaluator(const char* acceptedMediaType, bool med
iaFeatureResult) |
81 : m_mediaType(acceptedMediaType) | 81 : m_mediaType(acceptedMediaType) |
82 , m_frame(0) | 82 , m_frame(0) |
83 , m_style(0) | 83 , m_style(0) |
84 , m_expResult(mediaFeatureResult) | 84 , m_expResult(mediaFeatureResult) |
85 { | 85 { |
86 } | 86 } |
87 | 87 |
88 MediaQueryEvaluator::MediaQueryEvaluator(const AtomicString& acceptedMediaType,
Frame* frame, RenderStyle* style) | 88 MediaQueryEvaluator::MediaQueryEvaluator(const String& acceptedMediaType, Frame*
frame, RenderStyle* style) |
89 : m_mediaType(acceptedMediaType) | 89 : m_mediaType(acceptedMediaType) |
90 , m_frame(frame) | 90 , m_frame(frame) |
91 , m_style(style) | 91 , m_style(style) |
92 , m_expResult(false) // Doesn't matter when we have m_frame and m_style. | 92 , m_expResult(false) // Doesn't matter when we have m_frame and m_style. |
93 { | 93 { |
94 } | 94 } |
95 | 95 |
96 MediaQueryEvaluator::~MediaQueryEvaluator() | 96 MediaQueryEvaluator::~MediaQueryEvaluator() |
97 { | 97 { |
98 } | 98 } |
99 | 99 |
100 bool MediaQueryEvaluator::mediaTypeMatch(const AtomicString& mediaTypeToMatch) c
onst | 100 bool MediaQueryEvaluator::mediaTypeMatch(const String& mediaTypeToMatch) const |
101 { | 101 { |
102 return mediaTypeToMatch.isEmpty() | 102 return mediaTypeToMatch.isEmpty() |
103 || equalIgnoringCase(mediaTypeToMatch, "all") | 103 || equalIgnoringCase(mediaTypeToMatch, "all") |
104 || equalIgnoringCase(mediaTypeToMatch, m_mediaType); | 104 || equalIgnoringCase(mediaTypeToMatch, m_mediaType); |
105 } | 105 } |
106 | 106 |
107 bool MediaQueryEvaluator::mediaTypeMatchSpecific(const char* mediaTypeToMatch) c
onst | 107 bool MediaQueryEvaluator::mediaTypeMatchSpecific(const char* mediaTypeToMatch) c
onst |
108 { | 108 { |
109 // Like mediaTypeMatch, but without the special cases for "" and "all". | 109 // Like mediaTypeMatch, but without the special cases for "" and "all". |
110 ASSERT(mediaTypeToMatch); | 110 ASSERT(mediaTypeToMatch); |
111 ASSERT(mediaTypeToMatch[0] != '\0'); | 111 ASSERT(mediaTypeToMatch[0] != '\0'); |
112 ASSERT(!equalIgnoringCase(mediaTypeToMatch, AtomicString("all"))); | 112 ASSERT(!equalIgnoringCase(mediaTypeToMatch, String("all"))); |
113 return equalIgnoringCase(mediaTypeToMatch, m_mediaType); | 113 return equalIgnoringCase(mediaTypeToMatch, m_mediaType); |
114 } | 114 } |
115 | 115 |
116 static bool applyRestrictor(MediaQuery::Restrictor r, bool value) | 116 static bool applyRestrictor(MediaQuery::Restrictor r, bool value) |
117 { | 117 { |
118 return r == MediaQuery::Not ? !value : value; | 118 return r == MediaQuery::Not ? !value : value; |
119 } | 119 } |
120 | 120 |
121 bool MediaQueryEvaluator::eval(const MediaQuerySet* querySet, MediaQueryResultLi
st* viewportDependentMediaQueryResults) const | 121 bool MediaQueryEvaluator::eval(const MediaQuerySet* querySet, MediaQueryResultLi
st* viewportDependentMediaQueryResults) const |
122 { | 122 { |
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
690 // Call the media feature evaluation function. Assume no prefix and let | 690 // Call the media feature evaluation function. Assume no prefix and let |
691 // trampoline functions override the prefix if prefix is used. | 691 // trampoline functions override the prefix if prefix is used. |
692 EvalFunc func = gFunctionMap->get(expr->mediaFeature().impl()); | 692 EvalFunc func = gFunctionMap->get(expr->mediaFeature().impl()); |
693 if (func) | 693 if (func) |
694 return func(expr->value(), m_style.get(), m_frame, NoPrefix); | 694 return func(expr->value(), m_style.get(), m_frame, NoPrefix); |
695 | 695 |
696 return false; | 696 return false; |
697 } | 697 } |
698 | 698 |
699 } // namespace | 699 } // namespace |
OLD | NEW |