| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index e4ee832d5c05e5166cda0e4ad55d8d380f48d924..a0cce56aa3fa90469d29b2433f1967f0b6713e84 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -1443,6 +1443,8 @@ 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_SetPageZoomLevel, OnSetPageZoomLevel)
|
| #if defined(OS_ANDROID)
|
| IPC_MESSAGE_HANDLER(InputMsg_ActivateNearestFindResult,
|
| OnActivateNearestFindResult)
|
| @@ -5123,6 +5125,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::OnSetPageZoomLevel(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,
|
|
|