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_); |
} |