[web] Fix test failure on high dpi device (#22618)

diff --git a/lib/web_ui/test/engine/pointer_binding_test.dart b/lib/web_ui/test/engine/pointer_binding_test.dart
index 091cde3..4c100b9 100644
--- a/lib/web_ui/test/engine/pointer_binding_test.dart
+++ b/lib/web_ui/test/engine/pointer_binding_test.dart
@@ -45,12 +45,14 @@
 
 void testMain() {
   html.Element glassPane = domRenderer.glassPaneElement;
+  double dpi = 1.0;
 
   setUp(() {
     // Touching domRenderer creates PointerBinding.instance.
     domRenderer;
 
     ui.window.onPointerDataPacket = null;
+    dpi = window.devicePixelRatio;
   });
 
   test('_PointerEventContext generates expected events', () {
@@ -472,8 +474,8 @@
       expect(packets[0].data, hasLength(2));
       expect(packets[0].data[0].change, equals(ui.PointerChange.add));
       expect(packets[0].data[1].change, equals(ui.PointerChange.down));
-      expect(packets[0].data[1].physicalX, equals(10.0));
-      expect(packets[0].data[1].physicalY, equals(10.0));
+      expect(packets[0].data[1].physicalX, equals(10.0 * dpi));
+      expect(packets[0].data[1].physicalY, equals(10.0 * dpi));
       packets.clear();
 
       // Drag on the semantics placeholder.
@@ -484,8 +486,8 @@
       expect(packets, hasLength(1));
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
-      expect(packets[0].data[0].physicalX, equals(12.0));
-      expect(packets[0].data[0].physicalY, equals(10.0));
+      expect(packets[0].data[0].physicalX, equals(12.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(10.0 * dpi));
       packets.clear();
 
       // Keep dragging.
@@ -495,8 +497,8 @@
       ));
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
-      expect(packets[0].data[0].physicalX, equals(15.0));
-      expect(packets[0].data[0].physicalY, equals(10.0));
+      expect(packets[0].data[0].physicalX, equals(15.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(10.0 * dpi));
       packets.clear();
 
       // Release the pointer on the semantics placeholder.
@@ -507,11 +509,11 @@
       expect(packets, hasLength(1));
       expect(packets[0].data, hasLength(2));
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
-      expect(packets[0].data[0].physicalX, equals(100.0));
-      expect(packets[0].data[0].physicalY, equals(200.0));
+      expect(packets[0].data[0].physicalX, equals(100.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(200.0 * dpi));
       expect(packets[0].data[1].change, equals(ui.PointerChange.up));
-      expect(packets[0].data[1].physicalX, equals(100.0));
-      expect(packets[0].data[1].physicalY, equals(200.0));
+      expect(packets[0].data[1].physicalX, equals(100.0 * dpi));
+      expect(packets[0].data[1].physicalY, equals(200.0 * dpi));
       packets.clear();
 
       semanticsPlaceholder.remove();
@@ -635,8 +637,8 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.add));
       expect(packets[0].data[0].pointerIdentifier, equals(0));
       expect(packets[0].data[0].synthesized, equals(true));
-      expect(packets[0].data[0].physicalX, equals(10.0));
-      expect(packets[0].data[0].physicalY, equals(10.0));
+      expect(packets[0].data[0].physicalX, equals(10.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(10.0 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0.0));
       expect(packets[0].data[0].physicalDeltaY, equals(0.0));
 
@@ -645,8 +647,8 @@
           packets[0].data[1].signalKind, equals(ui.PointerSignalKind.scroll));
       expect(packets[0].data[1].pointerIdentifier, equals(0));
       expect(packets[0].data[1].synthesized, equals(false));
-      expect(packets[0].data[1].physicalX, equals(10.0));
-      expect(packets[0].data[1].physicalY, equals(10.0));
+      expect(packets[0].data[1].physicalX, equals(10.0 * dpi));
+      expect(packets[0].data[1].physicalY, equals(10.0 * dpi));
       expect(packets[0].data[1].physicalDeltaX, equals(0.0));
       expect(packets[0].data[1].physicalDeltaY, equals(0.0));
 
@@ -655,18 +657,18 @@
       expect(packets[1].data[0].change, equals(ui.PointerChange.hover));
       expect(packets[1].data[0].pointerIdentifier, equals(0));
       expect(packets[1].data[0].synthesized, equals(true));
-      expect(packets[1].data[0].physicalX, equals(20.0));
-      expect(packets[1].data[0].physicalY, equals(50.0));
-      expect(packets[1].data[0].physicalDeltaX, equals(10.0));
-      expect(packets[1].data[0].physicalDeltaY, equals(40.0));
+      expect(packets[1].data[0].physicalX, equals(20.0 * dpi));
+      expect(packets[1].data[0].physicalY, equals(50.0 * dpi));
+      expect(packets[1].data[0].physicalDeltaX, equals(10.0 * dpi));
+      expect(packets[1].data[0].physicalDeltaY, equals(40.0 * dpi));
 
       expect(packets[1].data[1].change, equals(ui.PointerChange.hover));
       expect(
           packets[1].data[1].signalKind, equals(ui.PointerSignalKind.scroll));
       expect(packets[1].data[1].pointerIdentifier, equals(0));
       expect(packets[1].data[1].synthesized, equals(false));
-      expect(packets[1].data[1].physicalX, equals(20.0));
-      expect(packets[1].data[1].physicalY, equals(50.0));
+      expect(packets[1].data[1].physicalX, equals(20.0 * dpi));
+      expect(packets[1].data[1].physicalY, equals(50.0 * dpi));
       expect(packets[1].data[1].physicalDeltaX, equals(0.0));
       expect(packets[1].data[1].physicalDeltaY, equals(0.0));
 
@@ -676,8 +678,8 @@
       expect(packets[2].data[0].signalKind, equals(ui.PointerSignalKind.none));
       expect(packets[2].data[0].pointerIdentifier, equals(1));
       expect(packets[2].data[0].synthesized, equals(false));
-      expect(packets[2].data[0].physicalX, equals(20.0));
-      expect(packets[2].data[0].physicalY, equals(50.0));
+      expect(packets[2].data[0].physicalX, equals(20.0 * dpi));
+      expect(packets[2].data[0].physicalY, equals(50.0 * dpi));
       expect(packets[2].data[0].physicalDeltaX, equals(0.0));
       expect(packets[2].data[0].physicalDeltaY, equals(0.0));
 
@@ -686,18 +688,18 @@
       expect(packets[3].data[0].change, equals(ui.PointerChange.move));
       expect(packets[3].data[0].pointerIdentifier, equals(1));
       expect(packets[3].data[0].synthesized, equals(true));
-      expect(packets[3].data[0].physicalX, equals(30.0));
-      expect(packets[3].data[0].physicalY, equals(60.0));
-      expect(packets[3].data[0].physicalDeltaX, equals(10.0));
-      expect(packets[3].data[0].physicalDeltaY, equals(10.0));
+      expect(packets[3].data[0].physicalX, equals(30.0 * dpi));
+      expect(packets[3].data[0].physicalY, equals(60.0 * dpi));
+      expect(packets[3].data[0].physicalDeltaX, equals(10.0 * dpi));
+      expect(packets[3].data[0].physicalDeltaY, equals(10.0 * dpi));
 
       expect(packets[3].data[1].change, equals(ui.PointerChange.hover));
       expect(
           packets[3].data[1].signalKind, equals(ui.PointerSignalKind.scroll));
       expect(packets[3].data[1].pointerIdentifier, equals(1));
       expect(packets[3].data[1].synthesized, equals(false));
-      expect(packets[3].data[1].physicalX, equals(30.0));
-      expect(packets[3].data[1].physicalY, equals(60.0));
+      expect(packets[3].data[1].physicalX, equals(30.0 * dpi));
+      expect(packets[3].data[1].physicalY, equals(60.0 * dpi));
       expect(packets[3].data[1].physicalDeltaX, equals(0.0));
       expect(packets[3].data[1].physicalDeltaY, equals(0.0));
     },
@@ -725,16 +727,16 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.add));
       expect(packets[0].data[0].pointerIdentifier, equals(0));
       expect(packets[0].data[0].synthesized, equals(true));
-      expect(packets[0].data[0].physicalX, equals(10.0));
-      expect(packets[0].data[0].physicalY, equals(10.0));
+      expect(packets[0].data[0].physicalX, equals(10.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(10.0 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0.0));
       expect(packets[0].data[0].physicalDeltaY, equals(0.0));
 
       expect(packets[0].data[1].change, equals(ui.PointerChange.hover));
       expect(packets[0].data[1].pointerIdentifier, equals(0));
       expect(packets[0].data[1].synthesized, equals(false));
-      expect(packets[0].data[1].physicalX, equals(10.0));
-      expect(packets[0].data[1].physicalY, equals(10.0));
+      expect(packets[0].data[1].physicalX, equals(10.0 * dpi));
+      expect(packets[0].data[1].physicalY, equals(10.0 * dpi));
       expect(packets[0].data[1].physicalDeltaX, equals(0.0));
       expect(packets[0].data[1].physicalDeltaY, equals(0.0));
       packets.clear();
@@ -748,10 +750,10 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.hover));
       expect(packets[0].data[0].pointerIdentifier, equals(0));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(20.0));
-      expect(packets[0].data[0].physicalY, equals(20.0));
-      expect(packets[0].data[0].physicalDeltaX, equals(10.0));
-      expect(packets[0].data[0].physicalDeltaY, equals(10.0));
+      expect(packets[0].data[0].physicalX, equals(20.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(20.0 * dpi));
+      expect(packets[0].data[0].physicalDeltaX, equals(10.0 * dpi));
+      expect(packets[0].data[0].physicalDeltaY, equals(10.0 * dpi));
       packets.clear();
 
       glassPane.dispatchEvent(context.primaryDown(
@@ -763,8 +765,8 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.down));
       expect(packets[0].data[0].pointerIdentifier, equals(1));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(20.0));
-      expect(packets[0].data[0].physicalY, equals(20.0));
+      expect(packets[0].data[0].physicalX, equals(20.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(20.0 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0.0));
       expect(packets[0].data[0].physicalDeltaY, equals(0.0));
       packets.clear();
@@ -778,10 +780,10 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
       expect(packets[0].data[0].pointerIdentifier, equals(1));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(40.0));
-      expect(packets[0].data[0].physicalY, equals(30.0));
-      expect(packets[0].data[0].physicalDeltaX, equals(20.0));
-      expect(packets[0].data[0].physicalDeltaY, equals(10.0));
+      expect(packets[0].data[0].physicalX, equals(40.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(30.0 * dpi));
+      expect(packets[0].data[0].physicalDeltaX, equals(20.0 * dpi));
+      expect(packets[0].data[0].physicalDeltaY, equals(10.0 * dpi));
       packets.clear();
 
       glassPane.dispatchEvent(context.primaryUp(
@@ -793,8 +795,8 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.up));
       expect(packets[0].data[0].pointerIdentifier, equals(1));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(40.0));
-      expect(packets[0].data[0].physicalY, equals(30.0));
+      expect(packets[0].data[0].physicalX, equals(40.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(30.0 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0.0));
       expect(packets[0].data[0].physicalDeltaY, equals(0.0));
       packets.clear();
@@ -808,10 +810,10 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.hover));
       expect(packets[0].data[0].pointerIdentifier, equals(1));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(20.0));
-      expect(packets[0].data[0].physicalY, equals(10.0));
-      expect(packets[0].data[0].physicalDeltaX, equals(-20.0));
-      expect(packets[0].data[0].physicalDeltaY, equals(-20.0));
+      expect(packets[0].data[0].physicalX, equals(20.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(10.0 * dpi));
+      expect(packets[0].data[0].physicalDeltaX, equals(-20.0 * dpi));
+      expect(packets[0].data[0].physicalDeltaY, equals(-20.0 * dpi));
       packets.clear();
 
       glassPane.dispatchEvent(context.primaryDown(
@@ -823,8 +825,8 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.down));
       expect(packets[0].data[0].pointerIdentifier, equals(2));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(20.0));
-      expect(packets[0].data[0].physicalY, equals(10.0));
+      expect(packets[0].data[0].physicalX, equals(20.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(10.0 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0.0));
       expect(packets[0].data[0].physicalDeltaY, equals(0.0));
       packets.clear();
@@ -855,13 +857,13 @@
       expect(packets[0].data, hasLength(2));
       expect(packets[0].data[0].change, equals(ui.PointerChange.add));
       expect(packets[0].data[0].synthesized, equals(true));
-      expect(packets[0].data[0].physicalX, equals(10));
-      expect(packets[0].data[0].physicalY, equals(11));
+      expect(packets[0].data[0].physicalX, equals(10 * dpi));
+      expect(packets[0].data[0].physicalY, equals(11 * dpi));
 
       expect(packets[0].data[1].change, equals(ui.PointerChange.hover));
       expect(packets[0].data[1].synthesized, equals(false));
-      expect(packets[0].data[1].physicalX, equals(10));
-      expect(packets[0].data[1].physicalY, equals(11));
+      expect(packets[0].data[1].physicalX, equals(10 * dpi));
+      expect(packets[0].data[1].physicalY, equals(11 * dpi));
       expect(packets[0].data[1].buttons, equals(0));
       packets.clear();
 
@@ -875,8 +877,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.down));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(10));
-      expect(packets[0].data[0].physicalY, equals(11));
+      expect(packets[0].data[0].physicalX, equals(10 * dpi));
+      expect(packets[0].data[0].physicalY, equals(11 * dpi));
       expect(packets[0].data[0].buttons, equals(1));
       packets.clear();
 
@@ -890,8 +892,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(20));
-      expect(packets[0].data[0].physicalY, equals(21));
+      expect(packets[0].data[0].physicalX, equals(20 * dpi));
+      expect(packets[0].data[0].physicalY, equals(21 * dpi));
       expect(packets[0].data[0].buttons, equals(1));
       packets.clear();
 
@@ -904,8 +906,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.up));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(20));
-      expect(packets[0].data[0].physicalY, equals(21));
+      expect(packets[0].data[0].physicalX, equals(20 * dpi));
+      expect(packets[0].data[0].physicalY, equals(21 * dpi));
       expect(packets[0].data[0].buttons, equals(0));
       packets.clear();
 
@@ -920,8 +922,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.down));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(20));
-      expect(packets[0].data[0].physicalY, equals(21));
+      expect(packets[0].data[0].physicalX, equals(20 * dpi));
+      expect(packets[0].data[0].physicalY, equals(21 * dpi));
       expect(packets[0].data[0].buttons, equals(2));
       packets.clear();
 
@@ -935,8 +937,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(30));
-      expect(packets[0].data[0].physicalY, equals(31));
+      expect(packets[0].data[0].physicalX, equals(30 * dpi));
+      expect(packets[0].data[0].physicalY, equals(31 * dpi));
       expect(packets[0].data[0].buttons, equals(2));
       packets.clear();
 
@@ -949,8 +951,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.up));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(30));
-      expect(packets[0].data[0].physicalY, equals(31));
+      expect(packets[0].data[0].physicalX, equals(30 * dpi));
+      expect(packets[0].data[0].physicalY, equals(31 * dpi));
       expect(packets[0].data[0].buttons, equals(0));
       packets.clear();
 
@@ -965,8 +967,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.down));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(30));
-      expect(packets[0].data[0].physicalY, equals(31));
+      expect(packets[0].data[0].physicalX, equals(30 * dpi));
+      expect(packets[0].data[0].physicalY, equals(31 * dpi));
       expect(packets[0].data[0].buttons, equals(4));
       packets.clear();
 
@@ -980,8 +982,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(40));
-      expect(packets[0].data[0].physicalY, equals(41));
+      expect(packets[0].data[0].physicalX, equals(40 * dpi));
+      expect(packets[0].data[0].physicalY, equals(41 * dpi));
       expect(packets[0].data[0].buttons, equals(4));
       packets.clear();
 
@@ -994,8 +996,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.up));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(40));
-      expect(packets[0].data[0].physicalY, equals(41));
+      expect(packets[0].data[0].physicalX, equals(40 * dpi));
+      expect(packets[0].data[0].physicalY, equals(41 * dpi));
       expect(packets[0].data[0].buttons, equals(0));
       packets.clear();
     },
@@ -1093,13 +1095,13 @@
       expect(packets[0].data, hasLength(2));
       expect(packets[0].data[0].change, equals(ui.PointerChange.add));
       expect(packets[0].data[0].synthesized, equals(true));
-      expect(packets[0].data[0].physicalX, equals(10));
-      expect(packets[0].data[0].physicalY, equals(11));
+      expect(packets[0].data[0].physicalX, equals(10 * dpi));
+      expect(packets[0].data[0].physicalY, equals(11 * dpi));
 
       expect(packets[0].data[1].change, equals(ui.PointerChange.down));
       expect(packets[0].data[1].synthesized, equals(false));
-      expect(packets[0].data[1].physicalX, equals(10));
-      expect(packets[0].data[1].physicalY, equals(11));
+      expect(packets[0].data[1].physicalX, equals(10 * dpi));
+      expect(packets[0].data[1].physicalY, equals(11 * dpi));
       expect(packets[0].data[1].buttons, equals(2));
       packets.clear();
 
@@ -1113,8 +1115,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(20));
-      expect(packets[0].data[0].physicalY, equals(21));
+      expect(packets[0].data[0].physicalX, equals(20 * dpi));
+      expect(packets[0].data[0].physicalY, equals(21 * dpi));
       expect(packets[0].data[0].buttons, equals(2));
       packets.clear();
 
@@ -1128,8 +1130,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(20));
-      expect(packets[0].data[0].physicalY, equals(21));
+      expect(packets[0].data[0].physicalX, equals(20 * dpi));
+      expect(packets[0].data[0].physicalY, equals(21 * dpi));
       expect(packets[0].data[0].buttons, equals(2));
       packets.clear();
 
@@ -1142,8 +1144,8 @@
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.up));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(20));
-      expect(packets[0].data[0].physicalY, equals(21));
+      expect(packets[0].data[0].physicalX, equals(20 * dpi));
+      expect(packets[0].data[0].physicalY, equals(21 * dpi));
       expect(packets[0].data[0].buttons, equals(0));
       packets.clear();
     },
@@ -1639,8 +1641,9 @@
       expect(packets, hasLength(1));
       expect(packets[0].data, hasLength(1));
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
-      expect(packets[0].data[0].physicalX, equals(900.0));
-      expect(packets[0].data[0].physicalY, equals(1900.0));
+      expect(packets[0].data[0].physicalX,
+          equals(900.0  * dpi));
+      expect(packets[0].data[0].physicalY, equals(1900.0 * dpi));
       packets.clear();
 
       // Release outside the glasspane.
@@ -1651,11 +1654,11 @@
       expect(packets, hasLength(1));
       expect(packets[0].data, hasLength(2));
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
-      expect(packets[0].data[0].physicalX, equals(1000.0));
-      expect(packets[0].data[0].physicalY, equals(2000.0));
+      expect(packets[0].data[0].physicalX, equals(1000.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(2000.0 * dpi));
       expect(packets[0].data[1].change, equals(ui.PointerChange.up));
-      expect(packets[0].data[1].physicalX, equals(1000.0));
-      expect(packets[0].data[1].physicalY, equals(2000.0));
+      expect(packets[0].data[1].physicalX, equals(1000.0 * dpi));
+      expect(packets[0].data[1].physicalY, equals(2000.0 * dpi));
       packets.clear();
     },
   );
@@ -1697,28 +1700,28 @@
       expect(data[0].change, equals(ui.PointerChange.add));
       expect(data[0].synthesized, equals(true));
       expect(data[0].device, equals(2));
-      expect(data[0].physicalX, equals(100));
-      expect(data[0].physicalY, equals(101));
+      expect(data[0].physicalX, equals(100 * dpi));
+      expect(data[0].physicalY, equals(101 * dpi));
 
       expect(data[1].change, equals(ui.PointerChange.down));
       expect(data[1].device, equals(2));
       expect(data[1].buttons, equals(1));
-      expect(data[1].physicalX, equals(100));
-      expect(data[1].physicalY, equals(101));
+      expect(data[1].physicalX, equals(100 * dpi));
+      expect(data[1].physicalY, equals(101 * dpi));
       expect(data[1].physicalDeltaX, equals(0));
       expect(data[1].physicalDeltaY, equals(0));
 
       expect(data[2].change, equals(ui.PointerChange.add));
       expect(data[2].synthesized, equals(true));
       expect(data[2].device, equals(3));
-      expect(data[2].physicalX, equals(200));
-      expect(data[2].physicalY, equals(201));
+      expect(data[2].physicalX, equals(200 * dpi));
+      expect(data[2].physicalY, equals(201 * dpi));
 
       expect(data[3].change, equals(ui.PointerChange.down));
       expect(data[3].device, equals(3));
       expect(data[3].buttons, equals(1));
-      expect(data[3].physicalX, equals(200));
-      expect(data[3].physicalY, equals(201));
+      expect(data[3].physicalX, equals(200 * dpi));
+      expect(data[3].physicalY, equals(201 * dpi));
       expect(data[3].physicalDeltaX, equals(0));
       expect(data[3].physicalDeltaY, equals(0));
       packets.clear();
@@ -1744,18 +1747,18 @@
       expect(data[0].change, equals(ui.PointerChange.move));
       expect(data[0].device, equals(3));
       expect(data[0].buttons, equals(1));
-      expect(data[0].physicalX, equals(300));
-      expect(data[0].physicalY, equals(302));
-      expect(data[0].physicalDeltaX, equals(100));
-      expect(data[0].physicalDeltaY, equals(101));
+      expect(data[0].physicalX, equals(300 * dpi));
+      expect(data[0].physicalY, equals(302 * dpi));
+      expect(data[0].physicalDeltaX, equals(100 * dpi));
+      expect(data[0].physicalDeltaY, equals(101 * dpi));
 
       expect(data[1].change, equals(ui.PointerChange.move));
       expect(data[1].device, equals(2));
       expect(data[1].buttons, equals(1));
-      expect(data[1].physicalX, equals(400));
-      expect(data[1].physicalY, equals(402));
-      expect(data[1].physicalDeltaX, equals(300));
-      expect(data[1].physicalDeltaY, equals(301));
+      expect(data[1].physicalX, equals(400 * dpi));
+      expect(data[1].physicalY, equals(402 * dpi));
+      expect(data[1].physicalDeltaX, equals(300 * dpi));
+      expect(data[1].physicalDeltaY, equals(301 * dpi));
       packets.clear();
 
       // One pointer up
@@ -1767,16 +1770,16 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.up));
       expect(packets[0].data[0].device, equals(3));
       expect(packets[0].data[0].buttons, equals(0));
-      expect(packets[0].data[0].physicalX, equals(300));
-      expect(packets[0].data[0].physicalY, equals(302));
+      expect(packets[0].data[0].physicalX, equals(300 * dpi));
+      expect(packets[0].data[0].physicalY, equals(302 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0));
       expect(packets[0].data[0].physicalDeltaY, equals(0));
 
       expect(packets[0].data[1].change, equals(ui.PointerChange.remove));
       expect(packets[0].data[1].device, equals(3));
       expect(packets[0].data[1].buttons, equals(0));
-      expect(packets[0].data[1].physicalX, equals(300));
-      expect(packets[0].data[1].physicalY, equals(302));
+      expect(packets[0].data[1].physicalX, equals(300 * dpi));
+      expect(packets[0].data[1].physicalY, equals(302 * dpi));
       expect(packets[0].data[1].physicalDeltaX, equals(0));
       expect(packets[0].data[1].physicalDeltaY, equals(0));
       packets.clear();
@@ -1790,16 +1793,16 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.up));
       expect(packets[0].data[0].device, equals(2));
       expect(packets[0].data[0].buttons, equals(0));
-      expect(packets[0].data[0].physicalX, equals(400));
-      expect(packets[0].data[0].physicalY, equals(402));
+      expect(packets[0].data[0].physicalX, equals(400 * dpi));
+      expect(packets[0].data[0].physicalY, equals(402 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0));
       expect(packets[0].data[0].physicalDeltaY, equals(0));
 
       expect(packets[0].data[1].change, equals(ui.PointerChange.remove));
       expect(packets[0].data[1].device, equals(2));
       expect(packets[0].data[1].buttons, equals(0));
-      expect(packets[0].data[1].physicalX, equals(400));
-      expect(packets[0].data[1].physicalY, equals(402));
+      expect(packets[0].data[1].physicalX, equals(400 * dpi));
+      expect(packets[0].data[1].physicalY, equals(402 * dpi));
       expect(packets[0].data[1].physicalDeltaX, equals(0));
       expect(packets[0].data[1].physicalDeltaY, equals(0));
       packets.clear();
@@ -1825,28 +1828,28 @@
       expect(data[0].change, equals(ui.PointerChange.add));
       expect(data[0].synthesized, equals(true));
       expect(data[0].device, equals(3));
-      expect(data[0].physicalX, equals(500));
-      expect(data[0].physicalY, equals(501));
+      expect(data[0].physicalX, equals(500 * dpi));
+      expect(data[0].physicalY, equals(501 * dpi));
 
       expect(data[1].change, equals(ui.PointerChange.down));
       expect(data[1].device, equals(3));
       expect(data[1].buttons, equals(1));
-      expect(data[1].physicalX, equals(500));
-      expect(data[1].physicalY, equals(501));
+      expect(data[1].physicalX, equals(500 * dpi));
+      expect(data[1].physicalY, equals(501 * dpi));
       expect(data[1].physicalDeltaX, equals(0));
       expect(data[1].physicalDeltaY, equals(0));
 
       expect(data[2].change, equals(ui.PointerChange.add));
       expect(data[2].synthesized, equals(true));
       expect(data[2].device, equals(2));
-      expect(data[2].physicalX, equals(600));
-      expect(data[2].physicalY, equals(601));
+      expect(data[2].physicalX, equals(600 * dpi));
+      expect(data[2].physicalY, equals(601 * dpi));
 
       expect(data[3].change, equals(ui.PointerChange.down));
       expect(data[3].device, equals(2));
       expect(data[3].buttons, equals(1));
-      expect(data[3].physicalX, equals(600));
-      expect(data[3].physicalY, equals(601));
+      expect(data[3].physicalX, equals(600 * dpi));
+      expect(data[3].physicalY, equals(601 * dpi));
       expect(data[3].physicalDeltaX, equals(0));
       expect(data[3].physicalDeltaY, equals(0));
       packets.clear();
@@ -1882,16 +1885,16 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.cancel));
       expect(packets[0].data[0].device, equals(3));
       expect(packets[0].data[0].buttons, equals(0));
-      expect(packets[0].data[0].physicalX, equals(200));
-      expect(packets[0].data[0].physicalY, equals(201));
+      expect(packets[0].data[0].physicalX, equals(200 * dpi));
+      expect(packets[0].data[0].physicalY, equals(201 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0));
       expect(packets[0].data[0].physicalDeltaY, equals(0));
 
       expect(packets[0].data[1].change, equals(ui.PointerChange.remove));
       expect(packets[0].data[1].device, equals(3));
       expect(packets[0].data[1].buttons, equals(0));
-      expect(packets[0].data[1].physicalX, equals(200));
-      expect(packets[0].data[1].physicalY, equals(201));
+      expect(packets[0].data[1].physicalX, equals(200 * dpi));
+      expect(packets[0].data[1].physicalY, equals(201 * dpi));
       expect(packets[0].data[1].physicalDeltaX, equals(0));
       expect(packets[0].data[1].physicalDeltaY, equals(0));
       packets.clear();
@@ -1963,16 +1966,16 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.add));
       expect(packets[0].data[0].pointerIdentifier, equals(1));
       expect(packets[0].data[0].synthesized, equals(true));
-      expect(packets[0].data[0].physicalX, equals(20.0));
-      expect(packets[0].data[0].physicalY, equals(20.0));
+      expect(packets[0].data[0].physicalX, equals(20.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(20.0 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0.0));
       expect(packets[0].data[0].physicalDeltaY, equals(0.0));
 
       expect(packets[0].data[1].change, equals(ui.PointerChange.down));
       expect(packets[0].data[1].pointerIdentifier, equals(1));
       expect(packets[0].data[1].synthesized, equals(false));
-      expect(packets[0].data[1].physicalX, equals(20.0));
-      expect(packets[0].data[1].physicalY, equals(20.0));
+      expect(packets[0].data[1].physicalX, equals(20.0 * dpi));
+      expect(packets[0].data[1].physicalY, equals(20.0 * dpi));
       expect(packets[0].data[1].physicalDeltaX, equals(0.0));
       expect(packets[0].data[1].physicalDeltaY, equals(0.0));
       packets.clear();
@@ -1985,10 +1988,10 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.move));
       expect(packets[0].data[0].pointerIdentifier, equals(1));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(40.0));
-      expect(packets[0].data[0].physicalY, equals(30.0));
-      expect(packets[0].data[0].physicalDeltaX, equals(20.0));
-      expect(packets[0].data[0].physicalDeltaY, equals(10.0));
+      expect(packets[0].data[0].physicalX, equals(40.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(30.0 * dpi));
+      expect(packets[0].data[0].physicalDeltaX, equals(20.0 * dpi));
+      expect(packets[0].data[0].physicalDeltaY, equals(10.0 * dpi));
       packets.clear();
 
       context.multiTouchUp(<_TouchDetails>[
@@ -1999,16 +2002,16 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.up));
       expect(packets[0].data[0].pointerIdentifier, equals(1));
       expect(packets[0].data[0].synthesized, equals(false));
-      expect(packets[0].data[0].physicalX, equals(40.0));
-      expect(packets[0].data[0].physicalY, equals(30.0));
+      expect(packets[0].data[0].physicalX, equals(40.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(30.0 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0.0));
       expect(packets[0].data[0].physicalDeltaY, equals(0.0));
 
       expect(packets[0].data[1].change, equals(ui.PointerChange.remove));
       expect(packets[0].data[1].pointerIdentifier, equals(1));
       expect(packets[0].data[1].synthesized, equals(true));
-      expect(packets[0].data[1].physicalX, equals(40.0));
-      expect(packets[0].data[1].physicalY, equals(30.0));
+      expect(packets[0].data[1].physicalX, equals(40.0 * dpi));
+      expect(packets[0].data[1].physicalY, equals(30.0 * dpi));
       expect(packets[0].data[1].physicalDeltaX, equals(0.0));
       expect(packets[0].data[1].physicalDeltaY, equals(0.0));
       packets.clear();
@@ -2021,16 +2024,16 @@
       expect(packets[0].data[0].change, equals(ui.PointerChange.add));
       expect(packets[0].data[0].pointerIdentifier, equals(2));
       expect(packets[0].data[0].synthesized, equals(true));
-      expect(packets[0].data[0].physicalX, equals(20.0));
-      expect(packets[0].data[0].physicalY, equals(10.0));
+      expect(packets[0].data[0].physicalX, equals(20.0 * dpi));
+      expect(packets[0].data[0].physicalY, equals(10.0 * dpi));
       expect(packets[0].data[0].physicalDeltaX, equals(0.0));
       expect(packets[0].data[0].physicalDeltaY, equals(0.0));
 
       expect(packets[0].data[1].change, equals(ui.PointerChange.down));
       expect(packets[0].data[1].pointerIdentifier, equals(2));
       expect(packets[0].data[1].synthesized, equals(false));
-      expect(packets[0].data[1].physicalX, equals(20.0));
-      expect(packets[0].data[1].physicalY, equals(10.0));
+      expect(packets[0].data[1].physicalX, equals(20.0 * dpi));
+      expect(packets[0].data[1].physicalY, equals(10.0 * dpi));
       expect(packets[0].data[1].physicalDeltaX, equals(0.0));
       expect(packets[0].data[1].physicalDeltaY, equals(0.0));
       packets.clear();
diff --git a/lib/web_ui/test/engine/surface/scene_builder_test.dart b/lib/web_ui/test/engine/surface/scene_builder_test.dart
index c858811..4fca45a 100644
--- a/lib/web_ui/test/engine/surface/scene_builder_test.dart
+++ b/lib/web_ui/test/engine/surface/scene_builder_test.dart
@@ -39,8 +39,7 @@
     test('pushTransform implements surface lifecycle', () {
       testLayerLifeCycle((SceneBuilder sceneBuilder, EngineLayer oldLayer) {
         return sceneBuilder.pushTransform(
-            Matrix4.translationValues(10, 20, 0).toFloat64(),
-            oldLayer: oldLayer);
+            (Matrix4.identity()..scale(html.window.devicePixelRatio)).toFloat64());
       }, () {
         return '''<s><flt-transform></flt-transform></s>''';
       });
diff --git a/lib/web_ui/test/engine/surface/surface_test.dart b/lib/web_ui/test/engine/surface/surface_test.dart
index d8c2cea..2f3adae 100644
--- a/lib/web_ui/test/engine/surface/surface_test.dart
+++ b/lib/web_ui/test/engine/surface/surface_test.dart
@@ -159,7 +159,8 @@
       final _LoggingTestSurface logger = _LoggingTestSurface();
       final SurfaceSceneBuilder builder1 = SurfaceSceneBuilder();
       final PersistedTransform a1 =
-          builder1.pushTransform(Matrix4.identity().toFloat64());
+          builder1.pushTransform(
+              (Matrix4.identity()..scale(html.window.devicePixelRatio)).toFloat64());
       final PersistedOpacity b1 = builder1.pushOpacity(100);
       final PersistedTransform c1 =
           builder1.pushTransform(Matrix4.identity().toFloat64());
@@ -179,7 +180,9 @@
 
       final SurfaceSceneBuilder builder2 = SurfaceSceneBuilder();
       final PersistedTransform a2 =
-          builder2.pushTransform(Matrix4.identity().toFloat64(), oldLayer: a1);
+          builder2.pushTransform(
+              (Matrix4.identity()..scale(html.window.devicePixelRatio)).toFloat64(),
+              oldLayer: a1);
       final PersistedTransform c2 =
           builder2.pushTransform(Matrix4.identity().toFloat64(), oldLayer: c1);
       builder2.addRetained(logger);