Diff
Modified: trunk/Source/WebCore/ChangeLog (118658 => 118659)
--- trunk/Source/WebCore/ChangeLog 2012-05-28 09:08:40 UTC (rev 118658)
+++ trunk/Source/WebCore/ChangeLog 2012-05-28 09:14:38 UTC (rev 118659)
@@ -1,3 +1,43 @@
+2012-05-28 Sheriff Bot <webkit.review....@gmail.com>
+
+ Unreviewed, rolling out r118650.
+ http://trac.webkit.org/changeset/118650
+ https://bugs.webkit.org/show_bug.cgi?id=87639
+
+ Patch caused massive failures throughout the builders
+ (Requested by zdobersek on #webkit).
+
+ * css/MediaQuery.cpp:
+ (WebCore):
+ (WebCore::MediaQuery::serialize):
+ (WebCore::MediaQuery::MediaQuery):
+ (WebCore::MediaQuery::cssText):
+ * css/MediaQuery.h:
+ (WebCore::MediaQuery::expressions):
+ (WebCore::MediaQuery::mediaType):
+ (MediaQuery):
+ (WebCore::MediaQuery::copy):
+ * css/MediaQueryEvaluator.cpp:
+ (WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
+ (WebCore::MediaQueryEvaluator):
+ (WebCore::MediaQueryEvaluator::eval):
+ (WebCore::aspect_ratioMediaFeatureEval):
+ (WebCore::device_aspect_ratioMediaFeatureEval):
+ (WebCore::transform_3dMediaFeatureEval):
+ (WebCore::view_modeMediaFeatureEval):
+ (WebCore::createFunctionMap):
+ * css/MediaQueryEvaluator.h:
+ (WebCore):
+ (MediaQueryEvaluator):
+ * css/StyleResolver.cpp:
+ (WebCore):
+ (WebCore::StyleResolver::collectMatchingRulesForList):
+ * css/StyleResolver.h:
+ (MediaQueryResult):
+ (WebCore::MediaQueryResult::MediaQueryResult):
+ (WebCore):
+ (StyleResolver):
+
2012-05-28 Gyuyoung Kim <gyuyoung....@samsung.com>
Move allowRoundingHacks to Internals interface
Modified: trunk/Source/WebCore/css/MediaQuery.cpp (118658 => 118659)
--- trunk/Source/WebCore/css/MediaQuery.cpp 2012-05-28 09:08:40 UTC (rev 118658)
+++ trunk/Source/WebCore/css/MediaQuery.cpp 2012-05-28 09:14:38 UTC (rev 118659)
@@ -35,6 +35,7 @@
namespace WebCore {
+// http://dev.w3.org/csswg/cssom/#serialize-a-media-query
String MediaQuery::serialize() const
{
StringBuilder result;
@@ -65,7 +66,6 @@
result.append(" and ");
result.append(m_expressions->at(i)->serialize());
}
-
return result.toString();
}
@@ -74,33 +74,32 @@
return codePointCompare(a->serialize(), b->serialize()) < 0;
}
-MediaQuery::MediaQuery(Restrictor restrictor, const String& mediaType, PassOwnPtr<ExpressionVector> expressions)
- : m_restrictor(restrictor)
+
+MediaQuery::MediaQuery(Restrictor r, const String& mediaType, PassOwnPtr<Vector<OwnPtr<MediaQueryExp> > > exprs)
+ : m_restrictor(r)
, m_mediaType(mediaType.lower())
- , m_expressions(expressions)
+ , m_expressions(exprs)
, m_ignored(false)
{
if (!m_expressions) {
- m_expressions = adoptPtr(new ExpressionVector);
+ m_expressions = adoptPtr(new Vector<OwnPtr<MediaQueryExp> >);
return;
}
- ExpressionVector& vector = *m_expressions;
+ nonCopyingSort(m_expressions->begin(), m_expressions->end(), expressionCompare);
- nonCopyingSort(vector.begin(), vector.end(), expressionCompare);
+ // remove all duplicated expressions
+ String key;
+ for (int i = m_expressions->size() - 1; i >= 0; --i) {
- String previousSerializedExpression;
- for (size_t i = vector.size(); i; ) {
- --i;
+ // if not all of the expressions is valid the media query must be ignored.
+ if (!m_ignored)
+ m_ignored = !m_expressions->at(i)->isValid();
- // If any _expression_ is invalid, the entire media query must be ignored.
- m_ignored = m_ignored || !vector[i]->isValid();
-
- // Remove duplicate expressions.
- String serializedExpression = vector[i]->serialize();
- if (serializedExpression == previousSerializedExpression)
- vector.remove(i);
- previousSerializedExpression = serializedExpression;
+ if (m_expressions->at(i)->serialize() == key)
+ m_expressions->remove(i);
+ else
+ key = m_expressions->at(i)->serialize();
}
}
@@ -109,31 +108,29 @@
, m_mediaType(o.m_mediaType)
, m_expressions(adoptPtr(new Vector<OwnPtr<MediaQueryExp> >(o.m_expressions->size())))
, m_ignored(o.m_ignored)
- , m_serializedQuery(o.m_serializedQuery)
+ , m_serializationCache(o.m_serializationCache)
{
for (unsigned i = 0; i < m_expressions->size(); ++i)
(*m_expressions)[i] = o.m_expressions->at(i)->copy();
}
-PassOwnPtr<MediaQuery> MediaQuery::copy() const
-{
- return adoptPtr(new MediaQuery(*this));
-}
-
MediaQuery::~MediaQuery()
{
}
+// http://dev.w3.org/csswg/cssom/#compare-media-queries
bool MediaQuery::operator==(const MediaQuery& other) const
{
return cssText() == other.cssText();
}
-const String& MediaQuery::cssText() const
+// http://dev.w3.org/csswg/cssom/#serialize-a-list-of-media-queries
+String MediaQuery::cssText() const
{
- if (m_serializedQuery.isNull())
- const_cast<MediaQuery*>(this)->m_serializedQuery = serialize();
- return m_serializedQuery;
+ if (m_serializationCache.isNull())
+ const_cast<MediaQuery*>(this)->m_serializationCache = serialize();
+
+ return m_serializationCache;
}
-} // namespace WebCore
+} //namespace
Modified: trunk/Source/WebCore/css/MediaQuery.h (118658 => 118659)
--- trunk/Source/WebCore/css/MediaQuery.h 2012-05-28 09:08:40 UTC (rev 118658)
+++ trunk/Source/WebCore/css/MediaQuery.h 2012-05-28 09:14:38 UTC (rev 118659)
@@ -30,42 +30,44 @@
#define MediaQuery_h
#include "PlatformString.h"
+#include <wtf/PassOwnPtr.h>
+#include <wtf/Vector.h>
+#include <wtf/text/StringHash.h>
namespace WebCore {
-
class MediaQueryExp;
class MediaQuery {
WTF_MAKE_FAST_ALLOCATED;
public:
- enum Restrictor { Only, Not, None };
+ enum Restrictor {
+ Only, Not, None
+ };
typedef Vector<OwnPtr<MediaQueryExp> > ExpressionVector;
- MediaQuery(Restrictor, const String& mediaType, PassOwnPtr<ExpressionVector>);
+ MediaQuery(Restrictor, const String& mediaType, PassOwnPtr<ExpressionVector> exprs);
~MediaQuery();
- bool operator==(const MediaQuery&) const;
-
Restrictor restrictor() const { return m_restrictor; }
- const ExpressionVector& expressions() const { return *m_expressions; }
- const String& mediaType() const { return m_mediaType; }
- const String& cssText() const;
+ const Vector<OwnPtr<MediaQueryExp> >* expressions() const { return m_expressions.get(); }
+ String mediaType() const { return m_mediaType; }
+ bool operator==(const MediaQuery& other) const;
+ String cssText() const;
bool ignored() const { return m_ignored; }
- PassOwnPtr<MediaQuery> copy() const;
+ PassOwnPtr<MediaQuery> copy() const { return adoptPtr(new MediaQuery(*this)); }
-private:
+ private:
MediaQuery(const MediaQuery&);
- void operator=(const MediaQuery&);
-
- String serialize() const;
Restrictor m_restrictor;
String m_mediaType;
OwnPtr<ExpressionVector> m_expressions;
bool m_ignored;
- String m_serializedQuery;
+ String m_serializationCache;
+
+ String serialize() const;
};
} // namespace
Modified: trunk/Source/WebCore/css/MediaQueryEvaluator.cpp (118658 => 118659)
--- trunk/Source/WebCore/css/MediaQueryEvaluator.cpp 2012-05-28 09:08:40 UTC (rev 118658)
+++ trunk/Source/WebCore/css/MediaQueryEvaluator.cpp 2012-05-28 09:14:38 UTC (rev 118659)
@@ -58,40 +58,50 @@
enum MediaFeaturePrefix { MinPrefix, MaxPrefix, NoPrefix };
-typedef bool (*MediaFeatureEvaluationFunction)(CSSValue*, RenderStyle*, Frame*, MediaFeaturePrefix);
-typedef HashMap<AtomicStringImpl*, MediaFeatureEvaluationFunction> FunctionMap;
+typedef bool (*EvalFunc)(CSSValue*, RenderStyle*, Frame*, MediaFeaturePrefix);
+typedef HashMap<AtomicStringImpl*, EvalFunc> FunctionMap;
+static FunctionMap* gFunctionMap;
-// FIXME: color-index, min-color-index, and max-color-index are not implemented.
-// To implement them we'd have to add information about indexed color to the WebCore platform;
-// most modern platforms don't make use of indexed color, so it's not clear this is worthwhile.
+/*
+ * FIXME: following media features are not implemented: color_index, scan, resolution
+ *
+ * color_index, min-color-index, max_color_index: It's unknown how to retrieve
+ * the information if the display mode is indexed
+ * scan: The "scan" media feature describes the scanning process of
+ * tv output devices. It's unknown how to retrieve this information from
+ * the platform
+ * resolution, min-resolution, max-resolution: css parser doesn't seem to
+ * support CSS_DIMENSION
+ */
-// FIXME: scan is not implemented: This media feature describes the scanning process of
-// TV output devices. To implement this we'd have to add information to the WebCore platform.
+MediaQueryEvaluator::MediaQueryEvaluator(bool mediaFeatureResult)
+ : m_frame(0)
+ , m_style(0)
+ , m_expResult(mediaFeatureResult)
+{
+}
-// FIXME: resolution, min-resolution, max-resolution are not implemented: At the time this
-// was originally written the author said the CSS parser "didn't seem to support CSS_DIMENSION".
-
-MediaQueryEvaluator::MediaQueryEvaluator(const String& acceptedMediaType, bool mediaFeatureResult)
+MediaQueryEvaluator:: MediaQueryEvaluator(const String& acceptedMediaType, bool mediaFeatureResult)
: m_mediaType(acceptedMediaType)
, m_frame(0)
, m_style(0)
- , m_mediaFeatureResult(mediaFeatureResult)
+ , m_expResult(mediaFeatureResult)
{
}
-MediaQueryEvaluator::MediaQueryEvaluator(const char* acceptedMediaType, bool mediaFeatureResult)
+MediaQueryEvaluator:: MediaQueryEvaluator(const char* acceptedMediaType, bool mediaFeatureResult)
: m_mediaType(acceptedMediaType)
, m_frame(0)
, m_style(0)
- , m_mediaFeatureResult(mediaFeatureResult)
+ , m_expResult(mediaFeatureResult)
{
}
-MediaQueryEvaluator::MediaQueryEvaluator(const String& acceptedMediaType, Frame* frame, RenderStyle* style)
+MediaQueryEvaluator:: MediaQueryEvaluator(const String& acceptedMediaType, Frame* frame, RenderStyle* style)
: m_mediaType(acceptedMediaType)
, m_frame(frame)
, m_style(style)
- , m_mediaFeatureResult(false) // Ignored if both m_frame and m_style are non-null.
+ , m_expResult(false) // doesn't matter when we have m_frame and m_style
{
}
@@ -126,35 +136,35 @@
return true;
const Vector<OwnPtr<MediaQuery> >& queries = querySet->queryVector();
+ if (!queries.size())
+ return true; // empty query list evaluates to true
- bool result = true;
+ // iterate over queries, stop if any of them eval to true (OR semantics)
+ bool result = false;
+ for (size_t i = 0; i < queries.size() && !result; ++i) {
+ MediaQuery* query = queries[i].get();
- // Iterate over queries and stop if any of them eval to true ("or" semantics).
- for (size_t i = 0; i < queries.size(); ++i) {
- const MediaQuery& query = *queries[i];
-
- result = false;
-
- if (query.ignored())
+ if (query->ignored())
continue;
- if (mediaTypeMatch(query.mediaType())) {
- const Vector<OwnPtr<MediaQueryExp> >& expressions = query.expressions();
+ if (mediaTypeMatch(query->mediaType())) {
+ const Vector<OwnPtr<MediaQueryExp> >* exps = query->expressions();
// iterate through expressions, stop if any of them eval to false
// (AND semantics)
size_t j = 0;
- for (; j < expressions.size(); ++j) {
- result = eval(*expressions[j]);
- if (styleResolver && expressions[j]->isViewportDependent())
- styleResolver->addViewportDependentMediaQueryResult(*expressions[j], result);
- if (!result)
+ for (; j < exps->size(); ++j) {
+ bool exprResult = eval(exps->at(j).get());
+ if (styleResolver && exps->at(j)->isViewportDependent())
+ styleResolver->addViewportDependentMediaQueryResult(exps->at(j).get(), exprResult);
+ if (!exprResult)
break;
}
- }
- result = applyRestrictor(query.restrictor(), result);
- if (result)
- break;
+ // assume true if we are at the end of the list,
+ // otherwise assume false
+ result = applyRestrictor(query->restrictor(), exps->size() == j);
+ } else
+ result = applyRestrictor(query->restrictor(), false);
}
return result;
@@ -253,7 +263,7 @@
int h = 0;
int v = 0;
if (parseAspectRatio(value, h, v))
- return v && compareValue(width * v, height * h, op);
+ return v != 0 && compareValue(width * v, height * h, op);
return false;
}
@@ -269,7 +279,7 @@
int h = 0;
int v = 0;
if (parseAspectRatio(value, h, v))
- return v && compareValue(static_cast<int>(sg.width()) * v, static_cast<int>(sg.height()) * h, op);
+ return v != 0 && compareValue(static_cast<int>(sg.width()) * v, static_cast<int>(sg.height()) * h, op);
return false;
}
@@ -493,51 +503,68 @@
static bool transform_3dMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* frame, MediaFeaturePrefix op)
{
+ bool returnValueIfNoParameter;
+ int have3dRendering;
+
+#if ENABLE(3D_RENDERING)
bool threeDEnabled = false;
-#if ENABLE(3D_RENDERING) && USE(ACCELERATED_COMPOSITING)
+#if USE(ACCELERATED_COMPOSITING)
if (RenderView* view = frame->contentRenderer())
threeDEnabled = view->compositor()->canRender3DTransforms();
+#endif
+
+ returnValueIfNoParameter = threeDEnabled;
+ have3dRendering = threeDEnabled ? 1 : 0;
#else
UNUSED_PARAM(frame);
+ returnValueIfNoParameter = false;
+ have3dRendering = 0;
#endif
+
if (value) {
float number;
- return numberValue(value, number) && compareValue(static_cast<int>(threeDEnabled), static_cast<int>(number), op);
+ return numberValue(value, number) && compareValue(have3dRendering, static_cast<int>(number), op);
}
- return threeDEnabled;
+ return returnValueIfNoParameter;
}
static bool view_modeMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* frame, MediaFeaturePrefix op)
{
- ASSERT_UNUSED(op, op == NoPrefix);
+ UNUSED_PARAM(op);
if (!value)
return true;
return Page::stringToViewMode(static_cast<CSSPrimitiveValue*>(value)->getStringValue()) == frame->page()->viewMode();
}
-static FunctionMap* createFunctionMap()
+static void createFunctionMap()
{
- FunctionMap* functionMap = new FunctionMap;
+ // Create the table.
+ gFunctionMap = new FunctionMap;
#define ADD_TO_FUNCTIONMAP(name, str) \
- functionMap->set(name##MediaFeature.impl(), name##MediaFeatureEval);
+ gFunctionMap->set(name##MediaFeature.impl(), name##MediaFeatureEval);
CSS_MEDIAQUERY_NAMES_FOR_EACH_MEDIAFEATURE(ADD_TO_FUNCTIONMAP);
#undef ADD_TO_FUNCTIONMAP
- return functionMap;
}
-bool MediaQueryEvaluator::eval(const MediaQueryExp& _expression_) const
+bool MediaQueryEvaluator::eval(const MediaQueryExp* expr) const
{
if (!m_frame || !m_style)
- return m_mediaFeatureResult;
+ return m_expResult;
- if (!_expression_.isValid())
+ if (!expr->isValid())
return false;
- static FunctionMap* functionMap = createFunctionMap();
- MediaFeatureEvaluationFunction function = functionMap->get(_expression_.mediaFeature().impl());
+ if (!gFunctionMap)
+ createFunctionMap();
- // Start with no prefix: Some trampoline functions add the prefix and call other media feature functions.
- return function && function(_expression_.value(), m_style.get(), m_frame, NoPrefix);
+ // call the media feature evaluation function. Assume no prefix
+ // and let trampoline functions override the prefix if prefix is
+ // used
+ EvalFunc func = gFunctionMap->get(expr->mediaFeature().impl());
+ if (func)
+ return func(expr->value(), m_style.get(), m_frame, NoPrefix);
+
+ return false;
}
} // namespace
Modified: trunk/Source/WebCore/css/MediaQueryEvaluator.h (118658 => 118659)
--- trunk/Source/WebCore/css/MediaQueryEvaluator.h 2012-05-28 09:08:40 UTC (rev 118658)
+++ trunk/Source/WebCore/css/MediaQueryEvaluator.h 2012-05-28 09:14:38 UTC (rev 118659)
@@ -31,30 +31,42 @@
#include "PlatformString.h"
namespace WebCore {
-
class Frame;
class MediaQueryExp;
class MediaQuerySet;
class RenderStyle;
class StyleResolver;
-// Class that evaluates CSS media queries as defined in CSS3 Module "Media Queries".
-//
-// Special constructors are supplied so that simple media queries can be
-// evaluated without knowledge of device characteristics. This is used, for example,
-// when parsing user agent stylesheets. The boolean parameter to the constructor is used
-// if the device characteristics are not known. This can be used to prune loading
-// of stylesheets to remove those that definitely won't match.
-
+/**
+ * Class that evaluates css media queries as defined in
+ * CSS3 Module "Media Queries" (http://www.w3.org/TR/css3-mediaqueries/)
+ * Special constructors are needed, if simple media queries are to be
+ * evaluated without knowledge of the medium features. This can happen
+ * for example when parsing UA stylesheets, if evaluation is done
+ * right after parsing.
+ *
+ * the boolean parameter is used to approximate results of evaluation, if
+ * the device characteristics are not known. This can be used to prune the loading
+ * of stylesheets to only those which are probable to match.
+ */
class MediaQueryEvaluator {
WTF_MAKE_NONCOPYABLE(MediaQueryEvaluator); WTF_MAKE_FAST_ALLOCATED;
public:
- // Creates evaluator which evaluates only simple media queries.
- // Evaluator returns true for acceptedMediaType and uses mediaFeatureResult for any media features.
+ /** Creates evaluator which evaluates only simple media queries
+ * Evaluator returns true for "all", and returns value of \mediaFeatureResult
+ * for any media features
+ */
+ MediaQueryEvaluator(bool mediaFeatureResult = false);
+
+ /** Creates evaluator which evaluates only simple media queries
+ * Evaluator returns true for acceptedMediaType and returns value of \mediafeatureResult
+ * for any media features
+ */
MediaQueryEvaluator(const String& acceptedMediaType, bool mediaFeatureResult = false);
MediaQueryEvaluator(const char* acceptedMediaType, bool mediaFeatureResult = false);
- // Creates evaluator which evaluates full media queries.
+ /** Creates evaluator which evaluates full media queries
+ */
MediaQueryEvaluator(const String& acceptedMediaType, Frame*, RenderStyle*);
~MediaQueryEvaluator();
@@ -62,19 +74,18 @@
bool mediaTypeMatch(const String& mediaTypeToMatch) const;
bool mediaTypeMatchSpecific(const char* mediaTypeToMatch) const;
- // Evaluates a list of media queries.
+ /** Evaluates a list of media queries */
bool eval(const MediaQuerySet*, StyleResolver* = 0) const;
- // Evaluates media query subexpression, i.e. "and (media-feature: value)" part.
- bool eval(const MediaQueryExp&) const;
+ /** Evaluates media query subexpression, ie "and (media-feature: value)" part */
+ bool eval(const MediaQueryExp*) const;
private:
String m_mediaType;
Frame* m_frame; // not owned
RefPtr<RenderStyle> m_style;
- bool m_mediaFeatureResult;
+ bool m_expResult;
};
-} // namespace WebCore
-
+} // namespace
#endif
Modified: trunk/Source/WebCore/css/StyleResolver.cpp (118658 => 118659)
--- trunk/Source/WebCore/css/StyleResolver.cpp 2012-05-28 09:08:40 UTC (rev 118658)
+++ trunk/Source/WebCore/css/StyleResolver.cpp 2012-05-28 09:14:38 UTC (rev 118659)
@@ -77,7 +77,6 @@
#include "MatrixTransformOperation.h"
#include "MediaList.h"
#include "MediaQueryEvaluator.h"
-#include "MediaQueryExp.h"
#include "NodeRenderStyle.h"
#include "Page.h"
#include "PageGroup.h"
@@ -161,17 +160,6 @@
using namespace HTMLNames;
-struct MediaQueryResult {
- MediaQueryResult(const MediaQueryExp& _expression_, bool result)
- : _expression_(_expression_)
- , result(result)
- {
- }
-
- MediaQueryExp _expression_;
- bool result;
-};
-
#define HANDLE_INHERIT(prop, Prop) \
if (isInherit) { \
m_style->set##Prop(m_parentStyle->prop()); \
@@ -5140,16 +5128,16 @@
return m_features.attrsInRules.contains(attrname.impl());
}
-void StyleResolver::addViewportDependentMediaQueryResult(const MediaQueryExp& _expression_, bool result)
+void StyleResolver::addViewportDependentMediaQueryResult(const MediaQueryExp* expr, bool result)
{
- m_viewportDependentMediaQueryResults.append(MediaQueryResult(_expression_, result));
+ m_viewportDependentMediaQueryResults.append(adoptPtr(new MediaQueryResult(*expr, result)));
}
bool StyleResolver::affectedByViewportChange() const
{
- unsigned size = m_viewportDependentMediaQueryResults.size();
- for (unsigned i = 0; i < size; i++) {
- if (m_medium->eval(m_viewportDependentMediaQueryResults[i]._expression_) != m_viewportDependentMediaQueryResults[i].result)
+ unsigned s = m_viewportDependentMediaQueryResults.size();
+ for (unsigned i = 0; i < s; i++) {
+ if (m_medium->eval(&m_viewportDependentMediaQueryResults[i]->m_expression) != m_viewportDependentMediaQueryResults[i]->m_result)
return true;
}
return false;
Modified: trunk/Source/WebCore/css/StyleResolver.h (118658 => 118659)
--- trunk/Source/WebCore/css/StyleResolver.h 2012-05-28 09:08:40 UTC (rev 118658)
+++ trunk/Source/WebCore/css/StyleResolver.h 2012-05-28 09:14:38 UTC (rev 118659)
@@ -22,32 +22,52 @@
#ifndef StyleResolver_h
#define StyleResolver_h
+#include "CSSRule.h"
+#include "CSSValueList.h"
#include "LinkHash.h"
+#include "MediaQueryExp.h"
#include "RenderStyle.h"
#include "SelectorChecker.h"
+#include <wtf/HashMap.h>
+#include <wtf/HashSet.h>
+#include <wtf/RefPtr.h>
+#include <wtf/Vector.h>
+#include <wtf/text/StringHash.h>
namespace WebCore {
+enum ESmartMinimumForFontSize { DoNotUseSmartMinimumForFontSize, UseSmartMinimumForFontFize };
+
class CSSFontSelector;
+class CSSPageRule;
+class CSSPrimitiveValue;
+class CSSProperty;
+class CSSRuleList;
+class CSSFontFace;
+class CSSFontFaceRule;
class CSSImageGeneratorValue;
class CSSImageSetValue;
class CSSImageValue;
-class CSSRuleList;
+class CSSSelector;
class CSSStyleRule;
class CSSStyleSheet;
+class CSSValue;
class ContainerNode;
class CustomFilterOperation;
class CustomFilterParameter;
class Document;
class Element;
+class Frame;
+class FrameView;
+class KURL;
class KeyframeList;
class KeyframeValue;
class MediaQueryEvaluator;
-class MediaQueryExp;
class Node;
class RenderRegion;
class RuleData;
class RuleSet;
+class Settings;
class StaticCSSRuleList;
class StyleBuilder;
class StyleImage;
@@ -57,20 +77,32 @@
class StyleRule;
class StyleRuleKeyframes;
class StyleRulePage;
+class StyleRuleRegion;
class StyleShader;
+class StyleSheet;
class StyleSheetContents;
+class StyleSheetList;
class StyledElement;
class WebKitCSSFilterValue;
class WebKitCSSShaderValue;
-struct MediaQueryResult;
-
-enum ESmartMinimumForFontSize { DoNotUseSmartMinimumForFontSize, UseSmartMinimumForFontFize };
-
#if ENABLE(CSS_SHADERS)
typedef Vector<RefPtr<CustomFilterParameter> > CustomFilterParameterList;
#endif
+class MediaQueryResult {
+ WTF_MAKE_NONCOPYABLE(MediaQueryResult); WTF_MAKE_FAST_ALLOCATED;
+public:
+ MediaQueryResult(const MediaQueryExp& expr, bool result)
+ : m_expression(expr)
+ , m_result(result)
+ {
+ }
+
+ MediaQueryExp m_expression;
+ bool m_result;
+};
+
enum StyleSharingBehavior {
AllowStyleSharing,
DisallowStyleSharing,
@@ -193,7 +225,7 @@
CSSFontSelector* fontSelector() const { return m_fontSelector.get(); }
- void addViewportDependentMediaQueryResult(const MediaQueryExp&, bool result);
+ void addViewportDependentMediaQueryResult(const MediaQueryExp*, bool result);
bool affectedByViewportChange() const;
@@ -464,7 +496,7 @@
bool m_sameOriginOnly;
RefPtr<CSSFontSelector> m_fontSelector;
- Vector<MediaQueryResult> m_viewportDependentMediaQueryResults;
+ Vector<OwnPtr<MediaQueryResult> > m_viewportDependentMediaQueryResults;
bool m_applyPropertyToRegularStyle;
bool m_applyPropertyToVisitedLinkStyle;