Commit 72e92ee9 authored by Mitsuru Oshima's avatar Mitsuru Oshima Committed by Commit Bot

Zoom lookup should use the correct dsf.

Bug: b/141898654
Test: updated the test to catch this type of regression
Change-Id: Icee3d5aeb825748333bbe7094f10124d0e61f59f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1951152
Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: default avatarMalay Keshav <malaykeshav@chromium.org>
Cr-Commit-Position: refs/heads/master@{#721745}
parent 4fa43718
......@@ -52,12 +52,14 @@ constexpr std::array<ZoomListBucket, 8> kZoomListBuckets{{
constexpr std::array<ZoomListBucketDsf, 6> kZoomListBucketsForDsf{{
{1.25f, {0.7f, 1.f / 1.25f, 0.85f, 0.9f, 0.95f, 1.f, 1.1f, 1.2f, 1.3f}},
{1.6f, {1.f / 1.6f, 0.7f, 0.75f, 0.8f, 0.85f, 0.9f, 1.f, 1.15f, 1.3f}},
{1.77777f,
{1.f / 1.77777f, 0.65f, 0.75f, 0.8f, 0.9f, 1.f, 1.1f, 1.2f, 1.3f}},
{1.77777779102325439453125f,
{1.f / 1.77777779102325439453125f, 0.65f, 0.75f, 0.8f, 0.9f, 1.f, 1.1f,
1.2f, 1.3f}},
{2.f, {1.f / 2.f, 0.6f, 0.7f, 0.8f, 0.9f, 1.f, 1.1f, 1.25f, 1.5f}},
{2.25f, {1.f / 2.25f, 0.6f, 0.7f, 0.8f, 0.9f, 1.f, 1.15f, 1.3f, 1.5f}},
{2.66666f,
{1.f / 2.66666f, 0.5f, 0.6f, 0.8f, 0.9f, 1.f, 1.2f, 1.35f, 1.5f}},
{2.6666667461395263671875f,
{1.f / 2.6666667461395263671875f, 0.5f, 0.6f, 0.8f, 0.9f, 1.f, 1.2f, 1.35f,
1.5f}},
}};
bool WithinEpsilon(float a, float b) {
......
......@@ -10,6 +10,7 @@
#include "base/macros.h"
#include "base/strings/stringprintf.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/display/manager/display_change_observer.h"
#include "ui/display/manager/managed_display_info.h"
#include "ui/gfx/geometry/size.h"
......@@ -56,11 +57,15 @@ TEST_F(DisplayUtilTest, DisplayZooms) {
}
}
TEST_F(DisplayUtilTest, DisplayZoomsWithInternalDsf) {
std::vector<float> kDsfs = {1.25f, 1.6f, 1.77777f, 2.f, 2.25f, 2.66666f};
for (const auto& dsf : kDsfs) {
SCOPED_TRACE(base::StringPrintf("dsf=%f", dsf));
TEST_F(DisplayUtilTest, DisplayZoomsWithInternal) {
std::vector<float> kDpis = {160, 200, 225, 240, 280, 320};
float previous_dsf = 0.f;
for (const auto& dpi : kDpis) {
SCOPED_TRACE(base::StringPrintf("dpi=%f", dpi));
float dsf = DisplayChangeObserver::FindDeviceScaleFactor(dpi);
// Make sure each dpis is mapped to different dsf.
EXPECT_NE(previous_dsf, dsf);
previous_dsf = dsf;
const std::vector<float> zoom_values = GetDisplayZoomFactorForDsf(dsf);
const float inverse_dsf = 1.f / dsf;
uint8_t checks = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment