Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index 26d6b53400e9b5a1075cd5ce463c1e418b156ea3..6df46f7739553f1f9533018c4c0430d09da98ed8 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -3286,10 +3286,14 @@ void RenderViewImpl::OnZoom(PageZoom zoom) { |
zoomLevelChanged(); |
} |
-void RenderViewImpl::OnSetZoomLevel(double zoom_level) { |
- webview()->hidePopups(); |
- webview()->setZoomLevel(zoom_level); |
- zoomLevelChanged(); |
+void RenderViewImpl::OnSetZoomLevel(int zoom_id, |
+ double zoom_level, |
+ content::ZoomMode zoom_mode) { |
+ if (zoom_mode != content::kZoomModeManual) { |
+ webview()->hidePopups(); |
Fady Samuel
2014/04/07 21:27:24
I think we should always hide popups.
paulmeyer
2014/04/08 21:13:20
Done.
|
+ webview()->setZoomLevel(zoom_level); |
+ } |
+ zoomLevelChanged(zoom_id, zoom_level, zoom_mode == content::kZoomModeDefault); |
} |
void RenderViewImpl::OnSetZoomLevelForLoadingURL(const GURL& url, |
@@ -4342,15 +4346,19 @@ void RenderViewImpl::zoomLimitsChanged(double minimum_level, |
} |
void RenderViewImpl::zoomLevelChanged() { |
- bool remember = !webview()->mainFrame()->document().isPluginDocument(); |
- float zoom_level = webview()->zoomLevel(); |
+ zoomLevelChanged(0, webview()->zoomLevel(), false); |
+} |
+ |
+void RenderViewImpl::zoomLevelChanged(int zoom_id, double zoom_level, |
+ bool remember) { |
+ remember = remember && !webview()->mainFrame()->document().isPluginDocument(); |
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( |
- routing_id_, zoom_level, remember, |
+ routing_id_, zoom_id, zoom_level, remember, |
GURL(webview()->mainFrame()->document().url()))); |
} |