Index: Source/core/css/MediaQueryEvaluator.cpp |
diff --git a/Source/core/css/MediaQueryEvaluator.cpp b/Source/core/css/MediaQueryEvaluator.cpp |
index 413c80ea910c3007cd921b8f22239eb7c74a7f44..42e71e531f9ef4957b1b877e93ea79e3ed48f40c 100644 |
--- a/Source/core/css/MediaQueryEvaluator.cpp |
+++ b/Source/core/css/MediaQueryEvaluator.cpp |
@@ -272,8 +272,8 @@ static bool deviceAspectRatioMediaFeatureEval(CSSValue* value, RenderStyle*, Fra |
static bool evalResolution(CSSValue* value, Frame* frame, MediaFeaturePrefix op) |
{ |
- // FIXME: Possible handle other media types than 'screen' and 'print'. |
- float deviceScaleFactor = 0; |
+ // FIXME: Possibly handle other media types than 'screen' and 'print'. |
+ float actualResolution = 0; |
// This checks the actual media type applied to the document, and we know |
// this method only got called if this media type matches the one defined |
@@ -281,16 +281,16 @@ static bool evalResolution(CSSValue* value, Frame* frame, MediaFeaturePrefix op) |
// media type of the query will either be "print" or "all". |
String mediaType = frame->view()->mediaType(); |
if (equalIgnoringCase(mediaType, "screen")) |
- deviceScaleFactor = frame->page()->deviceScaleFactor(); |
+ actualResolution = clampTo<float>(frame->devicePixelRatio()); |
else if (equalIgnoringCase(mediaType, "print")) { |
// The resolution of images while printing should not depend on the DPI |
// of the screen. Until we support proper ways of querying this info |
// we use 300px which is considered minimum for current printers. |
- deviceScaleFactor = 300 / cssPixelsPerInch; |
+ actualResolution = 300 / cssPixelsPerInch; |
} |
if (!value) |
- return !!deviceScaleFactor; |
+ return !!actualResolution; |
if (!value->isPrimitiveValue()) |
return false; |
@@ -298,7 +298,7 @@ static bool evalResolution(CSSValue* value, Frame* frame, MediaFeaturePrefix op) |
CSSPrimitiveValue* resolution = toCSSPrimitiveValue(value); |
if (resolution->isNumber()) |
- return compareValue(deviceScaleFactor, resolution->getFloatValue(), op); |
+ return compareValue(actualResolution, resolution->getFloatValue(), op); |
if (!resolution->isResolution()) |
return false; |
@@ -310,11 +310,11 @@ static bool evalResolution(CSSValue* value, Frame* frame, MediaFeaturePrefix op) |
// approximates the reference pixel". With that in mind, allowing 2 decimal |
// point precision seems appropriate. |
return compareValue( |
- floorf(0.5 + 100 * deviceScaleFactor) / 100, |
+ floorf(0.5 + 100 * actualResolution) / 100, |
floorf(0.5 + 100 * resolution->getFloatValue(CSSPrimitiveValue::CSS_DPPX)) / 100, op); |
} |
- return compareValue(deviceScaleFactor, resolution->getFloatValue(CSSPrimitiveValue::CSS_DPPX), op); |
+ return compareValue(actualResolution, resolution->getFloatValue(CSSPrimitiveValue::CSS_DPPX), op); |
} |
static bool devicePixelRatioMediaFeatureEval(CSSValue *value, RenderStyle*, Frame* frame, MediaFeaturePrefix op) |