Récemment, après quelques mises à jour logicielles (mise à jour automatisée de Windows 10 et éventuellement une Chrome mise à jour automatique), les outils de développement pour le débogage à distance à partir de QWebEngine de Qt ont cessé de fonctionner. La console JavaScript montre ceci:
Uncaught TypeError: document.registerElement is not a function
at Object.UI.registerCustomElement (Shell.js:formatted:18064)
at Shell.js:formatted:18178
at Shell.js:formatted:18266
devtools_app.js:formatted:2606 Uncaught ReferenceError: SDK is not defined
at devtools_app.js:formatted:2606
Le code en question (de Shell.js) est le suivant:
UI.registerCustomElement = function(localName, typeExtension, prototype) {
return document.registerElement(typeExtension, {
prototype: Object.create(prototype),
extends: localName
});
}
Qu'est-ce que Shell.js et d'où vient-il? Quelle pourrait être la cause de ce problème?
La page Web est en fait exécutée dans un navigateur Web Qt 5.12.3, mais j'utilise Chrome (à distance) pour les outils de développement).
J'ai également mis à jour Angular 7.x vers Angular 8 en même temps, mais je ne pense plus que cela soit lié.
Mon Chrome est actuellement la version 80.0.3987.116 (version officielle) (64 bits).
[~ # ~] update [~ # ~] J'ai juste essayé de télécharger une ancienne version de Chromium. (J'ai essayé la version 77.0.3823.0 car cela remonte à la mi-2019.) Et le débogage fonctionne.
Google a supprimé WebComponents V0 de Chrome, mais l'interface graphique pour le débogage à distance les utilise. Ainsi, lorsque vous essayez de lancer le débogage à distance sur un appareil avec l'ancien Chrome intégré - le débogueur se bloque avec
Uncaught TypeError: document.registerElement is not a function
J'ai trouvé deux moyens de lutter contre ça