Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Unified Diff: content/browser/web_contents/web_contents_impl.cc

Issue 313083002: Disable overscroll navigation when emulating touch. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}

Powered by Google App Engine
This is Rietveld 408576698