diff options
author | varunjain@chromium.org <varunjain@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-15 23:26:53 +0000 |
---|---|---|
committer | varunjain@chromium.org <varunjain@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-15 23:26:53 +0000 |
commit | 6131a644b12d6359630c118a21c609a15d2f5c21 (patch) | |
tree | 5649b7074bcc561c842816109d8a2c7565491f63 | |
parent | fad7367a498d80a4c3e9e91342ffdfbaa7a4c3c6 (diff) | |
download | chromium_src-6131a644b12d6359630c118a21c609a15d2f5c21.zip chromium_src-6131a644b12d6359630c118a21c609a15d2f5c21.tar.gz chromium_src-6131a644b12d6359630c118a21c609a15d2f5c21.tar.bz2 |
Listen to display settings provider for work area size changes and send those
changes to the renderer.
BUG=126586
TEST=manual
Review URL: https://chromiumcodereview.appspot.com/10407023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142519 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | content/browser/renderer_host/render_view_host_impl.cc | 15 | ||||
-rw-r--r-- | content/browser/renderer_host/render_widget_host_impl.cc | 23 | ||||
-rw-r--r-- | content/browser/renderer_host/render_widget_host_impl.h | 5 | ||||
-rw-r--r-- | content/browser/renderer_host/render_widget_host_view_base.cc | 17 | ||||
-rw-r--r-- | content/browser/renderer_host/render_widget_host_view_base.h | 7 | ||||
-rw-r--r-- | content/browser/renderer_host/render_widget_host_view_gtk.cc | 1 | ||||
-rw-r--r-- | content/browser/renderer_host/render_widget_host_view_mac.mm | 30 | ||||
-rw-r--r-- | content/browser/web_contents/web_contents_view_win.cc | 79 | ||||
-rw-r--r-- | content/browser/web_contents/web_contents_view_win.h | 9 | ||||
-rw-r--r-- | content/common/view_messages.h | 3 | ||||
-rw-r--r-- | content/renderer/render_widget.cc | 6 | ||||
-rw-r--r-- | content/renderer/render_widget.h | 1 | ||||
-rw-r--r-- | ui/gfx/screen_android.cc | 5 | ||||
-rw-r--r-- | ui/gfx/screen_mac.mm | 14 |
14 files changed, 195 insertions, 20 deletions
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc index 9ea4705..7cd2ccd 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc @@ -248,19 +248,8 @@ bool RenderViewHostImpl::CreateRenderView( params.opener_route_id = opener_route_id; params.swapped_out = is_swapped_out_; params.next_page_id = next_page_id; -#if defined(OS_POSIX) || defined(USE_AURA) - if (GetView()) { - static_cast<content::RenderWidgetHostViewPort*>( - GetView())->GetScreenInfo(¶ms.screen_info); - } else { - content::RenderWidgetHostViewPort::GetDefaultScreenInfo( - ¶ms.screen_info); - } -#else - params.screen_info = - WebKit::WebScreenInfoFactory::screenInfo( - gfx::NativeViewFromId(GetNativeViewId())); -#endif + GetWebScreenInfo(¶ms.screen_info); + params.embedder_channel_name = embedder_channel_name; params.embedder_container_id = embedder_container_id; params.accessibility_mode = diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index 5cc4cf5..069ece8 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc @@ -38,6 +38,9 @@ #include "skia/ext/image_operations.h" #include "skia/ext/platform_canvas.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebCompositionUnderline.h" +#if defined(OS_WIN) +#include "third_party/WebKit/Source/WebKit/chromium/public/win/WebScreenInfoFactory.h" +#endif #include "ui/base/keycodes/keyboard_codes.h" #include "ui/gfx/skbitmap_operations.h" #include "webkit/glue/webcursor.h" @@ -968,6 +971,12 @@ void RenderWidgetHostImpl::RemoveKeyboardListener( keyboard_listeners_.remove(listener); } +void RenderWidgetHostImpl::NotifyScreenInfoChanged() { + WebKit::WebScreenInfo screen_info; + GetWebScreenInfo(&screen_info); + Send(new ViewMsg_ScreenInfoChanged(GetRoutingID(), screen_info)); +} + void RenderWidgetHostImpl::SetDeviceScaleFactor(float scale) { Send(new ViewMsg_SetDeviceScaleFactor(GetRoutingID(), scale)); } @@ -1099,6 +1108,20 @@ void RenderWidgetHostImpl::SetShouldAutoResize(bool enable) { should_auto_resize_ = enable; } +void RenderWidgetHostImpl::GetWebScreenInfo(WebKit::WebScreenInfo* result) { +#if defined(OS_POSIX) || defined(USE_AURA) + if (GetView()) { + static_cast<content::RenderWidgetHostViewPort*>( + GetView())->GetScreenInfo(result); + } else { + content::RenderWidgetHostViewPort::GetDefaultScreenInfo(result); + } +#else + *result = WebKit::WebScreenInfoFactory::screenInfo( + gfx::NativeViewFromId(GetNativeViewId())); +#endif +} + void RenderWidgetHostImpl::Destroy() { NotificationService::current()->Notify( NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h index 4be8960..e0ca4c5 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h @@ -122,6 +122,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl : virtual public RenderWidgetHost, virtual void RemoveKeyboardListener(KeyboardListener* listener) OVERRIDE; virtual void SetDeviceScaleFactor(float scale) OVERRIDE; + // Notification that the screen info has changed. + virtual void NotifyScreenInfoChanged(); + // Sets the View of this RenderWidgetHost. void SetView(RenderWidgetHostView* view); @@ -431,6 +434,8 @@ class CONTENT_EXPORT RenderWidgetHostImpl : virtual public RenderWidgetHost, int increment_in_flight_event_count() { return ++in_flight_event_count_; } int decrement_in_flight_event_count() { return --in_flight_event_count_; } + void GetWebScreenInfo(WebKit::WebScreenInfo* result); + // The View associated with the RenderViewHost. The lifetime of this object // is associated with the lifetime of the Render process. If the Renderer // crashes, its View is destroyed and this pointer becomes NULL, even though diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc index 28a45bb..56e70dd 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.cc +++ b/content/browser/renderer_host/render_widget_host_view_base.cc @@ -8,6 +8,8 @@ #include "content/browser/accessibility/browser_accessibility_manager.h" #include "content/browser/renderer_host/render_widget_host_impl.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebScreenInfo.h" +#include "ui/gfx/display.h" +#include "ui/gfx/screen.h" #if defined(TOOLKIT_GTK) #include <gdk/gdkx.h> @@ -95,4 +97,19 @@ void RenderWidgetHostViewBase::SetBrowserAccessibilityManager( browser_accessibility_manager_.reset(manager); } +void RenderWidgetHostViewBase::UpdateScreenInfo() { + gfx::Display monitor = gfx::Screen::GetMonitorNearestPoint( + GetViewBounds().origin()); + if (current_display_area_ == monitor.bounds() && + current_device_scale_factor_ == monitor.device_scale_factor()) + return; + current_display_area_ = monitor.bounds(); + current_device_scale_factor_ = monitor.device_scale_factor(); + if (GetRenderWidgetHost()) { + RenderWidgetHostImpl* impl = + RenderWidgetHostImpl::From(GetRenderWidgetHost()); + impl->NotifyScreenInfoChanged(); + } +} + } // namespace content diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h index ce60078..d6da2e3 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h @@ -22,6 +22,7 @@ #include "content/common/content_export.h" #include "content/port/browser/render_widget_host_view_port.h" #include "ui/base/range/range.h" +#include "ui/gfx/rect.h" namespace content { @@ -61,6 +62,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase void SetBrowserAccessibilityManager(BrowserAccessibilityManager* manager); + // Notification that a resize or move session ended on the native widget. + void UpdateScreenInfo(); + protected: // Interface class only, do not construct. RenderWidgetHostViewBase(); @@ -97,6 +101,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase // Manager of the tree representation of the WebKit render tree. scoped_ptr<BrowserAccessibilityManager> browser_accessibility_manager_; + gfx::Rect current_display_area_; + float current_device_scale_factor_; + DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewBase); }; diff --git a/content/browser/renderer_host/render_widget_host_view_gtk.cc b/content/browser/renderer_host/render_widget_host_view_gtk.cc index c6999c2..5292270 100644 --- a/content/browser/renderer_host/render_widget_host_view_gtk.cc +++ b/content/browser/renderer_host/render_widget_host_view_gtk.cc @@ -207,6 +207,7 @@ class RenderWidgetHostViewGtkWidget { GdkEventConfigure* event, RenderWidgetHostViewGtk* host_view) { host_view->MarkCachedWidgetCenterStale(); + host_view->UpdateScreenInfo(); return FALSE; } 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 d0e675c..469bea3 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -158,6 +158,7 @@ float ScaleFactor(NSView* view) { - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv; - (void)cancelChildPopups; - (void)windowDidChangeBackingProperties:(NSNotification*)notification; +- (void)windowChangedScreen:(NSNotification*)notification; - (void)checkForPluginImeCancellation; - (void)updateTabBackingStoreScaleFactor; @end @@ -1328,10 +1329,17 @@ void RenderWidgetHostViewMac::SetTextInputActive(bool active) { } handlingGlobalFrameDidChange_ = NO; [[NSNotificationCenter defaultCenter] - addObserver:self - selector:@selector(globalFrameDidChange:) - name:NSViewGlobalFrameDidChangeNotification - object:self]; + addObserver:self + selector:@selector(globalFrameDidChange:) + name:NSViewGlobalFrameDidChangeNotification + object:self]; + if ([self window]) { + [[NSNotificationCenter defaultCenter] + addObserver:self + selector:@selector(windowChangedScreen:) + name:NSWindowDidChangeScreenNotification + object:[self window]]; + } } return self; } @@ -1882,7 +1890,10 @@ void RenderWidgetHostViewMac::SetTextInputActive(bool active) { removeObserver:self name:NSWindowDidChangeBackingPropertiesNotification object:[self window]]; - + [[NSNotificationCenter defaultCenter] + removeObserver:self + name:NSWindowDidChangeScreenNotification + object:[self window]]; } if (newWindow) { [[NSNotificationCenter defaultCenter] @@ -1890,6 +1901,11 @@ void RenderWidgetHostViewMac::SetTextInputActive(bool active) { selector:@selector(windowDidChangeBackingProperties:) name:NSWindowDidChangeBackingPropertiesNotification object:newWindow]; + [[NSNotificationCenter defaultCenter] + addObserver:self + selector:@selector(windowChangedScreen:) + name:NSWindowDidChangeScreenNotification + object:newWindow]; } } @@ -1939,6 +1955,10 @@ void RenderWidgetHostViewMac::SetTextInputActive(bool active) { handlingGlobalFrameDidChange_ = NO; } +- (void)windowChangedScreen:(NSNotification*)notification { + renderWidgetHostView_->UpdateScreenInfo(); +} + - (void)setFrameSize:(NSSize)newSize { // NB: -[NSView setFrame:] calls through -setFrameSize:, so overriding // -setFrame: isn't neccessary. diff --git a/content/browser/web_contents/web_contents_view_win.cc b/content/browser/web_contents/web_contents_view_win.cc index 3d7a9a8..12a11cb 100644 --- a/content/browser/web_contents/web_contents_view_win.cc +++ b/content/browser/web_contents/web_contents_view_win.cc @@ -5,6 +5,7 @@ #include "content/browser/web_contents/web_contents_view_win.h" #include "base/bind.h" +#include "base/memory/scoped_vector.h" #include "content/browser/renderer_host/render_view_host_factory.h" #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/browser/renderer_host/render_widget_host_view_win.h" @@ -14,6 +15,7 @@ #include "content/browser/web_contents/web_drag_dest_win.h" #include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_view_delegate.h" +#include "ui/base/win/hwnd_subclass.h" #include "ui/gfx/screen.h" using content::RenderViewHost; @@ -71,6 +73,60 @@ class TempParent : public ui::WindowImpl { END_MSG_MAP() }; +typedef std::map<HWND, WebContentsViewWin*> HwndToWcvMap; +HwndToWcvMap hwnd_to_wcv_map; + +void RemoveHwndToWcvMapEntry(WebContentsViewWin* wcv) { + HwndToWcvMap::iterator it; + for (it = hwnd_to_wcv_map.begin(); it != hwnd_to_wcv_map.end();) { + if (it->second == wcv) + hwnd_to_wcv_map.erase(it++); + else + ++it; + } +} + +BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam) { + HwndToWcvMap::iterator it = hwnd_to_wcv_map.find(hwnd); + if (it == hwnd_to_wcv_map.end()) + return TRUE; // must return TRUE to continue enumeration. + WebContentsViewWin* wcv = it->second; + RenderWidgetHostViewWin* rwhv = static_cast<RenderWidgetHostViewWin*>( + wcv->web_contents()->GetRenderWidgetHostView()); + if (rwhv) + rwhv->UpdateScreenInfo(); + + return TRUE; // must return TRUE to continue enumeration. +} + +class PositionChangedMessageFilter : public ui::HWNDMessageFilter { + public: + PositionChangedMessageFilter() {} + + private: + // Overridden from ui::HWNDMessageFilter: + virtual bool FilterMessage(HWND hwnd, + UINT message, + WPARAM w_param, + LPARAM l_param, + LRESULT* l_result) OVERRIDE { + if (message == WM_WINDOWPOSCHANGED) + EnumChildWindows(hwnd, EnumChildProc, 0); + + return false; + } + + DISALLOW_COPY_AND_ASSIGN(PositionChangedMessageFilter); +}; + +void AddFilterToParentHwndSubclass(HWND hwnd, ui::HWNDMessageFilter* filter) { + HWND parent = ::GetAncestor(hwnd, GA_ROOT); + if (parent) { + ui::HWNDSubclass::RemoveFilterFromAllTargets(filter); + ui::HWNDSubclass::AddFilterToTarget(parent, filter); + } +} + } // namespace namespace WebContentsViewWin::WebContentsViewWin(WebContentsImpl* web_contents, @@ -78,10 +134,13 @@ WebContentsViewWin::WebContentsViewWin(WebContentsImpl* web_contents, : web_contents_(web_contents), view_(NULL), delegate_(delegate), - close_tab_after_drag_ends_(false) { + close_tab_after_drag_ends_(false), + hwnd_message_filter_(new PositionChangedMessageFilter) { } WebContentsViewWin::~WebContentsViewWin() { + RemoveHwndToWcvMapEntry(this); + if (IsWindow(hwnd())) DestroyWindow(hwnd()); } @@ -299,6 +358,13 @@ void WebContentsViewWin::CloseTab() { rvh->GetDelegate()->Close(rvh); } +LRESULT WebContentsViewWin::OnCreate( + UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { + hwnd_to_wcv_map.insert(std::make_pair(hwnd(), this)); + AddFilterToParentHwndSubclass(hwnd(), hwnd_message_filter_.get()); + return 0; +} + LRESULT WebContentsViewWin::OnDestroy( UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { if (drag_dest_.get()) { @@ -310,6 +376,10 @@ LRESULT WebContentsViewWin::OnDestroy( LRESULT WebContentsViewWin::OnWindowPosChanged( UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { + + // Our parent might have changed. So we re-install our hwnd message filter. + AddFilterToParentHwndSubclass(hwnd(), hwnd_message_filter_.get()); + WINDOWPOS* window_pos = reinterpret_cast<WINDOWPOS*>(lparam); if (window_pos->flags & SWP_HIDEWINDOW) { web_contents_->HideContents(); @@ -321,6 +391,12 @@ LRESULT WebContentsViewWin::OnWindowPosChanged( if (window_pos->flags & SWP_SHOWWINDOW) web_contents_->ShowContents(); + RenderWidgetHostView* rwhv = web_contents_->GetRenderWidgetHostView(); + if (rwhv) { + RenderWidgetHostViewWin* view = static_cast<RenderWidgetHostViewWin*>(rwhv); + view->UpdateScreenInfo(); + } + // Unless we were specifically told not to size, cause the renderer to be // sized to the new bounds, which forces a repaint. Not required for the // simple minimize-restore case described above, for example, since the @@ -331,7 +407,6 @@ LRESULT WebContentsViewWin::OnWindowPosChanged( gfx::Size size(window_pos->cx, window_pos->cy); if (web_contents_->GetInterstitialPage()) web_contents_->GetInterstitialPage()->SetSize(size); - RenderWidgetHostView* rwhv = web_contents_->GetRenderWidgetHostView(); if (rwhv) rwhv->SetSize(size); diff --git a/content/browser/web_contents/web_contents_view_win.h b/content/browser/web_contents/web_contents_view_win.h index 016e359..2e69f80 100644 --- a/content/browser/web_contents/web_contents_view_win.h +++ b/content/browser/web_contents/web_contents_view_win.h @@ -24,6 +24,10 @@ namespace content { class WebContentsViewDelegate; } +namespace ui { +class HWNDMessageFilter; +} + // An implementation of WebContentsView for Windows. class CONTENT_EXPORT WebContentsViewWin : public content::WebContentsView, @@ -35,6 +39,7 @@ class CONTENT_EXPORT WebContentsViewWin virtual ~WebContentsViewWin(); BEGIN_MSG_MAP_EX(WebContentsViewWin) + MESSAGE_HANDLER(WM_CREATE, OnCreate) MESSAGE_HANDLER(WM_DESTROY, OnDestroy) MESSAGE_HANDLER(WM_WINDOWPOSCHANGED, OnWindowPosChanged) MESSAGE_HANDLER(WM_LBUTTONDOWN, OnMouseDown) @@ -98,6 +103,8 @@ class CONTENT_EXPORT WebContentsViewWin void EndDragging(); void CloseTab(); + LRESULT OnCreate( + UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled); LRESULT OnDestroy( UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled); LRESULT OnWindowPosChanged( @@ -140,6 +147,8 @@ class CONTENT_EXPORT WebContentsViewWin // Used to close the tab after the stack has unwound. base::OneShotTimer<WebContentsViewWin> close_tab_timer_; + scoped_ptr<ui::HWNDMessageFilter> hwnd_message_filter_; + DISALLOW_COPY_AND_ASSIGN(WebContentsViewWin); }; diff --git a/content/common/view_messages.h b/content/common/view_messages.h index 7d5c48e..49fef05 100644 --- a/content/common/view_messages.h +++ b/content/common/view_messages.h @@ -1133,6 +1133,9 @@ IPC_MESSAGE_ROUTED1(ViewMsg_Repaint, // started. IPC_MESSAGE_ROUTED0(ViewMsg_MoveOrResizeStarted) +IPC_MESSAGE_ROUTED1(ViewMsg_ScreenInfoChanged, + WebKit::WebScreenInfo /* screen_info */) + // Reply to ViewHostMsg_RequestMove, ViewHostMsg_ShowView, and // ViewHostMsg_ShowWidget to inform the renderer that the browser has // processed the move. The browser may have ignored the move, but it finished diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc index 12cad67..3449f3e5 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc @@ -238,6 +238,7 @@ bool RenderWidget::OnMessageReceived(const IPC::Message& message) { IPC_MESSAGE_HANDLER(ViewMsg_SetDeviceScaleFactor, OnSetDeviceScaleFactor) IPC_MESSAGE_HANDLER(ViewMsg_SetTextDirection, OnSetTextDirection) IPC_MESSAGE_HANDLER(ViewMsg_Move_ACK, OnRequestMoveAck) + IPC_MESSAGE_HANDLER(ViewMsg_ScreenInfoChanged, OnScreenInfoChanged) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() return handled; @@ -1508,6 +1509,11 @@ void RenderWidget::OnSetTextDirection(WebTextDirection direction) { webwidget_->setTextDirection(direction); } +void RenderWidget::OnScreenInfoChanged( + const WebKit::WebScreenInfo& screen_info) { + screen_info_ = screen_info; +} + webkit::ppapi::PluginInstance* RenderWidget::GetBitmapForOptimizedPluginPaint( const gfx::Rect& paint_bounds, TransportDIB** dib, diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h index 6411374..b048558 100644 --- a/content/renderer/render_widget.h +++ b/content/renderer/render_widget.h @@ -257,6 +257,7 @@ class CONTENT_EXPORT RenderWidget virtual void OnSetDeviceScaleFactor(float device_scale_factor); void OnSetTextDirection(WebKit::WebTextDirection direction); void OnGetFPS(); + void OnScreenInfoChanged(const WebKit::WebScreenInfo& screen_info); // Override points to notify derived classes that a paint has happened. // WillInitiatePaint happens when we're about to generate a new bitmap and diff --git a/ui/gfx/screen_android.cc b/ui/gfx/screen_android.cc index fa30aef..576afab 100644 --- a/ui/gfx/screen_android.cc +++ b/ui/gfx/screen_android.cc @@ -26,6 +26,11 @@ gfx::Display Screen::GetMonitorNearestWindow(gfx::NativeView view) { } // static +gfx::Display Screen::GetMonitorNearestPoint(const gfx::Point& point) { + return GetPrimaryMonitor(); +} + +// static int Screen::GetNumMonitors() { return 1; } diff --git a/ui/gfx/screen_mac.mm b/ui/gfx/screen_mac.mm index 5c6d3a1..7960447 100644 --- a/ui/gfx/screen_mac.mm +++ b/ui/gfx/screen_mac.mm @@ -147,4 +147,18 @@ int Screen::GetNumMonitors() { return display_count; } +// static +gfx::Display Screen::GetMonitorNearestPoint(const gfx::Point& point) { + NSPoint ns_point = NSPointFromCGPoint(point.ToCGPoint()); + + NSArray* screens = [NSScreen screens]; + NSScreen* primary = [screens objectAtIndex:0]; + for (NSScreen* screen in screens) { + if (NSMouseInRect(ns_point, [screen frame], NO)) + return GetDisplayForScreen(screen, screen == primary); + } + NOTREACHED(); + return gfx::Display(); +} + } // namespace gfx |