[Interest] QWebEngine, custom URL schemes and content-types

Steve Atkins steve at blighty.com
Mon Apr 8 13:40:13 CEST 2019

I'm using a custom URL scheme by registering the scheme with QEbEngineUrlScheme::registerScheme() at app startup, creating a handler ("Assets")  that inherits from QWebEngineUrlSchemeHandler, installing that scheme handler in the QWebEngineProfile passed to the QWebPage.

Assets::requestStarted(QWebEngineUrlRequestJob *job) handles the request and finishes by doing job->reply() with a content type of application/javascript and an open QFile.

Everything works fine. The page loads, it loads scripts from the header from URLs asset:whatever.js, the content is correct and the js runs fine.

Until I try and load the asset: scripts as ES6 modules. Then I get "Error: Failed to load module script: The server responded with a non-JavaScript MIME type of \"\". Strict MIME type checking is enforced for module scripts per HTML spec. (asset:/ticket.js:0)".

It seems from that that job->reply() is not setting the content-type of the response successfully. I've tried to confirm that, but the chrome inspector shows no response headers, and fetch() errors out because the custom URL scheme isn't supported.

Does this look familiar to anyone? And has anyone used custom schemes with content-types successfully?


More information about the Interest mailing list