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

Unified Diff: third_party/WebKit/Source/core/css/MediaValues.cpp

Issue 1904523002: Fix double comparisons for Media Queries (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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: third_party/WebKit/Source/core/css/MediaValues.cpp
diff --git a/third_party/WebKit/Source/core/css/MediaValues.cpp b/third_party/WebKit/Source/core/css/MediaValues.cpp
index 6f7cbc2e76af5ac3df02db59c7f97d62cad15fd9..2618cd49257c9667b75c0477bc9424f673b05e18 100644
--- a/third_party/WebKit/Source/core/css/MediaValues.cpp
+++ b/third_party/WebKit/Source/core/css/MediaValues.cpp
@@ -159,60 +159,67 @@ bool MediaValues::computeLengthImpl(double value, CSSPrimitiveValue::UnitType ty
// CSSToLengthConversionData::zoomedComputedPixels() more generic (to solve both cases) without hurting performance.
// FIXME - Unite the logic here with CSSToLengthConversionData in a performant way.
- double factor = 0;
+ double nominator = 0;
+ double denominator = 1;
switch (type) {
case CSSPrimitiveValue::UnitType::Ems:
case CSSPrimitiveValue::UnitType::Rems:
- factor = defaultFontSize;
+ nominator = defaultFontSize;
break;
case CSSPrimitiveValue::UnitType::Pixels:
case CSSPrimitiveValue::UnitType::UserUnits:
- factor = 1;
+ nominator = 1;
rune 2016/04/20 07:04:46 Wouldn't it be simpler to just set "value" for eac
Yoav Weiss 2016/04/20 07:26:57 Yeah, changed it to suggested form
break;
case CSSPrimitiveValue::UnitType::Exs:
// FIXME: We have a bug right now where the zoom will be applied twice to EX units.
// FIXME: We don't seem to be able to cache fontMetrics related values.
// Trying to access them is triggering some sort of microtask. Serving the spec's default instead.
- factor = defaultFontSize / 2.0;
+ nominator = defaultFontSize;
+ denominator = 2.0;
break;
case CSSPrimitiveValue::UnitType::Chs:
// FIXME: We don't seem to be able to cache fontMetrics related values.
// Trying to access them is triggering some sort of microtask. Serving the (future) spec default instead.
- factor = defaultFontSize / 2.0;
+ nominator = defaultFontSize;
+ denominator = 2.0;
break;
case CSSPrimitiveValue::UnitType::ViewportWidth:
- factor = viewportWidth / 100.0;
+ nominator = viewportWidth;
+ denominator = 100.0;
break;
case CSSPrimitiveValue::UnitType::ViewportHeight:
- factor = viewportHeight / 100.0;
+ nominator = viewportHeight;
+ denominator = 100.0;
break;
case CSSPrimitiveValue::UnitType::ViewportMin:
- factor = std::min(viewportWidth, viewportHeight) / 100.0;
+ nominator = std::min(viewportWidth, viewportHeight);
+ denominator = 100.0;
break;
case CSSPrimitiveValue::UnitType::ViewportMax:
- factor = std::max(viewportWidth, viewportHeight) / 100.0;
+ nominator = std::max(viewportWidth, viewportHeight);
+ denominator = 100.0;
break;
case CSSPrimitiveValue::UnitType::Centimeters:
- factor = cssPixelsPerCentimeter;
+ nominator = cssPixelsPerCentimeter;
break;
case CSSPrimitiveValue::UnitType::Millimeters:
- factor = cssPixelsPerMillimeter;
+ nominator = cssPixelsPerMillimeter;
break;
case CSSPrimitiveValue::UnitType::Inches:
- factor = cssPixelsPerInch;
+ nominator = cssPixelsPerInch;
break;
case CSSPrimitiveValue::UnitType::Points:
- factor = cssPixelsPerPoint;
+ nominator = cssPixelsPerPoint;
break;
case CSSPrimitiveValue::UnitType::Picas:
- factor = cssPixelsPerPica;
+ nominator = cssPixelsPerPica;
break;
default:
return false;
}
- ASSERT(factor >= 0);
- result = value * factor;
+ ASSERT(nominator >= 0);
+ result = (value * nominator) / denominator;
return true;
}

Powered by Google App Engine
This is Rietveld 408576698