| Index: content/browser/web_contents/web_contents_impl.cc
|
| diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
| index 67cf02fbb7bcaac2202668930a942bf07a437695..a0cb39f200b934fccfbf2e40015d9e510b4bd4e6 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -348,6 +348,7 @@ WebContentsImpl::WebContentsImpl(
|
| render_view_message_source_(NULL),
|
| fullscreen_widget_routing_id_(MSG_ROUTING_NONE),
|
| is_subframe_(false),
|
| + overscroll_content_disabled_(false),
|
| last_dialog_suppressed_(false) {
|
| for (size_t i = 0; i < g_created_callbacks.Get().size(); i++)
|
| g_created_callbacks.Get().at(i).Run(this);
|
| @@ -614,7 +615,7 @@ void WebContentsImpl::SetDelegate(WebContentsDelegate* delegate) {
|
| delegate_->Attach(this);
|
| // Ensure the visible RVH reflects the new delegate's preferences.
|
| if (view_)
|
| - view_->SetOverscrollControllerEnabled(delegate->CanOverscrollContent());
|
| + view_->SetOverscrollControllerEnabled(CanOverscrollContent());
|
| }
|
| }
|
|
|
| @@ -1695,6 +1696,13 @@ void WebContentsImpl::DidSendScreenRects(RenderWidgetHostImpl* rwh) {
|
| browser_plugin_embedder_->DidSendScreenRects();
|
| }
|
|
|
| +void WebContentsImpl::SetOverscrollContentDisabled(bool disabled) {
|
| + overscroll_content_disabled_ = disabled;
|
| + // Make sure the visible RVH reflects new preference.
|
| + if (view_)
|
| + view_->SetOverscrollControllerEnabled(CanOverscrollContent());
|
| +}
|
| +
|
| void WebContentsImpl::UpdatePreferredSize(const gfx::Size& pref_size) {
|
| const gfx::Size old_size = GetPreferredSize();
|
| preferred_size_ = pref_size;
|
| @@ -2453,10 +2461,9 @@ void WebContentsImpl::DidNavigateMainFramePostCommit(
|
| FOR_EACH_OBSERVER(WebContentsObserver, observers_,
|
| DidNavigateMainFrame(details, params));
|
|
|
| - if (delegate_) {
|
| + if (delegate_)
|
| delegate_->DidNavigateMainFramePostCommit(this);
|
| - view_->SetOverscrollControllerEnabled(delegate_->CanOverscrollContent());
|
| - }
|
| + view_->SetOverscrollControllerEnabled(CanOverscrollContent());
|
| }
|
|
|
| void WebContentsImpl::DidNavigateAnyFramePostCommit(
|
| @@ -2481,6 +2488,9 @@ void WebContentsImpl::SetMainFrameMimeType(const std::string& mime_type) {
|
| }
|
|
|
| bool WebContentsImpl::CanOverscrollContent() const {
|
| + if (overscroll_content_disabled_)
|
| + return false;
|
| +
|
| if (delegate_)
|
| return delegate_->CanOverscrollContent();
|
|
|
| @@ -3292,7 +3302,7 @@ void WebContentsImpl::RenderViewCreated(RenderViewHost* render_view_host) {
|
| return;
|
|
|
| if (delegate_)
|
| - view_->SetOverscrollControllerEnabled(delegate_->CanOverscrollContent());
|
| + view_->SetOverscrollControllerEnabled(CanOverscrollContent());
|
|
|
| NotificationService::current()->Notify(
|
| NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED,
|
| @@ -3794,7 +3804,7 @@ void WebContentsImpl::NotifySwappedFromRenderManager(RenderViewHost* old_host,
|
|
|
| // Make sure the visible RVH reflects the new delegate's preferences.
|
| if (delegate_)
|
| - view_->SetOverscrollControllerEnabled(delegate_->CanOverscrollContent());
|
| + view_->SetOverscrollControllerEnabled(CanOverscrollContent());
|
|
|
| view_->RenderViewSwappedIn(new_host);
|
| }
|
|
|