| 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..3d98672ce6ba1a2794f6fc8ea9a6668533f3fa08 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) {
|
| +void RenderViewImpl::OnSetZoomLevel(int zoom_id,
|
| + double zoom_level,
|
| + content::ZoomMode zoom_mode) {
|
| webview()->hidePopups();
|
| - webview()->setZoomLevel(zoom_level);
|
| - zoomLevelChanged();
|
| + if (zoom_mode != content::kZoomModeManual) {
|
| + 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())));
|
| }
|
|
|
|
|