Backed out changeset 61387758d1c4 (bug 1376931)

This commit is contained in:
Sebastian Hengst 2017-10-05 00:15:02 +02:00
Родитель 0305764b8c
Коммит 4976129381
2 изменённых файлов: 16 добавлений и 24 удалений

Просмотреть файл

@ -279,24 +279,16 @@ static void
GetResolution(nsPresContext* aPresContext, const nsMediaFeature*,
nsCSSValue& aResult)
{
// We're returning resolution in terms of device pixels per css pixel, since
// that is the preferred unit for media queries of resolution. This avoids
// introducing precision error from conversion to and from less-used
// physical units like inches.
float dppx;
float dpi = 96; // Use 96 when resisting fingerprinting.
if (!ShouldResistFingerprinting(aPresContext)) {
// Get the actual device pixel ratio, which also takes zoom into account.
dppx = float(nsPresContext::AppUnitsPerCSSPixel()) /
aPresContext->AppUnitsPerDevPixel();
} else {
// We are resisting fingerprinting, so pretend we have a device pixel ratio
// of 1. In that case, we simply report the zoom level.
dppx = aPresContext->GetEffectiveFullZoom();
// Resolution measures device pixels per CSS (inch/cm/pixel). We
// return it in device pixels per CSS inches.
dpi = float(nsPresContext::AppUnitsPerCSSInch()) /
float(aPresContext->AppUnitsPerDevPixel());
}
aResult.SetFloatValue(dppx, eCSSUnit_Pixel);
aResult.SetFloatValue(dpi, eCSSUnit_Inch);
}
static void

Просмотреть файл

@ -129,23 +129,23 @@ nsMediaExpression::Matches(nsPresContext *aPresContext,
required.GetUnit() == eCSSUnit_Pixel ||
required.GetUnit() == eCSSUnit_Centimeter,
"bad required value");
float actualDPPX = actual.GetFloatValue();
float actualDPI = actual.GetFloatValue();
float overrideDPPX = aPresContext->GetOverrideDPPX();
if (overrideDPPX > 0) {
actualDPPX = overrideDPPX;
actualDPI = overrideDPPX * 96.0f;
} else if (actual.GetUnit() == eCSSUnit_Centimeter) {
actualDPPX = actualDPPX * 2.54f / 96.0f;
} else if (actual.GetUnit() == eCSSUnit_Inch) {
actualDPPX = actualDPPX / 96.0f;
actualDPI = actualDPI * 2.54f;
} else if (actual.GetUnit() == eCSSUnit_Pixel) {
actualDPI = actualDPI * 96.0f;
}
float requiredDPPX = required.GetFloatValue();
float requiredDPI = required.GetFloatValue();
if (required.GetUnit() == eCSSUnit_Centimeter) {
requiredDPPX = requiredDPPX * 2.54f / 96.0f;
} else if (required.GetUnit() == eCSSUnit_Inch) {
requiredDPPX = requiredDPPX / 96.0f;
requiredDPI = requiredDPI * 2.54f;
} else if (required.GetUnit() == eCSSUnit_Pixel) {
requiredDPI = requiredDPI * 96.0f;
}
cmp = DoCompare(actualDPPX, requiredDPPX);
cmp = DoCompare(actualDPI, requiredDPI);
}
break;
case nsMediaFeature::eEnumerated: