Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(453)

Unified Diff: Source/core/css/MediaQuery.cpp

Issue 171383002: A thread-safe Media Query Parser (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Another attempt to fix Android build issues Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
abarth-chromium 2014/03/01 07:28:25 Then you won't need this sort of thing.
+ }
+
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)
{

Powered by Google App Engine
This is Rietveld 408576698