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

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: Renamed method in delegate Created 6 years, 6 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 1df288a3b8809c23c804c7260e833cecb33d8b94..9a3a844808b31f29141af6ff8a2fb00eb9383743 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -347,6 +347,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);
@@ -613,7 +614,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());
}
}
@@ -1698,6 +1699,13 @@ void WebContentsImpl::DidSendScreenRects(RenderWidgetHostImpl* rwh) {
browser_plugin_embedder_->DidSendScreenRects();
}
+void WebContentsImpl::OnSetTouchEventEmulationEnabled(bool enabled) {
+ // Disable overscroll when touch emulation is on. See crbug.com/369938.
+ overscroll_content_disabled_ = enabled;
+ if (view_)
+ view_->SetOverscrollControllerEnabled(CanOverscrollContent());
+}
+
void WebContentsImpl::UpdatePreferredSize(const gfx::Size& pref_size) {
const gfx::Size old_size = GetPreferredSize();
preferred_size_ = pref_size;
@@ -2456,10 +2464,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(
@@ -2484,6 +2491,9 @@ void WebContentsImpl::SetMainFrameMimeType(const std::string& mime_type) {
}
bool WebContentsImpl::CanOverscrollContent() const {
+ if (overscroll_content_disabled_)
+ return false;
+
if (delegate_)
return delegate_->CanOverscrollContent();
@@ -3295,7 +3305,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,
@@ -3797,7 +3807,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