diff options
-rw-r--r-- | chrome/renderer/autofill/autofill_agent.cc | 14 | ||||
-rw-r--r-- | chrome/renderer/autofill/autofill_agent.h | 2 | ||||
-rw-r--r-- | content/public/renderer/render_view_observer.h | 4 | ||||
-rw-r--r-- | content/renderer/render_view_impl.cc | 9 |
4 files changed, 27 insertions, 2 deletions
diff --git a/chrome/renderer/autofill/autofill_agent.cc b/chrome/renderer/autofill/autofill_agent.cc index f250e4f..0b28d45 100644 --- a/chrome/renderer/autofill/autofill_agent.cc +++ b/chrome/renderer/autofill/autofill_agent.cc @@ -155,6 +155,20 @@ void AutofillAgent::WillSubmitForm(WebFrame* frame, } } +void AutofillAgent::ZoomLevelChanged() { + // Any time the zoom level changes, the page's content moves, so any Autofill + // popups should be hidden. This is only needed for the new Autofill UI + // because WebKit already knows to hide the old UI when this occurs. + Send(new AutofillHostMsg_HideAutofillPopup(routing_id())); +} + +void AutofillAgent::DidChangeScrollOffset(WebKit::WebFrame*) { + // Any time the scroll offset changes, the page's content moves, so Autofill + // popups should be hidden. This is only needed for the new Autofill UI + // because WebKit already knows to hide the old UI when this occurs. + Send(new AutofillHostMsg_HideAutofillPopup(routing_id())); +} + bool AutofillAgent::InputElementClicked(const WebInputElement& element, bool was_focused, bool is_focused) { diff --git a/chrome/renderer/autofill/autofill_agent.h b/chrome/renderer/autofill/autofill_agent.h index f9b0364..f0f5173 100644 --- a/chrome/renderer/autofill/autofill_agent.h +++ b/chrome/renderer/autofill/autofill_agent.h @@ -65,6 +65,8 @@ class AutofillAgent : public content::RenderViewObserver, virtual void FrameWillClose(WebKit::WebFrame* frame) OVERRIDE; virtual void WillSubmitForm(WebKit::WebFrame* frame, const WebKit::WebFormElement& form) OVERRIDE; + virtual void ZoomLevelChanged() OVERRIDE; + virtual void DidChangeScrollOffset(WebKit::WebFrame* frame) OVERRIDE; // PageClickListener: virtual bool InputElementClicked(const WebKit::WebInputElement& element, diff --git a/content/public/renderer/render_view_observer.h b/content/public/renderer/render_view_observer.h index 471ce14..5495613 100644 --- a/content/public/renderer/render_view_observer.h +++ b/content/public/renderer/render_view_observer.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -68,6 +68,8 @@ class CONTENT_EXPORT RenderViewObserver : public IPC::Channel::Listener, virtual void FocusedNodeChanged(const WebKit::WebNode& node) {} virtual void WillCreateMediaPlayer(WebKit::WebFrame* frame, WebKit::WebMediaPlayerClient* client) {} + virtual void ZoomLevelChanged() {}; + virtual void DidChangeScrollOffset(WebKit::WebFrame* frame) {} // These match the RenderView methods. virtual void DidHandleMouseEvent(const WebKit::WebMouseEvent& event) {} diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 0d6467d..7a507ac 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -226,6 +226,7 @@ using WebKit::WebIntentServiceInfo; using WebKit::WebMediaPlayer; using WebKit::WebMediaPlayerAction; using WebKit::WebMediaPlayerClient; +using WebKit::WebMouseEvent; using WebKit::WebNavigationPolicy; using WebKit::WebNavigationType; using WebKit::WebNode; @@ -3353,6 +3354,9 @@ void RenderViewImpl::didChangeScrollOffset(WebFrame* frame) { if (webview()->mainFrame() == frame) UpdateScrollState(frame); + + FOR_EACH_OBSERVER( + RenderViewObserver, observers_, DidChangeScrollOffset(frame)); } void RenderViewImpl::numberOfWheelEventHandlersChanged(unsigned num_handlers) { @@ -4747,7 +4751,7 @@ bool RenderViewImpl::WillHandleMouseEvent(const WebKit::WebMouseEvent& event) { return mouse_lock_dispatcher_->WillHandleMouseEvent(event); } -void RenderViewImpl::DidHandleMouseEvent(const WebKit::WebMouseEvent& event) { +void RenderViewImpl::DidHandleMouseEvent(const WebMouseEvent& event) { FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidHandleMouseEvent(event)); } @@ -5122,6 +5126,9 @@ void RenderViewImpl::zoomLimitsChanged(double minimum_level, void RenderViewImpl::zoomLevelChanged() { bool remember = !webview()->mainFrame()->document().isPluginDocument(); float zoom_level = webview()->zoomLevel(); + + FOR_EACH_OBSERVER(RenderViewObserver, observers_, ZoomLevelChanged()); + // Tell the browser which url got zoomed so it can update the menu and the // saved values if necessary Send(new ViewHostMsg_DidZoomURL( |