summaryrefslogtreecommitdiffstats
path: root/src/core/renderer/web_engine_page_render_frame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/renderer/web_engine_page_render_frame.cpp')
-rw-r--r--src/core/renderer/web_engine_page_render_frame.cpp30
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;
}
}