void InspectorOverlay::reset(const IntSize& viewportSize, const IntPoint& documentScrollOffset) { std::unique_ptr<protocol::DictionaryValue> resetData = protocol::DictionaryValue::create(); resetData->setDouble( "deviceScaleFactor", m_frameImpl->frame()->host()->deviceScaleFactorDeprecated()); resetData->setDouble("pageScaleFactor", m_frameImpl->frame()->host()->visualViewport().scale()); IntRect viewportInScreen = m_frameImpl->frame()->host()->chromeClient().viewportToScreen( IntRect(IntPoint(), viewportSize), m_frameImpl->frame()->view()); resetData->setObject("viewportSize", buildObjectForSize(viewportInScreen.size())); // The zoom factor in the overlay frame already has been multiplied by the // window to viewport scale (aka device scale factor), so cancel it. resetData->setDouble( "pageZoomFactor", m_frameImpl->frame()->pageZoomFactor() / windowToViewportScale()); resetData->setInteger("scrollX", documentScrollOffset.x()); resetData->setInteger("scrollY", documentScrollOffset.y()); evaluateInOverlay("reset", std::move(resetData)); }
void InspectorOverlay::drawQuadHighlight() { if (!m_highlightQuad) return; InspectorHighlight highlight(windowToViewportScale()); highlight.appendQuad(*m_highlightQuad, m_quadHighlightConfig.content, m_quadHighlightConfig.contentOutline); evaluateInOverlay("drawHighlight", highlight.asProtocolValue()); }
void InspectorOverlay::rebuildOverlayPage() { FrameView* view = m_webViewImpl->mainFrameImpl()->frameView(); if (!view) return; IntRect visibleRectInDocument = view->getScrollableArea()->visibleContentRect(); IntSize viewportSize = m_webViewImpl->page()->frameHost().visualViewport().size(); LocalFrame* frame = toLocalFrame(overlayPage()->mainFrame()); frame->view()->resize(viewportSize); overlayPage()->frameHost().visualViewport().setSize(viewportSize); frame->setPageZoomFactor(windowToViewportScale()); reset(viewportSize, visibleRectInDocument.location()); drawNodeHighlight(); drawQuadHighlight(); drawPausedInDebuggerMessage(); drawViewSize(); if (m_layoutEditor && !m_highlightNode) m_layoutEditor->rebuild(); }
void InspectorOverlay::rebuildOverlayPage() { FrameView* view = m_frameImpl->frameView(); LocalFrame* frame = m_frameImpl->frame(); if (!view || !frame) return; IntRect visibleRectInDocument = view->getScrollableArea()->visibleContentRect(); IntSize viewportSize = frame->host()->visualViewport().size(); overlayMainFrame()->view()->resize(viewportSize); overlayPage()->frameHost().visualViewport().setSize(viewportSize); overlayMainFrame()->setPageZoomFactor(windowToViewportScale()); reset(viewportSize, visibleRectInDocument.location()); if (m_showReloadingBlanket) { evaluateInOverlay("showReloadingBlanket", ""); return; } drawNodeHighlight(); drawQuadHighlight(); drawPausedInDebuggerMessage(); drawViewSize(); }