void WebDevToolsAgentImpl::clearDeviceMetricsOverride() { if (m_deviceMetricsEnabled) { m_deviceMetricsEnabled = false; m_webViewImpl->setBackgroundColorOverride(Color::transparent); disableMobileEmulation(); m_client->disableDeviceEmulation(); } }
void DevToolsEmulator::disableDeviceEmulation() { if (!m_deviceMetricsEnabled) return; m_deviceMetricsEnabled = false; m_webViewImpl->setBackgroundColorOverride(Color::transparent); m_webViewImpl->updateShowFPSCounterAndContinuousPainting(); m_webViewImpl->page()->settings().setDeviceScaleAdjustment(m_embedderDeviceScaleAdjustment); disableMobileEmulation(); m_webViewImpl->setCompositorDeviceScaleFactorOverride(0.f); m_webViewImpl->setRootLayerTransform(WebSize(0.f, 0.f), 1.f); m_webViewImpl->setPageScaleFactor(1.f); if (Document* document = m_webViewImpl->mainFrameImpl()->frame()->document()) { document->styleResolverChanged(); document->mediaQueryAffectingValueChanged(); } }
void DevToolsEmulator::disableDeviceEmulation() { if (!m_deviceMetricsEnabled) return; m_deviceMetricsEnabled = false; m_webViewImpl->setBackgroundColorOverride(Color::transparent); m_webViewImpl->updateShowFPSCounter(); m_webViewImpl->page()->settings().setDeviceScaleAdjustment(m_embedderDeviceScaleAdjustment); disableMobileEmulation(); m_webViewImpl->setCompositorDeviceScaleFactorOverride(0.f); m_webViewImpl->setRootLayerTransform(WebSize(0.f, 0.f), 1.f); m_webViewImpl->setPageScaleFactor(1.f); // mainFrameImpl() could be null during cleanup or remote <-> local swap. if (m_webViewImpl->mainFrameImpl()) { if (Document* document = m_webViewImpl->mainFrameImpl()->frame()->document()) document->mediaQueryAffectingValueChanged(); } }
void WebDevToolsAgentImpl::setDeviceMetricsOverride(int width, int height, float deviceScaleFactor, bool mobile, bool fitWindow, float scale, float offsetX, float offsetY) { if (!m_deviceMetricsEnabled) { m_deviceMetricsEnabled = true; m_webViewImpl->setBackgroundColorOverride(Color::darkGray); } if (mobile) enableMobileEmulation(); else disableMobileEmulation(); WebDeviceEmulationParams params; params.screenPosition = mobile ? WebDeviceEmulationParams::Mobile : WebDeviceEmulationParams::Desktop; params.deviceScaleFactor = deviceScaleFactor; params.viewSize = WebSize(width, height); params.fitToView = fitWindow; params.scale = scale; params.offset = WebFloatPoint(offsetX, offsetY); m_client->enableDeviceEmulation(params); }
void DevToolsEmulator::enableDeviceEmulation(const WebDeviceEmulationParams& params) { if (!m_deviceMetricsEnabled) { m_deviceMetricsEnabled = true; m_webViewImpl->setBackgroundColorOverride(Color::darkGray); m_webViewImpl->updateShowFPSCounterAndContinuousPainting(); } m_webViewImpl->page()->settings().setDeviceScaleAdjustment(calculateDeviceScaleAdjustment(params.viewSize.width, params.viewSize.height, params.deviceScaleFactor)); if (params.screenPosition == WebDeviceEmulationParams::Mobile) enableMobileEmulation(); else disableMobileEmulation(); m_webViewImpl->setCompositorDeviceScaleFactorOverride(params.deviceScaleFactor); m_webViewImpl->setRootLayerTransform(WebSize(params.offset.x, params.offset.y), params.scale); if (Document* document = m_webViewImpl->mainFrameImpl()->frame()->document()) { document->styleResolverChanged(); document->mediaQueryAffectingValueChanged(); } }
void DevToolsEmulator::enableDeviceEmulation( const WebDeviceEmulationParams& params) { if (m_deviceMetricsEnabled && m_emulationParams.viewSize == params.viewSize && m_emulationParams.screenPosition == params.screenPosition && m_emulationParams.deviceScaleFactor == params.deviceScaleFactor && m_emulationParams.offset == params.offset && m_emulationParams.scale == params.scale) { return; } m_emulationParams = params; if (!m_deviceMetricsEnabled) { m_deviceMetricsEnabled = true; if (params.viewSize.width || params.viewSize.height) m_webViewImpl->setBackgroundColorOverride(Color::darkGray); } m_webViewImpl->page()->settings().setDeviceScaleAdjustment( calculateDeviceScaleAdjustment(params.viewSize.width, params.viewSize.height, params.deviceScaleFactor)); if (params.screenPosition == WebDeviceEmulationParams::Mobile) enableMobileEmulation(); else disableMobileEmulation(); m_webViewImpl->setCompositorDeviceScaleFactorOverride( params.deviceScaleFactor); updateRootLayerTransform(); // TODO(dgozman): mainFrameImpl() is null when it's remote. Figure out how // we end up with enabling emulation in this case. if (m_webViewImpl->mainFrameImpl()) { if (Document* document = m_webViewImpl->mainFrameImpl()->frame()->document()) document->mediaQueryAffectingValueChanged(); } }