Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_view_aura.cc |
| diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc |
| index 432764d22a194df81312f362ead0fe287188994e..e6472010081282d89f0a8ece5fcd32f94436e02f 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_aura.cc |
| +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc |
| @@ -414,7 +414,6 @@ RenderWidgetHostViewAura::RenderWidgetHostViewAura(RenderWidgetHost* host, |
| bool is_guest_view_hack) |
| : host_(RenderWidgetHostImpl::From(host)), |
| window_(new aura::Window(this)), |
| - delegated_frame_host_(new DelegatedFrameHost(this)), |
| in_shutdown_(false), |
| in_bounds_changed_(false), |
| is_fullscreen_(false), |
| @@ -478,6 +477,7 @@ void RenderWidgetHostViewAura::InitAsChild( |
| window_->Init(aura::WINDOW_LAYER_SOLID_COLOR); |
| window_->SetName("RenderWidgetHostViewAura"); |
| window_->layer()->SetColor(background_color_); |
| + delegated_frame_host_.reset(new DelegatedFrameHost(this, window_->layer())); |
| } |
| void RenderWidgetHostViewAura::InitAsPopup( |
| @@ -507,6 +507,7 @@ void RenderWidgetHostViewAura::InitAsPopup( |
| window_->Init(aura::WINDOW_LAYER_SOLID_COLOR); |
| window_->SetName("RenderWidgetHostViewAura"); |
| window_->layer()->SetColor(background_color_); |
| + delegated_frame_host_.reset(new DelegatedFrameHost(this, window_->layer())); |
| // Setting the transient child allows for the popup to get mouse events when |
| // in a system modal dialog. Do this before calling ParentWindowWithContext |
| @@ -536,6 +537,7 @@ void RenderWidgetHostViewAura::InitAsFullscreen( |
| window_->SetName("RenderWidgetHostViewAura"); |
| window_->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); |
| window_->layer()->SetColor(background_color_); |
| + delegated_frame_host_.reset(new DelegatedFrameHost(this, window_->layer())); |
| aura::Window* parent = NULL; |
| gfx::Rect bounds; |
| @@ -2583,32 +2585,32 @@ SkColorType RenderWidgetHostViewAura::PreferredReadbackFormat() { |
| //////////////////////////////////////////////////////////////////////////////// |
| // DelegatedFrameHost, public: |
| -ui::Layer* RenderWidgetHostViewAura::GetLayer() { |
| - return window_->layer(); |
| +bool RenderWidgetHostViewAura::DelegatedFrameHostIsVisible() const { |
| + return !host_->is_hidden(); |
| } |
| -RenderWidgetHostImpl* RenderWidgetHostViewAura::GetHost() { |
| - return host_; |
| -} |
| - |
| -bool RenderWidgetHostViewAura::IsVisible() { |
| - return IsShowing(); |
| -} |
| - |
| -gfx::Size RenderWidgetHostViewAura::DesiredFrameSize() { |
| +gfx::Size RenderWidgetHostViewAura::DelegatedFrameHostDesiredSizeInDIP() const { |
| return window_->bounds().size(); |
| } |
| -float RenderWidgetHostViewAura::CurrentDeviceScaleFactor() { |
| - return current_device_scale_factor_; |
| -} |
| +bool RenderWidgetHostViewAura::DelegatedFrameCanCreateResizeLock() const { |
| + // On Windows and Linux, holding pointer moves will not help throttling |
|
danakj
2015/01/24 01:45:01
You probably need to move the comment inside the #
|
| + // resizes. |
| + // TODO(piman): on Windows we need to block (nested message loop?) the |
| + // WM_SIZE event. On Linux we need to throttle at the WM level using |
| + // _NET_WM_SYNC_REQUEST. |
| +#if !defined(OS_CHROMEOS) |
| + return false; |
| +#endif |
| + |
| + if (host_->auto_resize_enabled()) |
| + return false; |
| -gfx::Size RenderWidgetHostViewAura::ConvertViewSizeToPixel( |
| - const gfx::Size& size) { |
| - return content::ConvertViewSizeToPixel(this, size); |
| + return true; |
| } |
| -scoped_ptr<ResizeLock> RenderWidgetHostViewAura::CreateResizeLock( |
| +scoped_ptr<ResizeLock> |
| +RenderWidgetHostViewAura::DelegatedFrameHostCreateResizeLock( |
| bool defer_compositor_lock) { |
| gfx::Size desired_size = window_->bounds().size(); |
| return scoped_ptr<ResizeLock>(new CompositorResizeLock( |
| @@ -2618,8 +2620,32 @@ scoped_ptr<ResizeLock> RenderWidgetHostViewAura::CreateResizeLock( |
| base::TimeDelta::FromMilliseconds(kResizeLockTimeoutMs))); |
| } |
| -DelegatedFrameHost* RenderWidgetHostViewAura::GetDelegatedFrameHost() const { |
| - return delegated_frame_host_.get(); |
| +void RenderWidgetHostViewAura::DelegatedFrameHostResizeLockWasReleased() { |
| + host_->WasResized(); |
| +} |
| + |
| +void RenderWidgetHostViewAura::DelegatedFrameHostSendCompositorSwapAck( |
| + int output_surface_id, |
| + const cc::CompositorFrameAck& ack) { |
| + host_->Send(new ViewMsg_SwapCompositorFrameAck(host_->GetRoutingID(), |
| + output_surface_id, ack)); |
| +} |
| + |
| +void RenderWidgetHostViewAura::DelegatedFrameHostSendReclaimCompositorResources( |
| + int output_surface_id, |
| + const cc::CompositorFrameAck& ack) { |
| + host_->Send(new ViewMsg_ReclaimCompositorResources(host_->GetRoutingID(), |
| + output_surface_id, ack)); |
| +} |
| + |
| +void RenderWidgetHostViewAura::DelegatedFrameHostOnLostCompositorResources() { |
| + host_->ScheduleComposite(); |
| +} |
| + |
| +void RenderWidgetHostViewAura::DelegatedFrameHostUpdateVSyncParameters( |
| + const base::TimeTicks& timebase, |
| + const base::TimeDelta& interval) { |
| + host_->UpdateVSyncParameters(timebase, interval); |
| } |
| //////////////////////////////////////////////////////////////////////////////// |