[Qtwebengine] How to tell when DOM resources finishes downloading?

Koehne Kai Kai.Koehne at theqtcompany.com
Tue Dec 15 09:14:32 CET 2015



> -----Original Message-----
> From: Kevin Truong [mailto:knt261 at gmail.com]
> Sent: Saturday, December 12, 2015 3:43 AM
> To: Koehne Kai <Kai.Koehne at theqtcompany.com>
> Cc: qtwebengine at qt-project.org
> Subject: Re: [Qtwebengine] How to tell when DOM resources finishes
> downloading?
> 
> Hi Kai and community,

Hi,
 
> I patched QWebEngineUrlRequestInterceptor so that it emits a signal when
> the DOM resource is finished downloading (or if it failed, or if it aborted). I'd
> like to help contribute to the Qt Web Engine project, so I was wondering if I
> can submit my patch for a code review to the repository. Maybe other
> people might find this feature useful.
>
> What is the process for me to submit my patch?

The process for Qt WebEngine is the same as for other Qt modules:

https://wiki.qt.io/Qt_Contribution_Guidelines

I know this process might look intimidating at first, but you can always get help here or in the IRC channels. Thiago also had a presentation at the last Qt World Summit :

https://www.youtube.com/watch?v=bWuOQoY1J78

Regards

Kai

> Best,
> Kevin
> 
> 
> On Wed, Nov 25, 2015 at 12:14 AM, Koehne Kai
> <Kai.Koehne at theqtcompany.com
> <mailto:Kai.Koehne at theqtcompany.com> > wrote:
> 
> 
> 	> -----Original Message-----
> 	> From: Kevin Truong [mailto:knt261 at gmail.com
> <mailto:knt261 at gmail.com> ]
> 	> Sent: Tuesday, November 24, 2015 7:15 PM
> 	> To: Koehne Kai <Kai.Koehne at theqtcompany.com
> <mailto:Kai.Koehne at theqtcompany.com> >
> 	> Cc: qtwebengine at qt-project.org <mailto:qtwebengine at qt-
> project.org>
> 	> Subject: Re: [Qtwebengine] How to tell when DOM resources
> finishes
> 	> downloading?
> 	>
> 	> Sure Kai -- here's my use case: I have a page that loads ajax data
> into the
> 	> document. The ajax gets loaded into the DOM much later than
> when the
> 	> DomContentLoaded and the Load event is triggered (the red and
> blue vertical
> 	> lines in the picture under "Network Panel Overview"
> 	> https://developer.chrome.com/devtools/docs/network). If I
> understood
> 	> correctly, it means the ajax is loaded much later than when
> loadFinished() is
> 	> signaled as well. The amount of time we have to wait before the
> ajax is loaded
> 	> into the document is variable -- it can take 50ms, or it can take up
> to 10 seconds.
> 	> I would like to know exactly when the ajax is loaded into the DOM
> (or if that's
> 	> not possible, exactly when the render finish downloading the ajax)
> before
> 	> serializing/downloading the HTML of the page and doing tests on
> the HTML. This
> 	> is because the HTML changes after the ajax is loaded into the
> DOM, and the
> 	> tests need to be run on the updated HTML, not the initial HTML.
> 
> 	I see. If you know the HTML/AJAX of the specific page, you might be
> able to hook up
> 	a JS handler that is called when the AJAX request is done, and then
> signal this to the
> 	C++ world , e.g. via QWebChannel.
> 
> 	> I'd like this to be generalized as well (not just ajax, but any other
> DOM resource),
> 	> because I have test pages where the exact same thing happens,
> but with iframes
> 	> instead of ajax, or with certain very specific plug-ins (like the
> facebook posts
> 	> that load below an article page). These resources load
> independently of
> 	> DomContentLoaded and the Load event. However, I can identify
> them either via
> 	> the URL or the content type -- I just need to figure out how I can
> tell the render
> 	> to serialize only right after these resources are loaded.
> 
> 	I'm afraid that's not possible right now in the general case. In Qt 5.6
> we'll add
> 	QWebEngineUrlRequestInterceptor:
> 
> 	http://doc-snapshots.qt.io/qt5-
> 5.6/qwebengineurlrequestinterceptor.html
> 
> 	But that is called _before_ the request hits the networking stack.
> 
> 	But even if you would have a way to get notified when the network
> request is
> 	done, it doesn't mean that the page is re-rendered/the DOM being
> updated.
> 
> 	Regards
> 
> 	Kai
> 
> 
> 



More information about the QtWebEngine mailing list