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 66c62124457f5ed8d16c34388bb82371a7be72c5..df3c788aae696a9bfe720617308b4c35568287e9 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_aura.cc |
| +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc |
| @@ -368,8 +368,8 @@ RenderWidgetHostViewAura::RenderWidgetHostViewAura(RenderWidgetHost* host, |
| in_shutdown_(false), |
| in_bounds_changed_(false), |
| is_fullscreen_(false), |
| - popup_parent_host_view_(NULL), |
| - popup_child_host_view_(NULL), |
| + popup_parent_host_view_(nullptr), |
| + popup_child_host_view_(nullptr), |
| is_loading_(false), |
| text_input_type_(ui::TEXT_INPUT_TYPE_NONE), |
| text_input_mode_(ui::TEXT_INPUT_MODE_DEFAULT), |
| @@ -378,16 +378,17 @@ RenderWidgetHostViewAura::RenderWidgetHostViewAura(RenderWidgetHost* host, |
| has_composition_text_(false), |
| accept_return_character_(false), |
| last_swapped_software_frame_scale_factor_(1.f), |
| - paint_canvas_(NULL), |
| + begin_frame_source_(nullptr), |
| + observing_begin_frame_source_(false), |
| + paint_canvas_(nullptr), |
| synthetic_move_sent_(false), |
| cursor_visibility_state_in_renderer_(UNKNOWN), |
| #if defined(OS_WIN) |
| - legacy_render_widget_host_HWND_(NULL), |
| + legacy_render_widget_host_HWND_(nullptr), |
| legacy_window_destroyed_(false), |
| #endif |
| has_snapped_to_boundary_(false), |
| is_guest_view_hack_(is_guest_view_hack), |
| - begin_frame_observer_proxy_(this), |
| set_focus_on_mouse_down_or_key_event_(false), |
| device_scale_factor_(0.0f), |
| disable_input_event_router_for_testing_(false), |
| @@ -660,12 +661,38 @@ ui::TextInputClient* RenderWidgetHostViewAura::GetTextInputClient() { |
| } |
| void RenderWidgetHostViewAura::OnSetNeedsBeginFrames(bool needs_begin_frames) { |
| - begin_frame_observer_proxy_.SetNeedsBeginFrames(needs_begin_frames); |
| + if (observing_begin_frame_source_ == needs_begin_frames) |
| + return; |
| + |
| + observing_begin_frame_source_ = needs_begin_frames; |
|
no sievers
2016/04/07 20:35:35
nit: I'm wondering if calling it |needs_begin_fram
|
| + if (begin_frame_source_) { |
| + if (observing_begin_frame_source_) |
| + begin_frame_source_->AddObserver(this); |
| + else |
| + begin_frame_source_->RemoveObserver(this); |
| + } |
| } |
| -void RenderWidgetHostViewAura::SendBeginFrame(const cc::BeginFrameArgs& args) { |
| +void RenderWidgetHostViewAura::OnBeginFrame(const cc::BeginFrameArgs& args) { |
| delegated_frame_host_->SetVSyncParameters(args.frame_time, args.interval); |
|
sunnyps
2016/04/07 23:57:54
nit: Does this belong in DelegatedFrameHost::OnBeg
enne (OOO)
2016/04/14 18:12:16
Not unless you think the DelegatedFrameHost should
sunnyps
2016/04/19 01:00:22
Sorry for the late reply. I confused this with OnS
|
| host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args)); |
| + last_begin_frame_args_ = args; |
| +} |
| + |
| +const cc::BeginFrameArgs& RenderWidgetHostViewAura::LastUsedBeginFrameArgs() |
| + const { |
| + return last_begin_frame_args_; |
| +} |
| + |
| +void RenderWidgetHostViewAura::OnBeginFrameSourcePausedChanged(bool paused) { |
| + // Ignored for now. If the begin frame source is paused, the renderer |
| + // doesn't need to be informed about it and will just not receive more |
| + // begin frames. |
| +} |
| + |
| +void RenderWidgetHostViewAura::AsValueInto( |
| + base::trace_event::TracedValue* dict) const { |
| + // TODO(enne): implement me? |
| } |
| void RenderWidgetHostViewAura::SetKeyboardFocus() { |
| @@ -2651,8 +2678,6 @@ void RenderWidgetHostViewAura::AddedToRootWindow() { |
| #endif |
| delegated_frame_host_->SetCompositor(window_->GetHost()->compositor()); |
| - if (window_->GetHost()->compositor()) |
| - begin_frame_observer_proxy_.SetCompositor(window_->GetHost()->compositor()); |
| } |
| void RenderWidgetHostViewAura::RemovingFromRootWindow() { |
| @@ -2665,7 +2690,6 @@ void RenderWidgetHostViewAura::RemovingFromRootWindow() { |
| window_->GetHost()->RemoveObserver(this); |
| delegated_frame_host_->ResetCompositor(); |
| - begin_frame_observer_proxy_.ResetCompositor(); |
| #if defined(OS_WIN) |
| // Update the legacy window's parent temporarily to the desktop window. It |
| @@ -2908,6 +2932,15 @@ void RenderWidgetHostViewAura::DelegatedFrameHostUpdateVSyncParameters( |
| host_->UpdateVSyncParameters(timebase, interval); |
| } |
| +void RenderWidgetHostViewAura::SetBeginFrameSource( |
| + cc::BeginFrameSource* source) { |
| + if (begin_frame_source_ && observing_begin_frame_source_) |
| + begin_frame_source_->RemoveObserver(this); |
| + begin_frame_source_ = source; |
| + if (begin_frame_source_ && observing_begin_frame_source_) |
| + begin_frame_source_->AddObserver(this); |
| +} |
| + |
| void RenderWidgetHostViewAura::OnDidNavigateMainFrameToNewPage() { |
| ui::GestureRecognizer::Get()->CancelActiveTouches(window_); |
| } |