OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "web/DevToolsEmulator.h" | 5 #include "web/DevToolsEmulator.h" |
6 | 6 |
7 #include "core/frame/FrameView.h" | 7 #include "core/frame/FrameView.h" |
8 #include "core/frame/Settings.h" | 8 #include "core/frame/Settings.h" |
9 #include "core/frame/VisualViewport.h" | 9 #include "core/frame/VisualViewport.h" |
10 #include "core/input/EventHandler.h" | 10 #include "core/input/EventHandler.h" |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
216 emulation_params_.device_scale_factor == params.device_scale_factor && | 216 emulation_params_.device_scale_factor == params.device_scale_factor && |
217 emulation_params_.offset == params.offset && | 217 emulation_params_.offset == params.offset && |
218 emulation_params_.scale == params.scale) { | 218 emulation_params_.scale == params.scale) { |
219 return; | 219 return; |
220 } | 220 } |
221 if (emulation_params_.device_scale_factor != params.device_scale_factor || | 221 if (emulation_params_.device_scale_factor != params.device_scale_factor || |
222 !device_metrics_enabled_) | 222 !device_metrics_enabled_) |
223 GetMemoryCache()->EvictResources(); | 223 GetMemoryCache()->EvictResources(); |
224 | 224 |
225 emulation_params_ = params; | 225 emulation_params_ = params; |
226 | 226 device_metrics_enabled_ = true; |
227 if (!device_metrics_enabled_) { | |
228 device_metrics_enabled_ = true; | |
229 if (params.view_size.width || params.view_size.height) | |
230 web_view_impl_->SetBackgroundColorOverride(Color::kDarkGray); | |
dgozman
2017/04/12 18:21:23
Remove these methods from WebViewImpl as well?
Eric Seckler
2017/04/12 19:31:31
After my recent refactorings of transparency overr
| |
231 } | |
232 | 227 |
233 web_view_impl_->GetPage()->GetSettings().SetDeviceScaleAdjustment( | 228 web_view_impl_->GetPage()->GetSettings().SetDeviceScaleAdjustment( |
234 calculateDeviceScaleAdjustment(params.view_size.width, | 229 calculateDeviceScaleAdjustment(params.view_size.width, |
235 params.view_size.height, | 230 params.view_size.height, |
236 params.device_scale_factor)); | 231 params.device_scale_factor)); |
237 | 232 |
238 if (params.screen_position == WebDeviceEmulationParams::kMobile) | 233 if (params.screen_position == WebDeviceEmulationParams::kMobile) |
239 EnableMobileEmulation(); | 234 EnableMobileEmulation(); |
240 else | 235 else |
241 DisableMobileEmulation(); | 236 DisableMobileEmulation(); |
242 | 237 |
243 web_view_impl_->SetCompositorDeviceScaleFactorOverride( | 238 web_view_impl_->SetCompositorDeviceScaleFactorOverride( |
244 params.device_scale_factor); | 239 params.device_scale_factor); |
245 UpdateRootLayerTransform(); | 240 UpdateRootLayerTransform(); |
246 // TODO(dgozman): mainFrameImpl() is null when it's remote. Figure out how | 241 // TODO(dgozman): mainFrameImpl() is null when it's remote. Figure out how |
247 // we end up with enabling emulation in this case. | 242 // we end up with enabling emulation in this case. |
248 if (web_view_impl_->MainFrameImpl()) { | 243 if (web_view_impl_->MainFrameImpl()) { |
249 if (Document* document = | 244 if (Document* document = |
250 web_view_impl_->MainFrameImpl()->GetFrame()->GetDocument()) | 245 web_view_impl_->MainFrameImpl()->GetFrame()->GetDocument()) |
251 document->MediaQueryAffectingValueChanged(); | 246 document->MediaQueryAffectingValueChanged(); |
252 } | 247 } |
253 } | 248 } |
254 | 249 |
255 void DevToolsEmulator::DisableDeviceEmulation() { | 250 void DevToolsEmulator::DisableDeviceEmulation() { |
256 if (!device_metrics_enabled_) | 251 if (!device_metrics_enabled_) |
257 return; | 252 return; |
258 | 253 |
259 GetMemoryCache()->EvictResources(); | 254 GetMemoryCache()->EvictResources(); |
260 device_metrics_enabled_ = false; | 255 device_metrics_enabled_ = false; |
261 web_view_impl_->ClearBackgroundColorOverride(); | |
262 web_view_impl_->GetPage()->GetSettings().SetDeviceScaleAdjustment( | 256 web_view_impl_->GetPage()->GetSettings().SetDeviceScaleAdjustment( |
263 embedder_device_scale_adjustment_); | 257 embedder_device_scale_adjustment_); |
264 DisableMobileEmulation(); | 258 DisableMobileEmulation(); |
265 web_view_impl_->SetCompositorDeviceScaleFactorOverride(0.f); | 259 web_view_impl_->SetCompositorDeviceScaleFactorOverride(0.f); |
266 web_view_impl_->SetPageScaleFactor(1.f); | 260 web_view_impl_->SetPageScaleFactor(1.f); |
267 UpdateRootLayerTransform(); | 261 UpdateRootLayerTransform(); |
268 // mainFrameImpl() could be null during cleanup or remote <-> local swap. | 262 // mainFrameImpl() could be null during cleanup or remote <-> local swap. |
269 if (web_view_impl_->MainFrameImpl()) { | 263 if (web_view_impl_->MainFrameImpl()) { |
270 if (Document* document = | 264 if (Document* document = |
271 web_view_impl_->MainFrameImpl()->GetFrame()->GetDocument()) | 265 web_view_impl_->MainFrameImpl()->GetFrame()->GetDocument()) |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
556 last_pinch_anchor_css_.reset(); | 550 last_pinch_anchor_css_.reset(); |
557 last_pinch_anchor_dip_.reset(); | 551 last_pinch_anchor_dip_.reset(); |
558 } | 552 } |
559 return true; | 553 return true; |
560 } | 554 } |
561 | 555 |
562 return false; | 556 return false; |
563 } | 557 } |
564 | 558 |
565 } // namespace blink | 559 } // namespace blink |
OLD | NEW |