Index: Source/core/css/MediaQuery.cpp |
diff --git a/Source/core/css/MediaQuery.cpp b/Source/core/css/MediaQuery.cpp |
index 681ac137fa2c7c041b64681a6331fba4556ed79e..819c7a185897c7d2302d6ccce47334f65df800a5 100644 |
--- a/Source/core/css/MediaQuery.cpp |
+++ b/Source/core/css/MediaQuery.cpp |
@@ -30,11 +30,14 @@ |
#include "core/css/MediaQuery.h" |
#include "core/css/MediaQueryExp.h" |
+#include "core/html/parser/HTMLParserIdioms.h" |
#include "wtf/NonCopyingSort.h" |
#include "wtf/text/StringBuilder.h" |
namespace WebCore { |
+// FIXME - need to add common keywords (e.g. all, only, none, and) to static strings |
+ |
// http://dev.w3.org/csswg/cssom/#serialize-a-media-query |
String MediaQuery::serialize() const |
{ |
@@ -73,11 +76,16 @@ static bool expressionCompare(const OwnPtr<MediaQueryExp>& a, const OwnPtr<Media |
return codePointCompare(a->serialize(), b->serialize()) < 0; |
} |
-MediaQuery::MediaQuery(Restrictor r, const AtomicString& mediaType, PassOwnPtr<ExpressionVector> expressions) |
+MediaQuery::MediaQuery(Restrictor r, const String& mediaType, PassOwnPtr<ExpressionVector> expressions) |
: m_restrictor(r) |
- , m_mediaType(mediaType.lower()) |
, m_expressions(expressions) |
{ |
+ if (mediaType.impl()) { |
+ String lowerMediaType = String(mediaType.lower()); |
+ lowerMediaType.ensure16Bit(); |
+ m_mediaType = attemptStaticStringCreation(lowerMediaType, Force16Bit); |
+ } |
+ |
if (!m_expressions) { |
m_expressions = adoptPtr(new ExpressionVector); |
return; |
@@ -99,7 +107,7 @@ MediaQuery::MediaQuery(Restrictor r, const AtomicString& mediaType, PassOwnPtr<E |
MediaQuery::MediaQuery(const MediaQuery& o) |
: m_restrictor(o.m_restrictor) |
- , m_mediaType(o.m_mediaType) |
+ , m_mediaType(o.m_mediaType.impl()) |
, m_expressions(adoptPtr(new ExpressionVector(o.m_expressions->size()))) |
, m_serializationCache(o.m_serializationCache) |
{ |