| Index: content/renderer/render_view_impl.cc
|
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
|
| index 85968f7103ef00b00c35e06f912f47d222338b4a..f116d53077ee2e402ca6439455c2f120ba432927 100644
|
| --- a/content/renderer/render_view_impl.cc
|
| +++ b/content/renderer/render_view_impl.cc
|
| @@ -1358,6 +1358,7 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) {
|
| OnUpdateWindowScreenRect)
|
| IPC_MESSAGE_HANDLER(PageMsg_SetZoomLevel, OnSetZoomLevel)
|
| IPC_MESSAGE_HANDLER(PageMsg_SetDeviceScaleFactor, OnSetDeviceScaleFactor);
|
| + IPC_MESSAGE_HANDLER(PageMsg_SetPageScaleFactor, OnSetPageScaleFactor);
|
| IPC_MESSAGE_HANDLER(PageMsg_WasHidden, OnPageWasHidden)
|
| IPC_MESSAGE_HANDLER(PageMsg_WasShown, OnPageWasShown)
|
| IPC_MESSAGE_HANDLER(PageMsg_SetHistoryOffsetAndLength,
|
| @@ -2676,6 +2677,27 @@ void RenderViewImpl::OnDeviceScaleFactorChanged() {
|
| AutoResizeCompositor();
|
| }
|
|
|
| +void RenderViewImpl::OnSetPageScaleFactor(double page_scale_delta) {
|
| + static float scale = 1.f;
|
| + if (webview() && webview()->mainFrame() &&
|
| + !webview()->mainFrame()->isWebLocalFrame()) {
|
| + scale = webview()->clampPageScaleFactorToLimits(page_scale_delta * scale);
|
| + // TODO(wjmaclean): find something better than walking the frame tree to
|
| + // find the local roots?
|
| + for (WebFrame* frame = webview()->mainFrame(); frame;
|
| + frame = frame->traverseNext(false)) {
|
| + if (frame->isWebLocalFrame() && !frame->parent()->isWebLocalFrame()) {
|
| + RenderFrameImpl* rfi = RenderFrameImpl::FromWebFrame(frame);
|
| + RenderWidgetCompositor* widget_compositor =
|
| + rfi->GetRenderWidget()->compositor();
|
| + // TODO(wjmaclean): It would likely be better if we could send deltas,
|
| + // but for now this works.
|
| + widget_compositor->setPageScaleFactorAndLimits(scale, 1.f, 4.f);
|
| + }
|
| + }
|
| + }
|
| +}
|
| +
|
| void RenderViewImpl::SetScreenMetricsEmulationParameters(
|
| bool enabled,
|
| const blink::WebDeviceEmulationParams& params) {
|
|
|