blob: 21b2b4087e75e0926ff1647c1701654629fe4d72 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
--- a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
@@ -34,0 +35 @@
+#include "base/numerics/safe_conversions.h"
@@ -1186,26 +1187,26 @@
if (!opener_emulator_scale_) {
return;
}
- screen_rect.set_x(
+ screen_rect.set_x(base::ClampRound(
opener_widget_screen_origin_.x() +
(screen_rect.x() - opener_original_widget_screen_origin_.x()) /
- opener_emulator_scale_);
- screen_rect.set_y(
+ opener_emulator_scale_));
+ screen_rect.set_y(base::ClampRound(
opener_widget_screen_origin_.y() +
(screen_rect.y() - opener_original_widget_screen_origin_.y()) /
- opener_emulator_scale_);
+ opener_emulator_scale_));
}
void WebPagePopupImpl::EmulatedToScreenRect(gfx::Rect& screen_rect) {
if (!opener_emulator_scale_) {
return;
}
- screen_rect.set_x(opener_original_widget_screen_origin_.x() +
+ screen_rect.set_x(base::ClampRound(opener_original_widget_screen_origin_.x() +
(screen_rect.x() - opener_widget_screen_origin_.x()) *
- opener_emulator_scale_);
- screen_rect.set_y(opener_original_widget_screen_origin_.y() +
+ opener_emulator_scale_));
+ screen_rect.set_y(base::ClampRound(opener_original_widget_screen_origin_.y() +
(screen_rect.y() - opener_widget_screen_origin_.y()) *
- opener_emulator_scale_);
+ opener_emulator_scale_));
}
std::unique_ptr<cc::LayerTreeFrameSink>
|