Chromium Code Reviews| Index: content/renderer/render_frame_impl.cc |
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
| index 1218cb618dfc6964dd450fd4c2f544e594c7c667..3bfdca0685b6cc72f617c1cbc5c78d914024d6c4 100644 |
| --- a/content/renderer/render_frame_impl.cc |
| +++ b/content/renderer/render_frame_impl.cc |
| @@ -1432,6 +1432,9 @@ bool RenderFrameImpl::OnMessageReceived(const IPC::Message& msg) { |
| IPC_MESSAGE_HANDLER(FrameMsg_Find, OnFind) |
| IPC_MESSAGE_HANDLER(FrameMsg_StopFinding, OnStopFinding) |
| IPC_MESSAGE_HANDLER(FrameMsg_EnableViewSourceMode, OnEnableViewSourceMode) |
| + IPC_MESSAGE_HANDLER(FrameMsg_SetTemporaryZoomLevel, OnSetTemporaryZoomLevel) |
| + IPC_MESSAGE_HANDLER(FrameMsg_SetZoomLevelFromWebContents, |
|
alexmos
2016/04/05 18:00:54
"FromWebContents" sounded a bit weird in the name.
wjmaclean
2016/04/05 20:22:00
Sure, I'm OK with that.
Done.
|
| + OnSetZoomLevelFromWebContents) |
| #if defined(OS_ANDROID) |
| IPC_MESSAGE_HANDLER(InputMsg_ActivateNearestFindResult, |
| OnActivateNearestFindResult) |
| @@ -5103,6 +5106,37 @@ void RenderFrameImpl::OnEnableViewSourceMode() { |
| frame_->enableViewSourceMode(true); |
| } |
| +void RenderFrameImpl::OnSetTemporaryZoomLevel(double zoom_level, |
| + bool is_temporary) { |
| + // Store the temporary status on render_view_ so it is immediately available |
| + // to all frames using the same render_view_. |
| + render_view_->set_uses_temporary_zoom_level(is_temporary); |
| + |
| + WebView* webview = render_view_->GetWebView(); |
| + webview->hidePopups(); |
| + webview->setZoomLevelForFrame(frame_, zoom_level); |
| +} |
| + |
| +void RenderFrameImpl::OnSetZoomLevelFromWebContents(double zoom_level) { |
| + WebView* webview = render_view_->GetWebView(); |
| + |
| + if (render_view_->uses_temporary_zoom_level()) |
| + return; |
| + |
| + // We don't apply if our RenderView is hosting a full-page plugin, since the |
| + // plugin doesn't use the same zoom settings. |
| + if (webview->mainFrame()->isWebLocalFrame() && |
| + webview->mainFrame()->document().isPluginDocument()) { |
| + return; |
| + } |
| + |
| + // Force sending notification to observers. |
| + render_view_->SetZoomLevel(zoom_level); |
| + |
| + webview->hidePopups(); |
| + webview->setZoomLevelForFrame(frame_, zoom_level); |
| +} |
| + |
| #if defined(OS_ANDROID) |
| void RenderFrameImpl::OnActivateNearestFindResult(int request_id, |
| float x, |