| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/display/display_manager.h" | 5 #include "ash/display/display_manager.h" |
| 6 | 6 |
| 7 #include "ash/accelerators/accelerator_commands_aura.h" | 7 #include "ash/accelerators/accelerator_commands_aura.h" |
| 8 #include "ash/common/material_design/material_design_controller.h" | 8 #include "ash/common/material_design/material_design_controller.h" |
| 9 #include "ash/common/wm/window_state.h" | 9 #include "ash/common/wm/window_state.h" |
| 10 #include "ash/display/display_configuration_controller.h" | 10 #include "ash/display/display_configuration_controller.h" |
| (...skipping 1118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1129 post_rotation_info.GetActiveRotation()); | 1129 post_rotation_info.GetActiveRotation()); |
| 1130 } | 1130 } |
| 1131 | 1131 |
| 1132 // TODO(msw): Broken on Windows. http://crbug.com/584038 | 1132 // TODO(msw): Broken on Windows. http://crbug.com/584038 |
| 1133 #if defined(OS_CHROMEOS) | 1133 #if defined(OS_CHROMEOS) |
| 1134 TEST_P(DisplayManagerTest, UIScale) { | 1134 TEST_P(DisplayManagerTest, UIScale) { |
| 1135 test::ScopedDisable125DSFForUIScaling disable; | 1135 test::ScopedDisable125DSFForUIScaling disable; |
| 1136 | 1136 |
| 1137 UpdateDisplay("1280x800"); | 1137 UpdateDisplay("1280x800"); |
| 1138 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1138 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
| 1139 display_manager()->SetDisplayUIScale(display_id, 1.125f); | 1139 test::DisplayManagerTestApi(display_manager()) |
| 1140 .SetDisplayUIScale(display_id, 1.125f); |
| 1140 EXPECT_EQ(1.0, GetDisplayInfoAt(0).configured_ui_scale()); | 1141 EXPECT_EQ(1.0, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1141 display_manager()->SetDisplayUIScale(display_id, 0.8f); | 1142 test::DisplayManagerTestApi(display_manager()) |
| 1143 .SetDisplayUIScale(display_id, 0.8f); |
| 1142 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1144 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1143 display_manager()->SetDisplayUIScale(display_id, 0.75f); | 1145 test::DisplayManagerTestApi(display_manager()) |
| 1146 .SetDisplayUIScale(display_id, 0.75f); |
| 1144 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1147 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1145 display_manager()->SetDisplayUIScale(display_id, 0.625f); | 1148 test::DisplayManagerTestApi(display_manager()) |
| 1149 .SetDisplayUIScale(display_id, 0.625f); |
| 1146 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1150 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1147 | 1151 |
| 1148 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); | 1152 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); |
| 1149 | 1153 |
| 1150 display_manager()->SetDisplayUIScale(display_id, 1.5f); | 1154 test::DisplayManagerTestApi(display_manager()) |
| 1155 .SetDisplayUIScale(display_id, 1.5f); |
| 1151 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1156 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1152 display_manager()->SetDisplayUIScale(display_id, 1.25f); | 1157 test::DisplayManagerTestApi(display_manager()) |
| 1158 .SetDisplayUIScale(display_id, 1.25f); |
| 1153 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1159 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1154 display_manager()->SetDisplayUIScale(display_id, 1.125f); | 1160 test::DisplayManagerTestApi(display_manager()) |
| 1161 .SetDisplayUIScale(display_id, 1.125f); |
| 1155 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); | 1162 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1156 display_manager()->SetDisplayUIScale(display_id, 0.8f); | 1163 test::DisplayManagerTestApi(display_manager()) |
| 1164 .SetDisplayUIScale(display_id, 0.8f); |
| 1157 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); | 1165 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1158 display_manager()->SetDisplayUIScale(display_id, 0.75f); | 1166 test::DisplayManagerTestApi(display_manager()) |
| 1167 .SetDisplayUIScale(display_id, 0.75f); |
| 1159 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); | 1168 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1160 display_manager()->SetDisplayUIScale(display_id, 0.625f); | 1169 test::DisplayManagerTestApi(display_manager()) |
| 1170 .SetDisplayUIScale(display_id, 0.625f); |
| 1161 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); | 1171 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1162 display_manager()->SetDisplayUIScale(display_id, 0.6f); | 1172 test::DisplayManagerTestApi(display_manager()) |
| 1173 .SetDisplayUIScale(display_id, 0.6f); |
| 1163 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); | 1174 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1164 display_manager()->SetDisplayUIScale(display_id, 0.5f); | 1175 test::DisplayManagerTestApi(display_manager()) |
| 1176 .SetDisplayUIScale(display_id, 0.5f); |
| 1165 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); | 1177 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1166 | 1178 |
| 1167 UpdateDisplay("1366x768"); | 1179 UpdateDisplay("1366x768"); |
| 1168 display_manager()->SetDisplayUIScale(display_id, 1.5f); | 1180 test::DisplayManagerTestApi(display_manager()) |
| 1181 .SetDisplayUIScale(display_id, 1.5f); |
| 1169 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1182 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1170 display_manager()->SetDisplayUIScale(display_id, 1.25f); | 1183 test::DisplayManagerTestApi(display_manager()) |
| 1184 .SetDisplayUIScale(display_id, 1.25f); |
| 1171 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1185 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1172 display_manager()->SetDisplayUIScale(display_id, 1.125f); | 1186 test::DisplayManagerTestApi(display_manager()) |
| 1187 .SetDisplayUIScale(display_id, 1.125f); |
| 1173 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); | 1188 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1174 display_manager()->SetDisplayUIScale(display_id, 0.8f); | 1189 test::DisplayManagerTestApi(display_manager()) |
| 1190 .SetDisplayUIScale(display_id, 0.8f); |
| 1175 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); | 1191 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1176 display_manager()->SetDisplayUIScale(display_id, 0.75f); | 1192 test::DisplayManagerTestApi(display_manager()) |
| 1193 .SetDisplayUIScale(display_id, 0.75f); |
| 1177 EXPECT_EQ(0.75f, GetDisplayInfoAt(0).configured_ui_scale()); | 1194 EXPECT_EQ(0.75f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1178 display_manager()->SetDisplayUIScale(display_id, 0.6f); | 1195 test::DisplayManagerTestApi(display_manager()) |
| 1196 .SetDisplayUIScale(display_id, 0.6f); |
| 1179 EXPECT_EQ(0.6f, GetDisplayInfoAt(0).configured_ui_scale()); | 1197 EXPECT_EQ(0.6f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1180 display_manager()->SetDisplayUIScale(display_id, 0.625f); | 1198 test::DisplayManagerTestApi(display_manager()) |
| 1199 .SetDisplayUIScale(display_id, 0.625f); |
| 1181 EXPECT_EQ(0.6f, GetDisplayInfoAt(0).configured_ui_scale()); | 1200 EXPECT_EQ(0.6f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1182 display_manager()->SetDisplayUIScale(display_id, 0.5f); | 1201 test::DisplayManagerTestApi(display_manager()) |
| 1202 .SetDisplayUIScale(display_id, 0.5f); |
| 1183 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); | 1203 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1184 | 1204 |
| 1185 UpdateDisplay("1280x850*2"); | 1205 UpdateDisplay("1280x850*2"); |
| 1186 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1206 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1187 display_manager()->SetDisplayUIScale(display_id, 1.5f); | 1207 test::DisplayManagerTestApi(display_manager()) |
| 1208 .SetDisplayUIScale(display_id, 1.5f); |
| 1188 EXPECT_EQ(1.5f, GetDisplayInfoAt(0).configured_ui_scale()); | 1209 EXPECT_EQ(1.5f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1189 display_manager()->SetDisplayUIScale(display_id, 1.25f); | 1210 test::DisplayManagerTestApi(display_manager()) |
| 1211 .SetDisplayUIScale(display_id, 1.25f); |
| 1190 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).configured_ui_scale()); | 1212 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1191 display_manager()->SetDisplayUIScale(display_id, 1.125f); | 1213 test::DisplayManagerTestApi(display_manager()) |
| 1214 .SetDisplayUIScale(display_id, 1.125f); |
| 1192 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); | 1215 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1193 display_manager()->SetDisplayUIScale(display_id, 1.0f); | 1216 test::DisplayManagerTestApi(display_manager()) |
| 1217 .SetDisplayUIScale(display_id, 1.0f); |
| 1194 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1218 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1195 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); | 1219 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); |
| 1196 EXPECT_EQ(2.0f, display.device_scale_factor()); | 1220 EXPECT_EQ(2.0f, display.device_scale_factor()); |
| 1197 EXPECT_EQ("640x425", display.bounds().size().ToString()); | 1221 EXPECT_EQ("640x425", display.bounds().size().ToString()); |
| 1198 | 1222 |
| 1199 display_manager()->SetDisplayUIScale(display_id, 0.8f); | 1223 test::DisplayManagerTestApi(display_manager()) |
| 1224 .SetDisplayUIScale(display_id, 0.8f); |
| 1200 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); | 1225 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1201 display_manager()->SetDisplayUIScale(display_id, 0.75f); | 1226 test::DisplayManagerTestApi(display_manager()) |
| 1227 .SetDisplayUIScale(display_id, 0.75f); |
| 1202 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); | 1228 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1203 display_manager()->SetDisplayUIScale(display_id, 0.625f); | 1229 test::DisplayManagerTestApi(display_manager()) |
| 1230 .SetDisplayUIScale(display_id, 0.625f); |
| 1204 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); | 1231 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1205 display_manager()->SetDisplayUIScale(display_id, 0.6f); | 1232 test::DisplayManagerTestApi(display_manager()) |
| 1233 .SetDisplayUIScale(display_id, 0.6f); |
| 1206 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); | 1234 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1207 display_manager()->SetDisplayUIScale(display_id, 0.5f); | 1235 test::DisplayManagerTestApi(display_manager()) |
| 1236 .SetDisplayUIScale(display_id, 0.5f); |
| 1208 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); | 1237 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1209 | 1238 |
| 1210 display_manager()->SetDisplayUIScale(display_id, 2.0f); | 1239 test::DisplayManagerTestApi(display_manager()) |
| 1240 .SetDisplayUIScale(display_id, 2.0f); |
| 1211 EXPECT_EQ(2.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1241 EXPECT_EQ(2.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1212 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1242 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
| 1213 display = display::Screen::GetScreen()->GetPrimaryDisplay(); | 1243 display = display::Screen::GetScreen()->GetPrimaryDisplay(); |
| 1214 EXPECT_EQ(1.0f, display.device_scale_factor()); | 1244 EXPECT_EQ(1.0f, display.device_scale_factor()); |
| 1215 EXPECT_EQ("1280x850", display.bounds().size().ToString()); | 1245 EXPECT_EQ("1280x850", display.bounds().size().ToString()); |
| 1216 | 1246 |
| 1217 // 1.25 ui scaling on 1.25 DSF device should use 1.0 DSF | 1247 // 1.25 ui scaling on 1.25 DSF device should use 1.0 DSF |
| 1218 // on screen. | 1248 // on screen. |
| 1219 UpdateDisplay("1280x850*1.25"); | 1249 UpdateDisplay("1280x850*1.25"); |
| 1220 display_manager()->SetDisplayUIScale(display_id, 1.25f); | 1250 test::DisplayManagerTestApi(display_manager()) |
| 1251 .SetDisplayUIScale(display_id, 1.25f); |
| 1221 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).configured_ui_scale()); | 1252 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1222 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1253 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
| 1223 display = display::Screen::GetScreen()->GetPrimaryDisplay(); | 1254 display = display::Screen::GetScreen()->GetPrimaryDisplay(); |
| 1224 EXPECT_EQ(1.0f, display.device_scale_factor()); | 1255 EXPECT_EQ(1.0f, display.device_scale_factor()); |
| 1225 EXPECT_EQ("1280x850", display.bounds().size().ToString()); | 1256 EXPECT_EQ("1280x850", display.bounds().size().ToString()); |
| 1226 } | 1257 } |
| 1227 #endif // defined(OS_CHROMEOS) | 1258 #endif // defined(OS_CHROMEOS) |
| 1228 | 1259 |
| 1229 TEST_P(DisplayManagerTest, UIScaleWithDisplayMode) { | 1260 TEST_P(DisplayManagerTest, UIScaleWithDisplayMode) { |
| 1230 int display_id = 1000; | 1261 int display_id = 1000; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1242 std::vector<display::ManagedDisplayInfo> display_info_list; | 1273 std::vector<display::ManagedDisplayInfo> display_info_list; |
| 1243 display_info_list.push_back(native_display_info); | 1274 display_info_list.push_back(native_display_info); |
| 1244 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1275 display_manager()->OnNativeDisplaysChanged(display_info_list); |
| 1245 | 1276 |
| 1246 scoped_refptr<display::ManagedDisplayMode> expected_mode = base_mode; | 1277 scoped_refptr<display::ManagedDisplayMode> expected_mode = base_mode; |
| 1247 EXPECT_TRUE(expected_mode->IsEquivalent( | 1278 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1248 display_manager()->GetActiveModeForDisplayId(display_id))); | 1279 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1249 | 1280 |
| 1250 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); | 1281 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); |
| 1251 | 1282 |
| 1252 display_manager()->SetDisplayUIScale(display_id, 1.5f); | 1283 test::DisplayManagerTestApi(display_manager()) |
| 1284 .SetDisplayUIScale(display_id, 1.5f); |
| 1253 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1285 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1254 EXPECT_TRUE(expected_mode->IsEquivalent( | 1286 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1255 display_manager()->GetActiveModeForDisplayId(display_id))); | 1287 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1256 display_manager()->SetDisplayUIScale(display_id, 1.25f); | 1288 test::DisplayManagerTestApi(display_manager()) |
| 1289 .SetDisplayUIScale(display_id, 1.25f); |
| 1257 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1290 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1258 EXPECT_TRUE(expected_mode->IsEquivalent( | 1291 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1259 display_manager()->GetActiveModeForDisplayId(display_id))); | 1292 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1260 display_manager()->SetDisplayUIScale(display_id, 1.125f); | 1293 test::DisplayManagerTestApi(display_manager()) |
| 1294 .SetDisplayUIScale(display_id, 1.125f); |
| 1261 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); | 1295 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1262 | 1296 |
| 1263 expected_mode = new display::ManagedDisplayMode( | 1297 expected_mode = new display::ManagedDisplayMode( |
| 1264 expected_mode->size(), expected_mode->refresh_rate(), | 1298 expected_mode->size(), expected_mode->refresh_rate(), |
| 1265 expected_mode->is_interlaced(), expected_mode->native(), | 1299 expected_mode->is_interlaced(), expected_mode->native(), |
| 1266 1.125f /* ui_scale */, expected_mode->device_scale_factor()); | 1300 1.125f /* ui_scale */, expected_mode->device_scale_factor()); |
| 1267 | 1301 |
| 1268 EXPECT_TRUE(expected_mode->IsEquivalent( | 1302 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1269 display_manager()->GetActiveModeForDisplayId(display_id))); | 1303 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1270 display_manager()->SetDisplayUIScale(display_id, 0.8f); | 1304 test::DisplayManagerTestApi(display_manager()) |
| 1305 .SetDisplayUIScale(display_id, 0.8f); |
| 1271 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); | 1306 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1272 | 1307 |
| 1273 expected_mode = new display::ManagedDisplayMode( | 1308 expected_mode = new display::ManagedDisplayMode( |
| 1274 expected_mode->size(), expected_mode->refresh_rate(), | 1309 expected_mode->size(), expected_mode->refresh_rate(), |
| 1275 expected_mode->is_interlaced(), expected_mode->native(), | 1310 expected_mode->is_interlaced(), expected_mode->native(), |
| 1276 0.8f /* ui_scale */, expected_mode->device_scale_factor()); | 1311 0.8f /* ui_scale */, expected_mode->device_scale_factor()); |
| 1277 | 1312 |
| 1278 EXPECT_TRUE(expected_mode->IsEquivalent( | 1313 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1279 display_manager()->GetActiveModeForDisplayId(display_id))); | 1314 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1280 display_manager()->SetDisplayUIScale(display_id, 0.75f); | 1315 test::DisplayManagerTestApi(display_manager()) |
| 1316 .SetDisplayUIScale(display_id, 0.75f); |
| 1281 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); | 1317 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1282 EXPECT_TRUE(expected_mode->IsEquivalent( | 1318 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1283 display_manager()->GetActiveModeForDisplayId(display_id))); | 1319 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1284 display_manager()->SetDisplayUIScale(display_id, 0.625f); | 1320 test::DisplayManagerTestApi(display_manager()) |
| 1321 .SetDisplayUIScale(display_id, 0.625f); |
| 1285 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); | 1322 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1286 | 1323 |
| 1287 expected_mode = new display::ManagedDisplayMode( | 1324 expected_mode = new display::ManagedDisplayMode( |
| 1288 expected_mode->size(), expected_mode->refresh_rate(), | 1325 expected_mode->size(), expected_mode->refresh_rate(), |
| 1289 expected_mode->is_interlaced(), expected_mode->native(), | 1326 expected_mode->is_interlaced(), expected_mode->native(), |
| 1290 0.625f /* ui_scale */, expected_mode->device_scale_factor()); | 1327 0.625f /* ui_scale */, expected_mode->device_scale_factor()); |
| 1291 | 1328 |
| 1292 EXPECT_TRUE(expected_mode->IsEquivalent( | 1329 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1293 display_manager()->GetActiveModeForDisplayId(display_id))); | 1330 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1294 display_manager()->SetDisplayUIScale(display_id, 0.6f); | 1331 test::DisplayManagerTestApi(display_manager()) |
| 1332 .SetDisplayUIScale(display_id, 0.6f); |
| 1295 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); | 1333 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1296 EXPECT_TRUE(expected_mode->IsEquivalent( | 1334 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1297 display_manager()->GetActiveModeForDisplayId(display_id))); | 1335 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1298 display_manager()->SetDisplayUIScale(display_id, 0.5f); | 1336 test::DisplayManagerTestApi(display_manager()) |
| 1337 .SetDisplayUIScale(display_id, 0.5f); |
| 1299 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); | 1338 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1300 | 1339 |
| 1301 expected_mode = new display::ManagedDisplayMode( | 1340 expected_mode = new display::ManagedDisplayMode( |
| 1302 expected_mode->size(), expected_mode->refresh_rate(), | 1341 expected_mode->size(), expected_mode->refresh_rate(), |
| 1303 expected_mode->is_interlaced(), expected_mode->native(), | 1342 expected_mode->is_interlaced(), expected_mode->native(), |
| 1304 0.5f /* ui_scale */, expected_mode->device_scale_factor()); | 1343 0.5f /* ui_scale */, expected_mode->device_scale_factor()); |
| 1305 | 1344 |
| 1306 EXPECT_TRUE(expected_mode->IsEquivalent( | 1345 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1307 display_manager()->GetActiveModeForDisplayId(display_id))); | 1346 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1308 } | 1347 } |
| 1309 | 1348 |
| 1349 // Tests that ResetInternalDisplayZoom() resets to the default 0.8f UI scale |
| 1350 // defined for the 1.25x displays. |
| 1351 TEST_P(DisplayManagerTest, ResetInternalDisplayZoomFor1_25x) { |
| 1352 // Setup the display modes with UI-scale. |
| 1353 const scoped_refptr<display::ManagedDisplayMode> base_mode( |
| 1354 new display::ManagedDisplayMode(gfx::Size(1920, 1080), 60.0f, |
| 1355 false /* is_interlaced */, |
| 1356 true /* native */, 1.0f /* ui_scale */, |
| 1357 1.25f /* device_scale_factor */)); |
| 1358 display::ManagedDisplayInfo::ManagedDisplayModeList mode_list = |
| 1359 CreateInternalManagedDisplayModeList(base_mode); |
| 1360 |
| 1361 const int display_id = 1000; |
| 1362 display::ManagedDisplayInfo native_display_info = |
| 1363 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); |
| 1364 native_display_info.set_device_scale_factor(1.25f); |
| 1365 native_display_info.SetManagedDisplayModes(mode_list); |
| 1366 |
| 1367 std::vector<display::ManagedDisplayInfo> display_info_list; |
| 1368 display_info_list.push_back(native_display_info); |
| 1369 display_manager()->OnNativeDisplaysChanged(display_info_list); |
| 1370 |
| 1371 scoped_refptr<display::ManagedDisplayMode> expected_mode = base_mode; |
| 1372 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1373 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1374 |
| 1375 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); |
| 1376 |
| 1377 test::DisplayManagerTestApi(display_manager()) |
| 1378 .SetDisplayUIScale(display_id, 0.5f); |
| 1379 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
| 1380 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
| 1381 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1382 EXPECT_EQ("960x540", GetDisplayForId(display_id).size().ToString()); |
| 1383 |
| 1384 // Reset the internal display zoom and expect the UI scale to go to the |
| 1385 // default 0.8f. |
| 1386 display_manager()->ResetInternalDisplayZoom(); |
| 1387 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
| 1388 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
| 1389 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1390 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString()); |
| 1391 } |
| 1392 |
| 1310 // TODO(msw): Broken on Windows. http://crbug.com/584038 | 1393 // TODO(msw): Broken on Windows. http://crbug.com/584038 |
| 1311 #if defined(OS_CHROMEOS) | 1394 #if defined(OS_CHROMEOS) |
| 1312 TEST_P(DisplayManagerTest, Use125DSFForUIScaling) { | 1395 TEST_P(DisplayManagerTest, Use125DSFForUIScaling) { |
| 1313 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1396 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
| 1314 | 1397 |
| 1315 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); | 1398 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); |
| 1316 UpdateDisplay("1920x1080*1.25"); | 1399 UpdateDisplay("1920x1080*1.25"); |
| 1317 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1400 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
| 1318 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1401 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
| 1319 | 1402 |
| 1320 display_manager()->SetDisplayUIScale(display_id, 0.8f); | 1403 test::DisplayManagerTestApi(display_manager()) |
| 1404 .SetDisplayUIScale(display_id, 0.8f); |
| 1321 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1405 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
| 1322 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1406 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
| 1323 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString()); | 1407 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString()); |
| 1324 | 1408 |
| 1325 display_manager()->SetDisplayUIScale(display_id, 0.5f); | 1409 test::DisplayManagerTestApi(display_manager()) |
| 1410 .SetDisplayUIScale(display_id, 0.5f); |
| 1326 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1411 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
| 1327 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1412 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
| 1328 EXPECT_EQ("960x540", GetDisplayForId(display_id).size().ToString()); | 1413 EXPECT_EQ("960x540", GetDisplayForId(display_id).size().ToString()); |
| 1329 | 1414 |
| 1330 display_manager()->SetDisplayUIScale(display_id, 1.25f); | 1415 test::DisplayManagerTestApi(display_manager()) |
| 1416 .SetDisplayUIScale(display_id, 1.25f); |
| 1331 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1417 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
| 1332 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1418 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
| 1333 EXPECT_EQ("2400x1350", GetDisplayForId(display_id).size().ToString()); | 1419 EXPECT_EQ("2400x1350", GetDisplayForId(display_id).size().ToString()); |
| 1334 } | 1420 } |
| 1335 #endif // defined(OS_CHROMEOS) | 1421 #endif // defined(OS_CHROMEOS) |
| 1336 | 1422 |
| 1337 // TODO(msw): Broken on Windows. http://crbug.com/584038 | 1423 // TODO(msw): Broken on Windows. http://crbug.com/584038 |
| 1338 #if defined(OS_CHROMEOS) | 1424 #if defined(OS_CHROMEOS) |
| 1339 TEST_P(DisplayManagerTest, FHD125DefaultsTo08UIScaling) { | 1425 TEST_P(DisplayManagerTest, FHD125DefaultsTo08UIScaling) { |
| 1340 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1426 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
| (...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2147 display_info_list.clear(); | 2233 display_info_list.clear(); |
| 2148 display_info_list.push_back(external_display_info); | 2234 display_info_list.push_back(external_display_info); |
| 2149 display_manager()->OnNativeDisplaysChanged(display_info_list); | 2235 display_manager()->OnNativeDisplaysChanged(display_info_list); |
| 2150 EXPECT_EQ(1U, display_manager()->active_display_list().size()); | 2236 EXPECT_EQ(1U, display_manager()->active_display_list().size()); |
| 2151 | 2237 |
| 2152 EXPECT_TRUE(display_manager()->IsActiveDisplayId(external_id)); | 2238 EXPECT_TRUE(display_manager()->IsActiveDisplayId(external_id)); |
| 2153 EXPECT_FALSE(display_manager()->IsActiveDisplayId(internal_id)); | 2239 EXPECT_FALSE(display_manager()->IsActiveDisplayId(internal_id)); |
| 2154 | 2240 |
| 2155 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(true)); | 2241 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(true)); |
| 2156 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(false)); | 2242 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(false)); |
| 2157 EXPECT_FALSE(display_manager()->SetDisplayUIScale(internal_id, 1.0f)); | 2243 EXPECT_FALSE(test::DisplayManagerTestApi(display_manager()) |
| 2244 .SetDisplayUIScale(internal_id, 1.0f)); |
| 2158 } | 2245 } |
| 2159 | 2246 |
| 2160 // Make sure that bad layout information is ignored and does not crash. | 2247 // Make sure that bad layout information is ignored and does not crash. |
| 2161 TEST_P(DisplayManagerTest, DontRegisterBadConfig) { | 2248 TEST_P(DisplayManagerTest, DontRegisterBadConfig) { |
| 2162 if (!SupportsMultipleDisplays()) | 2249 if (!SupportsMultipleDisplays()) |
| 2163 return; | 2250 return; |
| 2164 display::DisplayIdList list = ash::test::CreateDisplayIdList2(1, 2); | 2251 display::DisplayIdList list = ash::test::CreateDisplayIdList2(1, 2); |
| 2165 display::DisplayLayoutBuilder builder(1); | 2252 display::DisplayLayoutBuilder builder(1); |
| 2166 builder.AddDisplayPlacement(2, 1, display::DisplayPlacement::LEFT, 0); | 2253 builder.AddDisplayPlacement(2, 1, display::DisplayPlacement::LEFT, 0); |
| 2167 builder.AddDisplayPlacement(3, 1, display::DisplayPlacement::BOTTOM, 0); | 2254 builder.AddDisplayPlacement(3, 1, display::DisplayPlacement::BOTTOM, 0); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2264 } | 2351 } |
| 2265 | 2352 |
| 2266 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf200Internal) { | 2353 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf200Internal) { |
| 2267 FontTestHelper helper(2.0f, FontTestHelper::INTERNAL); | 2354 FontTestHelper helper(2.0f, FontTestHelper::INTERNAL); |
| 2268 ASSERT_DOUBLE_EQ( | 2355 ASSERT_DOUBLE_EQ( |
| 2269 2.0f, | 2356 2.0f, |
| 2270 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2357 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
| 2271 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); | 2358 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); |
| 2272 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2359 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
| 2273 | 2360 |
| 2274 helper.display_manager()->SetDisplayUIScale( | 2361 test::DisplayManagerTestApi(helper.display_manager()) |
| 2275 display::Screen::GetScreen()->GetPrimaryDisplay().id(), 2.0f); | 2362 .SetDisplayUIScale(display::Screen::GetScreen()->GetPrimaryDisplay().id(), |
| 2363 2.0f); |
| 2276 | 2364 |
| 2277 ASSERT_DOUBLE_EQ( | 2365 ASSERT_DOUBLE_EQ( |
| 2278 1.0f, | 2366 1.0f, |
| 2279 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2367 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
| 2280 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); | 2368 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); |
| 2281 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2369 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
| 2282 } | 2370 } |
| 2283 | 2371 |
| 2284 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf100External) { | 2372 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf100External) { |
| 2285 FontTestHelper helper(1.0f, FontTestHelper::EXTERNAL); | 2373 FontTestHelper helper(1.0f, FontTestHelper::EXTERNAL); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 2310 | 2398 |
| 2311 TEST_F(DisplayManagerFontTest, | 2399 TEST_F(DisplayManagerFontTest, |
| 2312 TextSubpixelPositioningWithDsf125InternalWithScaling) { | 2400 TextSubpixelPositioningWithDsf125InternalWithScaling) { |
| 2313 FontTestHelper helper(1.25f, FontTestHelper::INTERNAL); | 2401 FontTestHelper helper(1.25f, FontTestHelper::INTERNAL); |
| 2314 ASSERT_DOUBLE_EQ( | 2402 ASSERT_DOUBLE_EQ( |
| 2315 1.0f, | 2403 1.0f, |
| 2316 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2404 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
| 2317 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); | 2405 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); |
| 2318 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2406 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
| 2319 | 2407 |
| 2320 helper.display_manager()->SetDisplayUIScale( | 2408 test::DisplayManagerTestApi(helper.display_manager()) |
| 2321 display::Screen::GetScreen()->GetPrimaryDisplay().id(), 0.8f); | 2409 .SetDisplayUIScale(display::Screen::GetScreen()->GetPrimaryDisplay().id(), |
| 2410 0.8f); |
| 2322 | 2411 |
| 2323 ASSERT_DOUBLE_EQ( | 2412 ASSERT_DOUBLE_EQ( |
| 2324 1.25f, | 2413 1.25f, |
| 2325 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2414 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
| 2326 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); | 2415 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); |
| 2327 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2416 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
| 2328 } | 2417 } |
| 2329 | 2418 |
| 2330 TEST_P(DisplayManagerTest, CheckInitializationOfRotationProperty) { | 2419 TEST_P(DisplayManagerTest, CheckInitializationOfRotationProperty) { |
| 2331 int64_t id = display_manager()->GetDisplayAt(0).id(); | 2420 int64_t id = display_manager()->GetDisplayAt(0).id(); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2381 const display::DisplayLayout& stored = | 2470 const display::DisplayLayout& stored = |
| 2382 layout_store->GetRegisteredDisplayLayout(list); | 2471 layout_store->GetRegisteredDisplayLayout(list); |
| 2383 | 2472 |
| 2384 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); | 2473 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); |
| 2385 EXPECT_EQ(id2, stored.placement_list[0].display_id); | 2474 EXPECT_EQ(id2, stored.placement_list[0].display_id); |
| 2386 } | 2475 } |
| 2387 | 2476 |
| 2388 #endif // OS_CHROMEOS | 2477 #endif // OS_CHROMEOS |
| 2389 | 2478 |
| 2390 } // namespace ash | 2479 } // namespace ash |
| OLD | NEW |