Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/render_view_impl.h" | 5 #include "content/renderer/render_view_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 1223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1234 IPC_MESSAGE_HANDLER(ViewMsg_ReleaseDisambiguationPopupBitmap, | 1234 IPC_MESSAGE_HANDLER(ViewMsg_ReleaseDisambiguationPopupBitmap, |
| 1235 OnReleaseDisambiguationPopupBitmap) | 1235 OnReleaseDisambiguationPopupBitmap) |
| 1236 IPC_MESSAGE_HANDLER(ViewMsg_ForceRedraw, OnForceRedraw) | 1236 IPC_MESSAGE_HANDLER(ViewMsg_ForceRedraw, OnForceRedraw) |
| 1237 IPC_MESSAGE_HANDLER(ViewMsg_SelectWordAroundCaret, OnSelectWordAroundCaret) | 1237 IPC_MESSAGE_HANDLER(ViewMsg_SelectWordAroundCaret, OnSelectWordAroundCaret) |
| 1238 | 1238 |
| 1239 // Page messages. | 1239 // Page messages. |
| 1240 IPC_MESSAGE_HANDLER(PageMsg_UpdateWindowScreenRect, | 1240 IPC_MESSAGE_HANDLER(PageMsg_UpdateWindowScreenRect, |
| 1241 OnUpdateWindowScreenRect) | 1241 OnUpdateWindowScreenRect) |
| 1242 IPC_MESSAGE_HANDLER(PageMsg_SetZoomLevel, OnSetZoomLevel) | 1242 IPC_MESSAGE_HANDLER(PageMsg_SetZoomLevel, OnSetZoomLevel) |
| 1243 IPC_MESSAGE_HANDLER(PageMsg_SetDeviceScaleFactor, OnSetDeviceScaleFactor); | 1243 IPC_MESSAGE_HANDLER(PageMsg_SetDeviceScaleFactor, OnSetDeviceScaleFactor); |
| 1244 IPC_MESSAGE_HANDLER(PageMsg_SetPageScaleFactor, | |
| 1245 OnSetPageScaleFactorForSubframes); | |
| 1244 IPC_MESSAGE_HANDLER(PageMsg_WasHidden, OnPageWasHidden) | 1246 IPC_MESSAGE_HANDLER(PageMsg_WasHidden, OnPageWasHidden) |
| 1245 IPC_MESSAGE_HANDLER(PageMsg_WasShown, OnPageWasShown) | 1247 IPC_MESSAGE_HANDLER(PageMsg_WasShown, OnPageWasShown) |
| 1246 IPC_MESSAGE_HANDLER(PageMsg_SetHistoryOffsetAndLength, | 1248 IPC_MESSAGE_HANDLER(PageMsg_SetHistoryOffsetAndLength, |
| 1247 OnSetHistoryOffsetAndLength) | 1249 OnSetHistoryOffsetAndLength) |
| 1248 IPC_MESSAGE_HANDLER(PageMsg_AudioStateChanged, OnAudioStateChanged) | 1250 IPC_MESSAGE_HANDLER(PageMsg_AudioStateChanged, OnAudioStateChanged) |
| 1249 | 1251 |
| 1250 #if defined(OS_ANDROID) | 1252 #if defined(OS_ANDROID) |
| 1251 IPC_MESSAGE_HANDLER(ViewMsg_UpdateBrowserControlsState, | 1253 IPC_MESSAGE_HANDLER(ViewMsg_UpdateBrowserControlsState, |
| 1252 OnUpdateBrowserControlsState) | 1254 OnUpdateBrowserControlsState) |
| 1253 IPC_MESSAGE_HANDLER(ViewMsg_ExtractSmartClipData, OnExtractSmartClipData) | 1255 IPC_MESSAGE_HANDLER(ViewMsg_ExtractSmartClipData, OnExtractSmartClipData) |
| (...skipping 1115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2369 GetWidget()->FocusChangeComplete(); | 2371 GetWidget()->FocusChangeComplete(); |
| 2370 } | 2372 } |
| 2371 | 2373 |
| 2372 void RenderViewImpl::OnDeviceScaleFactorChanged() { | 2374 void RenderViewImpl::OnDeviceScaleFactorChanged() { |
| 2373 RenderWidget::OnDeviceScaleFactorChanged(); | 2375 RenderWidget::OnDeviceScaleFactorChanged(); |
| 2374 UpdateWebViewWithDeviceScaleFactor(); | 2376 UpdateWebViewWithDeviceScaleFactor(); |
| 2375 if (auto_resize_mode_) | 2377 if (auto_resize_mode_) |
| 2376 AutoResizeCompositor(); | 2378 AutoResizeCompositor(); |
| 2377 } | 2379 } |
| 2378 | 2380 |
| 2381 void RenderViewImpl::OnSetPageScaleFactorForSubframes(double page_scale) { | |
| 2382 if (webview() && webview()->mainFrame() && | |
| 2383 !webview()->mainFrame()->isWebLocalFrame()) { | |
|
kenrb
2017/01/24 17:13:27
It's cleaner to test the inverted conditions, and
wjmaclean
2017/01/24 18:24:26
Done.
| |
| 2384 // TODO(wjmaclean): Find a better way to identify the local roots in the | |
| 2385 // frame tree. Still, this is likely better than sending a separate IPC for | |
| 2386 // every frame in a renderer. | |
|
kenrb
2017/01/24 17:13:27
That is technically true, but an alternative is to
wjmaclean
2017/01/24 18:24:26
Ok, I didn't know about that ... I'll look into th
kenrb
2017/01/24 18:47:30
Yes. Hypothetically it could go on RenderFrameImpl
| |
| 2387 for (WebFrame* frame = webview()->mainFrame(); frame; | |
| 2388 frame = frame->traverseNext()) { | |
| 2389 if (frame->isWebLocalFrame() && !frame->parent()->isWebLocalFrame()) { | |
| 2390 RenderFrameImpl* rfi = RenderFrameImpl::FromWebFrame(frame); | |
| 2391 RenderWidgetCompositor* widget_compositor = | |
| 2392 rfi->GetRenderWidget()->compositor(); | |
| 2393 widget_compositor->SetPageScaleFactorForSubframe(page_scale); | |
| 2394 } | |
| 2395 } | |
| 2396 } | |
| 2397 } | |
| 2398 | |
| 2379 void RenderViewImpl::SetScreenMetricsEmulationParameters( | 2399 void RenderViewImpl::SetScreenMetricsEmulationParameters( |
| 2380 bool enabled, | 2400 bool enabled, |
| 2381 const blink::WebDeviceEmulationParams& params) { | 2401 const blink::WebDeviceEmulationParams& params) { |
| 2382 if (webview() && compositor()) { | 2402 if (webview() && compositor()) { |
| 2383 if (enabled) | 2403 if (enabled) |
| 2384 webview()->enableDeviceEmulation(params); | 2404 webview()->enableDeviceEmulation(params); |
| 2385 else | 2405 else |
| 2386 webview()->disableDeviceEmulation(); | 2406 webview()->disableDeviceEmulation(); |
| 2387 } | 2407 } |
| 2388 } | 2408 } |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2727 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2747 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 2728 } | 2748 } |
| 2729 | 2749 |
| 2730 std::unique_ptr<InputEventAck> ack( | 2750 std::unique_ptr<InputEventAck> ack( |
| 2731 new InputEventAck(InputEventAckSource::MAIN_THREAD, input_event->type(), | 2751 new InputEventAck(InputEventAckSource::MAIN_THREAD, input_event->type(), |
| 2732 INPUT_EVENT_ACK_STATE_NOT_CONSUMED)); | 2752 INPUT_EVENT_ACK_STATE_NOT_CONSUMED)); |
| 2733 OnInputEventAck(std::move(ack)); | 2753 OnInputEventAck(std::move(ack)); |
| 2734 } | 2754 } |
| 2735 | 2755 |
| 2736 } // namespace content | 2756 } // namespace content |
| OLD | NEW |