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

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

Issue 451113002: Updated hover media feature to comply updated media queries spec (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Change behind RuntimeEnabledFeature status=stable Created 6 years, 4 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
« no previous file with comments | « Source/core/css/CSSValueKeywords.in ('k') | Source/core/css/MediaQueryEvaluatorTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/MediaQueryEvaluator.cpp
diff --git a/Source/core/css/MediaQueryEvaluator.cpp b/Source/core/css/MediaQueryEvaluator.cpp
index ec243f25bb28bde3c463d46ebbff84593d092fa6..0ecb932285a9f45a547c9c4a84e2b8a5034de9c3 100644
--- a/Source/core/css/MediaQueryEvaluator.cpp
+++ b/Source/core/css/MediaQueryEvaluator.cpp
@@ -53,6 +53,7 @@
#include "core/rendering/compositing/RenderLayerCompositor.h"
#include "core/rendering/style/RenderStyle.h"
#include "platform/PlatformScreen.h"
+#include "platform/RuntimeEnabledFeatures.h"
#include "platform/geometry/FloatRect.h"
#include "wtf/HashMap.h"
@@ -536,15 +537,28 @@ static bool hoverMediaFeatureEval(const MediaQueryExpValue& value, MediaFeatureP
if (pointer == MediaValues::UnknownPointer)
return false;
- float number = 1;
- if (value.isValid()) {
- if (!numberValue(value, number))
+ // FIXME: Remove the old code once we're sure this doesn't break anything significant.
+ if (RuntimeEnabledFeatures::hoverMediaQueryKeywordsEnabled()) {
+ if (!value.isValid())
+ return pointer != MediaValues::NoPointer;
+
+ if (!value.isID)
return false;
- }
- return (pointer == MediaValues::NoPointer && !number)
- || (pointer == MediaValues::TouchPointer && !number)
- || (pointer == MediaValues::MousePointer && number == 1);
+ return (pointer == MediaValues::NoPointer && value.id == CSSValueNone)
+ || (pointer == MediaValues::TouchPointer && value.id == CSSValueOnDemand)
+ || (pointer == MediaValues::MousePointer && value.id == CSSValueHover);
+ } else {
+ float number = 1;
+ if (value.isValid()) {
+ if (!numberValue(value, number))
+ return false;
+ }
+
+ return (pointer == MediaValues::NoPointer && !number)
+ || (pointer == MediaValues::TouchPointer && !number)
+ || (pointer == MediaValues::MousePointer && number == 1);
+ }
}
static bool pointerMediaFeatureEval(const MediaQueryExpValue& value, MediaFeaturePrefix, const MediaValues& mediaValues)
« no previous file with comments | « Source/core/css/CSSValueKeywords.in ('k') | Source/core/css/MediaQueryEvaluatorTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698