diff options
Diffstat (limited to 'src/core/renderer/web_engine_page_render_frame.cpp')
-rw-r--r-- | src/core/renderer/web_engine_page_render_frame.cpp | 30 |
1 files changed, 8 insertions, 22 deletions
diff --git a/src/core/renderer/web_engine_page_render_frame.cpp b/src/core/renderer/web_engine_page_render_frame.cpp index ad5aa4b93..1f7e306db 100644 --- a/src/core/renderer/web_engine_page_render_frame.cpp +++ b/src/core/renderer/web_engine_page_render_frame.cpp @@ -53,7 +53,7 @@ namespace QtWebEngineCore { WebEnginePageRenderFrame::WebEnginePageRenderFrame(content::RenderFrame *render_frame) - : content::RenderFrameObserver(render_frame), m_binding(this), m_needsLayout(false) + : content::RenderFrameObserver(render_frame), m_binding(this), m_ready(false) { render_frame->GetAssociatedInterfaceRegistry()->AddInterface( base::BindRepeating(&WebEnginePageRenderFrame::BindReceiver, base::Unretained(this))); @@ -70,8 +70,10 @@ void WebEnginePageRenderFrame::FetchDocumentMarkup(uint64_t requestId, { blink::WebLocalFrame *frame = render_frame()->GetWebFrame(); blink::WebString markup; - if (!m_needsLayout) + if (m_ready) markup = blink::WebFrameContentDumper::DumpAsMarkup(frame); + else + markup = blink::WebString::FromUTF8("<html><head></head><body></body></html>"); std::move(callback).Run(requestId, markup.Utf8()); } @@ -80,9 +82,10 @@ void WebEnginePageRenderFrame::FetchDocumentInnerText(uint64_t requestId, { blink::WebLocalFrame *frame = render_frame()->GetWebFrame(); blink::WebString text; - if (!m_needsLayout) + if (m_ready) { text = blink::WebFrameContentDumper::DumpFrameTreeAsText( frame, std::numeric_limits<std::size_t>::max()); + } std::move(callback).Run(requestId, text.Utf8()); } @@ -96,25 +99,8 @@ void WebEnginePageRenderFrame::OnDestruct() delete this; } -void WebEnginePageRenderFrame::DidMeaningfulLayout(blink::WebMeaningfulLayout layout_type) -{ - switch (layout_type) { - case blink::WebMeaningfulLayout::kFinishedParsing: - case blink::WebMeaningfulLayout::kFinishedLoading: - m_needsLayout = false; - break; - default: - break; - } -} - -void WebEnginePageRenderFrame::WasShown() -{ - m_needsLayout = true; -} - -void WebEnginePageRenderFrame::WasHidden() +void WebEnginePageRenderFrame::DidFinishLoad() { - m_needsLayout = false; + m_ready = true; } } |