Changeset 118659 in webkit
- Timestamp:
- May 28, 2012, 2:14:38 AM (14 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
-
ChangeLog (modified) (1 diff)
-
css/MediaQuery.cpp (modified) (6 diffs)
-
css/MediaQuery.h (modified) (3 diffs)
-
css/MediaQueryEvaluator.cpp (modified) (6 diffs)
-
css/MediaQueryEvaluator.h (modified) (4 diffs)
-
css/StyleResolver.cpp (modified) (3 diffs)
-
css/StyleResolver.h (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r118657 r118659 1 2012-05-28 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r118650. 4 http://trac.webkit.org/changeset/118650 5 https://bugs.webkit.org/show_bug.cgi?id=87639 6 7 Patch caused massive failures throughout the builders 8 (Requested by zdobersek on #webkit). 9 10 * css/MediaQuery.cpp: 11 (WebCore): 12 (WebCore::MediaQuery::serialize): 13 (WebCore::MediaQuery::MediaQuery): 14 (WebCore::MediaQuery::cssText): 15 * css/MediaQuery.h: 16 (WebCore::MediaQuery::expressions): 17 (WebCore::MediaQuery::mediaType): 18 (MediaQuery): 19 (WebCore::MediaQuery::copy): 20 * css/MediaQueryEvaluator.cpp: 21 (WebCore::MediaQueryEvaluator::MediaQueryEvaluator): 22 (WebCore::MediaQueryEvaluator): 23 (WebCore::MediaQueryEvaluator::eval): 24 (WebCore::aspect_ratioMediaFeatureEval): 25 (WebCore::device_aspect_ratioMediaFeatureEval): 26 (WebCore::transform_3dMediaFeatureEval): 27 (WebCore::view_modeMediaFeatureEval): 28 (WebCore::createFunctionMap): 29 * css/MediaQueryEvaluator.h: 30 (WebCore): 31 (MediaQueryEvaluator): 32 * css/StyleResolver.cpp: 33 (WebCore): 34 (WebCore::StyleResolver::collectMatchingRulesForList): 35 * css/StyleResolver.h: 36 (MediaQueryResult): 37 (WebCore::MediaQueryResult::MediaQueryResult): 38 (WebCore): 39 (StyleResolver): 40 1 41 2012-05-28 Gyuyoung Kim <gyuyoung.kim@samsung.com> 2 42 -
trunk/Source/WebCore/css/MediaQuery.cpp
r118650 r118659 36 36 namespace WebCore { 37 37 38 // http://dev.w3.org/csswg/cssom/#serialize-a-media-query 38 39 String MediaQuery::serialize() const 39 40 { … … 66 67 result.append(m_expressions->at(i)->serialize()); 67 68 } 68 69 69 return result.toString(); 70 70 } … … 75 75 } 76 76 77 MediaQuery::MediaQuery(Restrictor restrictor, const String& mediaType, PassOwnPtr<ExpressionVector> expressions) 78 : m_restrictor(restrictor) 77 78 MediaQuery::MediaQuery(Restrictor r, const String& mediaType, PassOwnPtr<Vector<OwnPtr<MediaQueryExp> > > exprs) 79 : m_restrictor(r) 79 80 , m_mediaType(mediaType.lower()) 80 , m_expressions(expr essions)81 , m_expressions(exprs) 81 82 , m_ignored(false) 82 83 { 83 84 if (!m_expressions) { 84 m_expressions = adoptPtr(new ExpressionVector);85 m_expressions = adoptPtr(new Vector<OwnPtr<MediaQueryExp> >); 85 86 return; 86 87 } 87 88 88 ExpressionVector& vector = *m_expressions;89 nonCopyingSort(m_expressions->begin(), m_expressions->end(), expressionCompare); 89 90 90 nonCopyingSort(vector.begin(), vector.end(), expressionCompare); 91 // remove all duplicated expressions 92 String key; 93 for (int i = m_expressions->size() - 1; i >= 0; --i) { 91 94 92 String previousSerializedExpression;93 for (size_t i = vector.size(); i; ) {94 --i;95 // if not all of the expressions is valid the media query must be ignored. 96 if (!m_ignored) 97 m_ignored = !m_expressions->at(i)->isValid(); 95 98 96 // If any expression is invalid, the entire media query must be ignored. 97 m_ignored = m_ignored || !vector[i]->isValid(); 98 99 // Remove duplicate expressions. 100 String serializedExpression = vector[i]->serialize(); 101 if (serializedExpression == previousSerializedExpression) 102 vector.remove(i); 103 previousSerializedExpression = serializedExpression; 99 if (m_expressions->at(i)->serialize() == key) 100 m_expressions->remove(i); 101 else 102 key = m_expressions->at(i)->serialize(); 104 103 } 105 104 } … … 110 109 , m_expressions(adoptPtr(new Vector<OwnPtr<MediaQueryExp> >(o.m_expressions->size()))) 111 110 , m_ignored(o.m_ignored) 112 , m_serializ edQuery(o.m_serializedQuery)111 , m_serializationCache(o.m_serializationCache) 113 112 { 114 113 for (unsigned i = 0; i < m_expressions->size(); ++i) 115 114 (*m_expressions)[i] = o.m_expressions->at(i)->copy(); 116 }117 118 PassOwnPtr<MediaQuery> MediaQuery::copy() const119 {120 return adoptPtr(new MediaQuery(*this));121 115 } 122 116 … … 125 119 } 126 120 121 // http://dev.w3.org/csswg/cssom/#compare-media-queries 127 122 bool MediaQuery::operator==(const MediaQuery& other) const 128 123 { … … 130 125 } 131 126 132 const String& MediaQuery::cssText() const 127 // http://dev.w3.org/csswg/cssom/#serialize-a-list-of-media-queries 128 String MediaQuery::cssText() const 133 129 { 134 if (m_serializedQuery.isNull()) 135 const_cast<MediaQuery*>(this)->m_serializedQuery = serialize(); 136 return m_serializedQuery; 130 if (m_serializationCache.isNull()) 131 const_cast<MediaQuery*>(this)->m_serializationCache = serialize(); 132 133 return m_serializationCache; 137 134 } 138 135 139 } // namespace WebCore136 } //namespace -
trunk/Source/WebCore/css/MediaQuery.h
r118650 r118659 31 31 32 32 #include "PlatformString.h" 33 #include <wtf/PassOwnPtr.h> 34 #include <wtf/Vector.h> 35 #include <wtf/text/StringHash.h> 33 36 34 37 namespace WebCore { 35 36 38 class MediaQueryExp; 37 39 … … 39 41 WTF_MAKE_FAST_ALLOCATED; 40 42 public: 41 enum Restrictor { Only, Not, None }; 43 enum Restrictor { 44 Only, Not, None 45 }; 42 46 43 47 typedef Vector<OwnPtr<MediaQueryExp> > ExpressionVector; 44 48 45 MediaQuery(Restrictor, const String& mediaType, PassOwnPtr<ExpressionVector> );49 MediaQuery(Restrictor, const String& mediaType, PassOwnPtr<ExpressionVector> exprs); 46 50 ~MediaQuery(); 47 51 48 bool operator==(const MediaQuery&) const;49 50 52 Restrictor restrictor() const { return m_restrictor; } 51 const ExpressionVector& expressions() const { return *m_expressions; } 52 const String& mediaType() const { return m_mediaType; } 53 const String& cssText() const; 53 const Vector<OwnPtr<MediaQueryExp> >* expressions() const { return m_expressions.get(); } 54 String mediaType() const { return m_mediaType; } 55 bool operator==(const MediaQuery& other) const; 56 String cssText() const; 54 57 bool ignored() const { return m_ignored; } 55 58 56 PassOwnPtr<MediaQuery> copy() const ;59 PassOwnPtr<MediaQuery> copy() const { return adoptPtr(new MediaQuery(*this)); } 57 60 58 private:61 private: 59 62 MediaQuery(const MediaQuery&); 60 void operator=(const MediaQuery&);61 62 String serialize() const;63 63 64 64 Restrictor m_restrictor; … … 66 66 OwnPtr<ExpressionVector> m_expressions; 67 67 bool m_ignored; 68 String m_serializedQuery; 68 String m_serializationCache; 69 70 String serialize() const; 69 71 }; 70 72 -
trunk/Source/WebCore/css/MediaQueryEvaluator.cpp
r118650 r118659 59 59 enum MediaFeaturePrefix { MinPrefix, MaxPrefix, NoPrefix }; 60 60 61 typedef bool (*MediaFeatureEvaluationFunction)(CSSValue*, RenderStyle*, Frame*, MediaFeaturePrefix); 62 typedef HashMap<AtomicStringImpl*, MediaFeatureEvaluationFunction> FunctionMap; 63 64 // FIXME: color-index, min-color-index, and max-color-index are not implemented. 65 // To implement them we'd have to add information about indexed color to the WebCore platform; 66 // most modern platforms don't make use of indexed color, so it's not clear this is worthwhile. 67 68 // FIXME: scan is not implemented: This media feature describes the scanning process of 69 // TV output devices. To implement this we'd have to add information to the WebCore platform. 70 71 // FIXME: resolution, min-resolution, max-resolution are not implemented: At the time this 72 // was originally written the author said the CSS parser "didn't seem to support CSS_DIMENSION". 73 74 MediaQueryEvaluator::MediaQueryEvaluator(const String& acceptedMediaType, bool mediaFeatureResult) 61 typedef bool (*EvalFunc)(CSSValue*, RenderStyle*, Frame*, MediaFeaturePrefix); 62 typedef HashMap<AtomicStringImpl*, EvalFunc> FunctionMap; 63 static FunctionMap* gFunctionMap; 64 65 /* 66 * FIXME: following media features are not implemented: color_index, scan, resolution 67 * 68 * color_index, min-color-index, max_color_index: It's unknown how to retrieve 69 * the information if the display mode is indexed 70 * scan: The "scan" media feature describes the scanning process of 71 * tv output devices. It's unknown how to retrieve this information from 72 * the platform 73 * resolution, min-resolution, max-resolution: css parser doesn't seem to 74 * support CSS_DIMENSION 75 */ 76 77 MediaQueryEvaluator::MediaQueryEvaluator(bool mediaFeatureResult) 78 : m_frame(0) 79 , m_style(0) 80 , m_expResult(mediaFeatureResult) 81 { 82 } 83 84 MediaQueryEvaluator:: MediaQueryEvaluator(const String& acceptedMediaType, bool mediaFeatureResult) 75 85 : m_mediaType(acceptedMediaType) 76 86 , m_frame(0) 77 87 , m_style(0) 78 , m_ mediaFeatureResult(mediaFeatureResult)79 { 80 } 81 82 MediaQueryEvaluator:: MediaQueryEvaluator(const char* acceptedMediaType, bool mediaFeatureResult)88 , m_expResult(mediaFeatureResult) 89 { 90 } 91 92 MediaQueryEvaluator:: MediaQueryEvaluator(const char* acceptedMediaType, bool mediaFeatureResult) 83 93 : m_mediaType(acceptedMediaType) 84 94 , m_frame(0) 85 95 , m_style(0) 86 , m_ mediaFeatureResult(mediaFeatureResult)87 { 88 } 89 90 MediaQueryEvaluator:: MediaQueryEvaluator(const String& acceptedMediaType, Frame* frame, RenderStyle* style)96 , m_expResult(mediaFeatureResult) 97 { 98 } 99 100 MediaQueryEvaluator:: MediaQueryEvaluator(const String& acceptedMediaType, Frame* frame, RenderStyle* style) 91 101 : m_mediaType(acceptedMediaType) 92 102 , m_frame(frame) 93 103 , m_style(style) 94 , m_ mediaFeatureResult(false) // Ignored if both m_frame and m_style are non-null.104 , m_expResult(false) // doesn't matter when we have m_frame and m_style 95 105 { 96 106 } … … 127 137 128 138 const Vector<OwnPtr<MediaQuery> >& queries = querySet->queryVector(); 129 130 bool result = true; 131 132 // Iterate over queries and stop if any of them eval to true ("or" semantics). 133 for (size_t i = 0; i < queries.size(); ++i) { 134 const MediaQuery& query = *queries[i]; 135 136 result = false; 137 138 if (query.ignored()) 139 if (!queries.size()) 140 return true; // empty query list evaluates to true 141 142 // iterate over queries, stop if any of them eval to true (OR semantics) 143 bool result = false; 144 for (size_t i = 0; i < queries.size() && !result; ++i) { 145 MediaQuery* query = queries[i].get(); 146 147 if (query->ignored()) 139 148 continue; 140 149 141 if (mediaTypeMatch(query .mediaType())) {142 const Vector<OwnPtr<MediaQueryExp> > & expressions = query.expressions();150 if (mediaTypeMatch(query->mediaType())) { 151 const Vector<OwnPtr<MediaQueryExp> >* exps = query->expressions(); 143 152 // iterate through expressions, stop if any of them eval to false 144 153 // (AND semantics) 145 154 size_t j = 0; 146 for (; j < exp ressions.size(); ++j) {147 result = eval(*expressions[j]);148 if (styleResolver && exp ressions[j]->isViewportDependent())149 styleResolver->addViewportDependentMediaQueryResult( *expressions[j], result);150 if (! result)155 for (; j < exps->size(); ++j) { 156 bool exprResult = eval(exps->at(j).get()); 157 if (styleResolver && exps->at(j)->isViewportDependent()) 158 styleResolver->addViewportDependentMediaQueryResult(exps->at(j).get(), exprResult); 159 if (!exprResult) 151 160 break; 152 161 } 153 } 154 155 result = applyRestrictor(query.restrictor(), result); 156 if (result) 157 break; 162 163 // assume true if we are at the end of the list, 164 // otherwise assume false 165 result = applyRestrictor(query->restrictor(), exps->size() == j); 166 } else 167 result = applyRestrictor(query->restrictor(), false); 158 168 } 159 169 … … 254 264 int v = 0; 255 265 if (parseAspectRatio(value, h, v)) 256 return v && compareValue(width * v, height * h, op);266 return v != 0 && compareValue(width * v, height * h, op); 257 267 return false; 258 268 } … … 270 280 int v = 0; 271 281 if (parseAspectRatio(value, h, v)) 272 return v && compareValue(static_cast<int>(sg.width()) * v, static_cast<int>(sg.height()) * h, op);282 return v != 0 && compareValue(static_cast<int>(sg.width()) * v, static_cast<int>(sg.height()) * h, op); 273 283 return false; 274 284 } … … 494 504 static bool transform_3dMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* frame, MediaFeaturePrefix op) 495 505 { 506 bool returnValueIfNoParameter; 507 int have3dRendering; 508 509 #if ENABLE(3D_RENDERING) 496 510 bool threeDEnabled = false; 497 #if ENABLE(3D_RENDERING) &&USE(ACCELERATED_COMPOSITING)511 #if USE(ACCELERATED_COMPOSITING) 498 512 if (RenderView* view = frame->contentRenderer()) 499 513 threeDEnabled = view->compositor()->canRender3DTransforms(); 514 #endif 515 516 returnValueIfNoParameter = threeDEnabled; 517 have3dRendering = threeDEnabled ? 1 : 0; 500 518 #else 501 519 UNUSED_PARAM(frame); 520 returnValueIfNoParameter = false; 521 have3dRendering = 0; 502 522 #endif 523 503 524 if (value) { 504 525 float number; 505 return numberValue(value, number) && compareValue( static_cast<int>(threeDEnabled), static_cast<int>(number), op);506 } 507 return threeDEnabled;526 return numberValue(value, number) && compareValue(have3dRendering, static_cast<int>(number), op); 527 } 528 return returnValueIfNoParameter; 508 529 } 509 530 510 531 static bool view_modeMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* frame, MediaFeaturePrefix op) 511 532 { 512 ASSERT_UNUSED(op, op == NoPrefix);533 UNUSED_PARAM(op); 513 534 if (!value) 514 535 return true; … … 516 537 } 517 538 518 static FunctionMap* createFunctionMap() 519 { 520 FunctionMap* functionMap = new FunctionMap; 539 static void createFunctionMap() 540 { 541 // Create the table. 542 gFunctionMap = new FunctionMap; 521 543 #define ADD_TO_FUNCTIONMAP(name, str) \ 522 functionMap->set(name##MediaFeature.impl(), name##MediaFeatureEval);544 gFunctionMap->set(name##MediaFeature.impl(), name##MediaFeatureEval); 523 545 CSS_MEDIAQUERY_NAMES_FOR_EACH_MEDIAFEATURE(ADD_TO_FUNCTIONMAP); 524 546 #undef ADD_TO_FUNCTIONMAP 525 return functionMap; 526 } 527 528 bool MediaQueryEvaluator::eval(const MediaQueryExp& expression) const 547 } 548 549 bool MediaQueryEvaluator::eval(const MediaQueryExp* expr) const 529 550 { 530 551 if (!m_frame || !m_style) 531 return m_ mediaFeatureResult;532 533 if (!expr ession.isValid())552 return m_expResult; 553 554 if (!expr->isValid()) 534 555 return false; 535 556 536 static FunctionMap* functionMap = createFunctionMap(); 537 MediaFeatureEvaluationFunction function = functionMap->get(expression.mediaFeature().impl()); 538 539 // Start with no prefix: Some trampoline functions add the prefix and call other media feature functions. 540 return function && function(expression.value(), m_style.get(), m_frame, NoPrefix); 557 if (!gFunctionMap) 558 createFunctionMap(); 559 560 // call the media feature evaluation function. Assume no prefix 561 // and let trampoline functions override the prefix if prefix is 562 // used 563 EvalFunc func = gFunctionMap->get(expr->mediaFeature().impl()); 564 if (func) 565 return func(expr->value(), m_style.get(), m_frame, NoPrefix); 566 567 return false; 541 568 } 542 569 -
trunk/Source/WebCore/css/MediaQueryEvaluator.h
r118650 r118659 32 32 33 33 namespace WebCore { 34 35 34 class Frame; 36 35 class MediaQueryExp; … … 39 38 class StyleResolver; 40 39 41 // Class that evaluates CSS media queries as defined in CSS3 Module "Media Queries". 42 // 43 // Special constructors are supplied so that simple media queries can be 44 // evaluated without knowledge of device characteristics. This is used, for example, 45 // when parsing user agent stylesheets. The boolean parameter to the constructor is used 46 // if the device characteristics are not known. This can be used to prune loading 47 // of stylesheets to remove those that definitely won't match. 48 40 /** 41 * Class that evaluates css media queries as defined in 42 * CSS3 Module "Media Queries" (http://www.w3.org/TR/css3-mediaqueries/) 43 * Special constructors are needed, if simple media queries are to be 44 * evaluated without knowledge of the medium features. This can happen 45 * for example when parsing UA stylesheets, if evaluation is done 46 * right after parsing. 47 * 48 * the boolean parameter is used to approximate results of evaluation, if 49 * the device characteristics are not known. This can be used to prune the loading 50 * of stylesheets to only those which are probable to match. 51 */ 49 52 class MediaQueryEvaluator { 50 53 WTF_MAKE_NONCOPYABLE(MediaQueryEvaluator); WTF_MAKE_FAST_ALLOCATED; 51 54 public: 52 // Creates evaluator which evaluates only simple media queries. 53 // Evaluator returns true for acceptedMediaType and uses mediaFeatureResult for any media features. 55 /** Creates evaluator which evaluates only simple media queries 56 * Evaluator returns true for "all", and returns value of \mediaFeatureResult 57 * for any media features 58 */ 59 MediaQueryEvaluator(bool mediaFeatureResult = false); 60 61 /** Creates evaluator which evaluates only simple media queries 62 * Evaluator returns true for acceptedMediaType and returns value of \mediafeatureResult 63 * for any media features 64 */ 54 65 MediaQueryEvaluator(const String& acceptedMediaType, bool mediaFeatureResult = false); 55 66 MediaQueryEvaluator(const char* acceptedMediaType, bool mediaFeatureResult = false); 56 67 57 // Creates evaluator which evaluates full media queries. 68 /** Creates evaluator which evaluates full media queries 69 */ 58 70 MediaQueryEvaluator(const String& acceptedMediaType, Frame*, RenderStyle*); 59 71 … … 63 75 bool mediaTypeMatchSpecific(const char* mediaTypeToMatch) const; 64 76 65 / / Evaluates a list of media queries.77 /** Evaluates a list of media queries */ 66 78 bool eval(const MediaQuerySet*, StyleResolver* = 0) const; 67 79 68 / / Evaluates media query subexpression, i.e. "and (media-feature: value)" part.69 bool eval(const MediaQueryExp &) const;80 /** Evaluates media query subexpression, ie "and (media-feature: value)" part */ 81 bool eval(const MediaQueryExp*) const; 70 82 71 83 private: … … 73 85 Frame* m_frame; // not owned 74 86 RefPtr<RenderStyle> m_style; 75 bool m_ mediaFeatureResult;87 bool m_expResult; 76 88 }; 77 89 78 } // namespace WebCore 79 90 } // namespace 80 91 #endif -
trunk/Source/WebCore/css/StyleResolver.cpp
r118650 r118659 78 78 #include "MediaList.h" 79 79 #include "MediaQueryEvaluator.h" 80 #include "MediaQueryExp.h"81 80 #include "NodeRenderStyle.h" 82 81 #include "Page.h" … … 161 160 162 161 using namespace HTMLNames; 163 164 struct MediaQueryResult {165 MediaQueryResult(const MediaQueryExp& expression, bool result)166 : expression(expression)167 , result(result)168 {169 }170 171 MediaQueryExp expression;172 bool result;173 };174 162 175 163 #define HANDLE_INHERIT(prop, Prop) \ … … 5141 5129 } 5142 5130 5143 void StyleResolver::addViewportDependentMediaQueryResult(const MediaQueryExp & expression, bool result)5144 { 5145 m_viewportDependentMediaQueryResults.append( MediaQueryResult(expression, result));5131 void StyleResolver::addViewportDependentMediaQueryResult(const MediaQueryExp* expr, bool result) 5132 { 5133 m_viewportDependentMediaQueryResults.append(adoptPtr(new MediaQueryResult(*expr, result))); 5146 5134 } 5147 5135 5148 5136 bool StyleResolver::affectedByViewportChange() const 5149 5137 { 5150 unsigned s ize= m_viewportDependentMediaQueryResults.size();5151 for (unsigned i = 0; i < s ize; i++) {5152 if (m_medium->eval( m_viewportDependentMediaQueryResults[i].expression) != m_viewportDependentMediaQueryResults[i].result)5138 unsigned s = m_viewportDependentMediaQueryResults.size(); 5139 for (unsigned i = 0; i < s; i++) { 5140 if (m_medium->eval(&m_viewportDependentMediaQueryResults[i]->m_expression) != m_viewportDependentMediaQueryResults[i]->m_result) 5153 5141 return true; 5154 5142 } -
trunk/Source/WebCore/css/StyleResolver.h
r118650 r118659 23 23 #define StyleResolver_h 24 24 25 #include "CSSRule.h" 26 #include "CSSValueList.h" 25 27 #include "LinkHash.h" 28 #include "MediaQueryExp.h" 26 29 #include "RenderStyle.h" 27 30 #include "SelectorChecker.h" 31 #include <wtf/HashMap.h> 32 #include <wtf/HashSet.h> 33 #include <wtf/RefPtr.h> 34 #include <wtf/Vector.h> 35 #include <wtf/text/StringHash.h> 28 36 29 37 namespace WebCore { 30 38 39 enum ESmartMinimumForFontSize { DoNotUseSmartMinimumForFontSize, UseSmartMinimumForFontFize }; 40 31 41 class CSSFontSelector; 42 class CSSPageRule; 43 class CSSPrimitiveValue; 44 class CSSProperty; 45 class CSSRuleList; 46 class CSSFontFace; 47 class CSSFontFaceRule; 32 48 class CSSImageGeneratorValue; 33 49 class CSSImageSetValue; 34 50 class CSSImageValue; 35 class CSS RuleList;51 class CSSSelector; 36 52 class CSSStyleRule; 37 53 class CSSStyleSheet; 54 class CSSValue; 38 55 class ContainerNode; 39 56 class CustomFilterOperation; … … 41 58 class Document; 42 59 class Element; 60 class Frame; 61 class FrameView; 62 class KURL; 43 63 class KeyframeList; 44 64 class KeyframeValue; 45 65 class MediaQueryEvaluator; 46 class MediaQueryExp;47 66 class Node; 48 67 class RenderRegion; 49 68 class RuleData; 50 69 class RuleSet; 70 class Settings; 51 71 class StaticCSSRuleList; 52 72 class StyleBuilder; … … 58 78 class StyleRuleKeyframes; 59 79 class StyleRulePage; 80 class StyleRuleRegion; 60 81 class StyleShader; 82 class StyleSheet; 61 83 class StyleSheetContents; 84 class StyleSheetList; 62 85 class StyledElement; 63 86 class WebKitCSSFilterValue; 64 87 class WebKitCSSShaderValue; 65 88 66 struct MediaQueryResult;67 68 enum ESmartMinimumForFontSize { DoNotUseSmartMinimumForFontSize, UseSmartMinimumForFontFize };69 70 89 #if ENABLE(CSS_SHADERS) 71 90 typedef Vector<RefPtr<CustomFilterParameter> > CustomFilterParameterList; 72 91 #endif 92 93 class MediaQueryResult { 94 WTF_MAKE_NONCOPYABLE(MediaQueryResult); WTF_MAKE_FAST_ALLOCATED; 95 public: 96 MediaQueryResult(const MediaQueryExp& expr, bool result) 97 : m_expression(expr) 98 , m_result(result) 99 { 100 } 101 102 MediaQueryExp m_expression; 103 bool m_result; 104 }; 73 105 74 106 enum StyleSharingBehavior { … … 194 226 CSSFontSelector* fontSelector() const { return m_fontSelector.get(); } 195 227 196 void addViewportDependentMediaQueryResult(const MediaQueryExp &, bool result);228 void addViewportDependentMediaQueryResult(const MediaQueryExp*, bool result); 197 229 198 230 bool affectedByViewportChange() const; … … 465 497 466 498 RefPtr<CSSFontSelector> m_fontSelector; 467 Vector< MediaQueryResult> m_viewportDependentMediaQueryResults;499 Vector<OwnPtr<MediaQueryResult> > m_viewportDependentMediaQueryResults; 468 500 469 501 bool m_applyPropertyToRegularStyle;
Note:
See TracChangeset
for help on using the changeset viewer.