void autoZoomPageToFitWidth(Frame* frame) { if (!frame) return; frame->setTextZoomFactor(m_webView->emulatedTextZoomFactor()); ensureOriginalZoomFactor(frame->view()); Document* document = frame->document(); float numerator = document->renderView() ? document->renderView()->viewWidth() : frame->view()->contentsWidth(); float factor = m_originalZoomFactor * (numerator / m_emulatedFrameSize.width); frame->setPageAndTextZoomFactors(factor, m_webView->emulatedTextZoomFactor()); document->styleResolverChanged(RecalcStyleImmediately); document->updateLayout(); }
void autoZoomPageToFitWidth(Frame* frame) { if (!frame) return; frame->setTextZoomFactor(m_webView->emulatedTextZoomFactor()); WebSize scaledFrameSize = scaledEmulatedFrameSize(frame->view()); ensureOriginalZoomFactor(frame->view()); double sizeRatio = static_cast<double>(scaledFrameSize.width) / m_emulatedFrameSize.width; frame->setPageAndTextZoomFactors(sizeRatio * m_originalZoomFactor, m_webView->emulatedTextZoomFactor()); Document* doc = frame->document(); doc->styleResolverChanged(RecalcStyleImmediately); doc->updateLayout(); }