| Index: content/renderer/render_view_impl.cc
|
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
|
| index 46b4f74666d5a47078ad74f16adc7ce92c8c8883..af6a09b68f9c71c001b2f2230929a480e200d1ed 100644
|
| --- a/content/renderer/render_view_impl.cc
|
| +++ b/content/renderer/render_view_impl.cc
|
| @@ -718,6 +718,7 @@ RenderViewImpl::RenderViewImpl(RenderViewImplParams* params)
|
| top_controls_constraints_(cc::BOTH),
|
| #endif
|
| has_scrolled_focused_editable_node_into_rect_(false),
|
| + has_scrolled_main_frame_(false),
|
| speech_recognition_dispatcher_(NULL),
|
| browser_plugin_manager_(NULL),
|
| devtools_agent_(NULL),
|
| @@ -2504,15 +2505,19 @@ BrowserPluginManager* RenderViewImpl::GetBrowserPluginManager() {
|
| return browser_plugin_manager_.get();
|
| }
|
|
|
| -void RenderViewImpl::UpdateScrollState(WebFrame* frame) {
|
| - Send(new ViewHostMsg_DidChangeScrollOffset(routing_id_));
|
| +void RenderViewImpl::didCommitAndDrawCompositorFrame() {
|
| + RenderWidget::didCommitAndDrawCompositorFrame();
|
| + if (has_scrolled_main_frame_) {
|
| + has_scrolled_main_frame_ = false;
|
| + Send(new ViewHostMsg_DidChangeScrollOffset(routing_id_));
|
| + }
|
| }
|
|
|
| void RenderViewImpl::didChangeScrollOffset(WebLocalFrame* frame) {
|
| StartNavStateSyncTimerIfNecessary();
|
|
|
| if (webview()->mainFrame() == frame)
|
| - UpdateScrollState(frame);
|
| + has_scrolled_main_frame_ = true;
|
|
|
| FOR_EACH_OBSERVER(
|
| RenderViewObserver, observers_, DidChangeScrollOffset(frame));
|
| @@ -3340,7 +3345,7 @@ void RenderViewImpl::OnResize(const ViewMsg_Resize_Params& params) {
|
| ShouldDisplayScrollbars(params.new_size.width(),
|
| params.new_size.height()));
|
| }
|
| - UpdateScrollState(webview()->mainFrame());
|
| + has_scrolled_main_frame_ = true;
|
| }
|
|
|
| gfx::Size old_visible_viewport_size = visible_viewport_size_;
|
|
|