示例#1
0
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));
}
示例#2
0
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();
}
示例#4
0
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();
}