Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1221)

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac.mm

Issue 2122023002: Cross-process frames should be notified of device scale factor changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Version of patch without second test. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/render_widget_host_view_mac.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 9ed2ca7aa7dc5d3a31afe4ab72d0e02bb451f421..c43510053377aff0f40eb803bc4ddd34e8f5aa3f 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -376,28 +376,6 @@ NSWindow* ApparentWindowForView(NSView* view) {
return enclosing_window;
}
-blink::WebScreenInfo GetWebScreenInfo(NSView* view) {
- display::Display display =
- display::Screen::GetScreen()->GetDisplayNearestWindow(view);
-
- NSScreen* screen = [NSScreen deepestScreen];
-
- blink::WebScreenInfo results;
-
- results.deviceScaleFactor = static_cast<int>(display.device_scale_factor());
- results.depth = NSBitsPerPixelFromDepth([screen depth]);
- results.depthPerComponent = NSBitsPerSampleFromDepth([screen depth]);
- results.isMonochrome =
- [[screen colorSpace] colorSpaceModel] == NSGrayColorSpaceModel;
- results.rect = display.bounds();
- results.availableRect = display.work_area();
- results.orientationAngle = display.RotationAsDegree();
- results.orientationType =
- content::RenderWidgetHostViewBase::GetOrientationTypeForDesktop(display);
-
- return results;
-}
-
} // namespace
namespace content {
@@ -469,15 +447,6 @@ void RenderWidgetHostViewMac::AcceleratedWidgetSwapCompleted() {
}
///////////////////////////////////////////////////////////////////////////////
-// RenderWidgetHostViewBase, public:
-
-// static
-void RenderWidgetHostViewBase::GetDefaultScreenInfo(
- blink::WebScreenInfo* results) {
- *results = GetWebScreenInfo(NULL);
-}
-
-///////////////////////////////////////////////////////////////////////////////
// RenderWidgetHostViewMac, public:
RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget,
@@ -1334,10 +1303,6 @@ void RenderWidgetHostViewMac::ClearCompositorFrame() {
browser_compositor_->GetDelegatedFrameHost()->ClearDelegatedFrame();
}
-void RenderWidgetHostViewMac::GetScreenInfo(blink::WebScreenInfo* results) {
- *results = GetWebScreenInfo(GetNativeView());
-}
-
gfx::Rect RenderWidgetHostViewMac::GetBoundsInRootWindow() {
// TODO(shess): In case of !window, the view has been removed from
// the view hierarchy because the tab isn't main. Could retrieve
@@ -1609,11 +1574,18 @@ void RenderWidgetHostViewMac::OnDisplayRemoved(
void RenderWidgetHostViewMac::OnDisplayMetricsChanged(
const display::Display& display,
- uint32_t metrics) {
+ uint32_t changed_metrics) {
display::Screen* screen = display::Screen::GetScreen();
if (display.id() != screen->GetDisplayNearestWindow(cocoa_view_).id())
return;
+ if (changed_metrics & DisplayObserver::DISPLAY_METRIC_DEVICE_SCALE_FACTOR) {
+ RenderWidgetHostImpl* host =
+ RenderWidgetHostImpl::From(GetRenderWidgetHost());
+ if (host && host->delegate())
+ host->delegate()->UpdateDeviceScaleFactor(display.device_scale_factor());
+ }
+
UpdateScreenInfo(cocoa_view_);
}

Powered by Google App Engine
This is Rietveld 408576698