Skip to content

QtWebEngine

Discussions and questions on QtWebEngine
1.3k Topics 3.8k Posts
  • Optimization tips for QT WebEngine and/or Chromium?

    Unsolved
    3
    0 Votes
    3 Posts
    348 Views
    D

    @JonB
    Yes, the build is compiled for release and optimized. We aren't seeing agonizingly slow performance, just areas where processing stalls at times.

    We are still investigating the application logic itself, but I am just doing some due diligence here in case there are some QT WebEngine optimizations (given the performance comparisons) that can be made.

    Let me take the opportunity to provide some build details I omitted:

    Platform: MacOS
    QT Version: 5.15.17 (Release build)

  • 0 Votes
    3 Posts
    436 Views
    P

    it's resolve on debian 11,the problem repeat on debian 12

  • QtWebEngine signing issues

    Solved
    21
    1 Votes
    21 Posts
    9k Views
    J

    Just in case you stumble onto this issue, the Qt Documentation now contains instructions

    cf https://doc.qt.io/qt-6/qtwebengine-deploying.html#macos-specific-deployment-steps

    Here is the content of the QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/Resources/QtWebEngineProcess.entitlements for reference, for my macos install, v 6.5.2

    $ cat /Users/julien/Qt/6.5.2/macos/lib/QtWebEngineCore.framework/Versions/A/Helpers/QtWebEngineProcess.app/Contents/Resources/QtWebEngineProcess.entitlements <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.security.cs.allow-unsigned-executable-memory</key> <true/> <key>com.apple.security.cs.disable-library-validation</key> <true/> <key>com.apple.security.cs.allow-jit</key> <true/> <key>com.apple.security.cs.disable-executable-page-protection</key> <true/> </dict> </plist>
  • buildroot for qt 5.15.2 compile!

    Unsolved
    5
    0 Votes
    5 Posts
    506 Views
    jsulmJ

    @lille said in buildroot for qt 5.15.2 compile!:

    Be sure must install libharfbuzz-dev package in host developer?

    No. If you're cross compiling then all needed libraries/headers have to be in your sysroot.

  • 0 Votes
    1 Posts
    90 Views
    No one has replied
  • QtWebEngine and JS Integration

    Unsolved
    7
    0 Votes
    7 Posts
    535 Views
    JKSHJ

    @emircanacardev said in QtWebEngine and JS Integration:

    WebEngineScriptCollection is not support the qt 5.x i think. Am i right.

    Qt 5.15 didn't have WebEngineScriptCollection, but it still has a list of user scripts: https://doc.qt.io/qt-5/qml-qtwebengine-webengineview.html#userScripts-prop

    // script.js document.body.style.background = "#00aaaa" // *.qml in Qt 5.15 WebEngineView { id: webView anchors.fill: parent url: "chrome://gpu" WebEngineScript { id: script sourceUrl: Qt.resolvedUrl("scripts.js") } Component.onCompleted: webView.userScripts.push(script) } // *.qml in Qt 6.7 WebEngineView { id: webView anchors.fill: parent url: "chrome://gpu" Component.onCompleted: { let script = WebEngine.script() script.sourceUrl = Qt.resolvedUrl("scripts.js") webView.userScripts.insert(script) } }
  • when running the code of webengineview,came the errors

    Unsolved
    3
    0 Votes
    3 Posts
    186 Views
    nicker playerN

    when I resize the qwebengineview,the errors came out.I guess maybe it was caused by the chorum ui threads.
    cause When I resized the qwebengineview very quickly then the program crashed.heres the detail information.

    by the way.are there any ways that could resize the qwebengineview normally?

    code_text

    [opengl\qopenglframebufferobject.cpp line 570] OpenGL Error: 1281
    QOpenGLFramebufferObject: Framebuffer incomplete attachment.
    QOpenGLFramebufferObject: Framebuffer incomplete attachment.
    QOpenGLFramebufferObject: Framebuffer incomplete attachment.
    QOpenGLFramebufferObject: Framebuffer incomplete attachment.
    QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment.
    [opengl\qopenglframebufferobject.cpp line 802] OpenGL Error: 1281
    [opengl\qopenglframebufferobject.cpp line 570] OpenGL Error: 1281
    QOpenGLFramebufferObject: Framebuffer incomplete attachment.
    QOpenGLFramebufferObject: Framebuffer incomplete attachment.
    QOpenGLFramebufferObject: Framebuffer incomplete attachment.
    QOpenGLFramebufferObject: Framebuffer incomplete attachment.
    QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment.
    [opengl\qopenglframebufferobject.cpp line 802] OpenGL Error: 1281
    [7,484:6,388:0827/213650.756:ERROR:gles2_cmd_decoder.cc(5,678)] GLES2DecoderImpl::ResizeOffscreenFramebuffer failed to allocate storage due to excessive dimensions.
    [7,484:6,388:0827/213650.756:ERROR:gles2_cmd_decoder.cc(5,678)] GLES2DecoderImpl::ResizeOffscreenFramebuffer failed to allocate storage due to excessive dimensions.
    [7,484:6,388:0827/213650.756:ERROR:gles2_cmd_decoder.cc(5,827)] GLES2DecoderImpl: Context lost because ResizeOffscreenFramebuffer failed.
    [7,484:6,388:0827/213650.757:ERROR:gles2_cmd_decoder.cc(5,963)] Error: 5 for Command kResizeCHROMIUM
    [7,484:6,388:0827/213650.757:ERROR:in_process_command_buffer.cc(375)] MakeCurrent failed because context lost.
    [7,484:6,388:0827/213650.756:ERROR:gles2_cmd_decoder.cc(5,827)] GLES2DecoderImpl: Context lost because ResizeOffscreenFramebuffer failed.
    [7,484:6,388:0827/213650.757:ERROR:gles2_cmd_decoder.cc(5,963)] Error: 5 for Command kResizeCHROMIUM
    [7,484:6,388:0827/213650.757:ERROR:in_process_command_buffer.cc(375)] MakeCurrent failed because context lost.
    [7,484:6,388:0827/213650.766:ERROR:in_process_command_buffer.cc(375)] MakeCurrent failed because context lost.
    [7,484:6,388:0827/213650.766:ERROR:in_process_command_buffer.cc(375)] MakeCurrent failed because context lost.
    [7,484:6,388:0827/213650.852:ERROR:gles2_cmd_decoder.cc(5,678)] GLES2DecoderImpl::ResizeOffscreenFramebuffer failed to allocate storage due to excessive dimensions.
    [7,484:6,388:0827/213650.852:ERROR:gles2_cmd_decoder.cc(5,827)] GLES2DecoderImpl: Context lost because ResizeOffscreenFramebuffer failed.
    [7,484:6,388:0827/213650.852:ERROR:gles2_cmd_decoder.cc(5,678)] GLES2DecoderImpl::ResizeOffscreenFramebuffer failed to allocate storage due to excessive dimensions.
    [7,484:6,388:0827/213650.852:ERROR:gles2_cmd_decoder.cc(5,963)] Error: 5 for Command kResizeCHROMIUM
    [7,484:7,364:0827/213650.852:ERROR:program_binding.cc(257)] Error compiling shader:
    shader program: #define TexCoordPrecision highp
    attribute float a_index;
    attribute TexCoordPrecision vec4 a_position;
    uniform TexCoordPrecision vec2 quad[4];
    uniform mat4 matrix;
    void main() {
    // Compute indices for uniform arrays.
    int vertex_index = int(a_index);

    // Compute the position.
    vec4 pos = vec4(quad[vertex_index], a_position.z, a_position.w);
    gl_Position = matrix * pos;
    }

    [7,484:6,388:0827/213650.852:ERROR:gles2_cmd_decoder.cc(5,827)] GLES2DecoderImpl: Context lost because ResizeOffscreenFramebuffer failed.
    [7,484:6,388:0827/213650.852:ERROR:gles2_cmd_decoder.cc(5,963)] Error: 5 for Command kResizeCHROMIUM
    [7,484:7,364:0827/213650.852:ERROR:program_binding.cc(257)] Error compiling shader:
    shader program: #define TexCoordPrecision highp
    attribute float a_index;
    attribute TexCoordPrecision vec4 a_position;
    uniform TexCoordPrecision vec2 quad[4];
    uniform mat4 matrix;
    void main() {
    // Compute indices for uniform arrays.
    int vertex_index = int(a_index);

    // Compute the position.
    vec4 pos = vec4(quad[vertex_index], a_position.z, a_position.w);
    gl_Position = matrix * pos;
    }

    [7,484:7,364:0827/213650.852:FATAL:program_binding.h(453)] Check failed: IsContextLost(context_provider->ContextGL()).
    Backtrace:
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,2B3,345+820,181]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,2C5,644+894,676]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,2C5,6DC+894,828]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,1F7,046+49,366]
    GetHandleVerifier [0x55,67A,44E+20,479,374]
    GetHandleVerifier [0x55,67A,233+20,478,835]
    GetHandleVerifier [0x55,67D,7DD+20,492,573]
    GetHandleVerifier [0x55,674,E75+20,457,397]
    GetHandleVerifier [0x55,672,8B5+20,447,733]
    GetHandleVerifier [0x55,662,A4D+20,382,605]
    GetHandleVerifier [0x55,662,B49+20,382,857]
    GetHandleVerifier [0x55,662,3B7+20,380,919]
    GetHandleVerifier [0x55,63A,DDE+20,219,678]
    GetHandleVerifier [0x55,635,479+20,196,793]
    GetHandleVerifier [0x55,634,8E8+20,193,832]
    GetHandleVerifier [0x55,635,70A+20,197,450]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,814,773+1,925,219]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,814,7B9+1,925,289]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,81E,C44+1,967,412]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,825,AB4+1,995,684]
    QtWebEngineCore::WebEngineSettings::setWebContentsAdapter [0x51,521,165+3,173]
    TargetNtUnmapViewOfSection [0x53,F12,EB5+26,061,381]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,68D,3C0+322,736]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,68D,6B5+323,493]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,68D,B44+324,660]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,68F,606+331,510]
    QtWebEngineCore::WebEngineSettings::setWebContentsAdapter [0x51,521,165+3,173]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,20F,5C1+149,073]
    GetHandleVerifier [0x54,302,B4F+66,703]
    GetHandleVerifier [0x54,302,486+64,966]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,2CD,44B+926,939]
    GetHandleVerifier [0x54,303,31C+68,700]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,23C,4DB+333,163]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,23C,294+332,580]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,243,102+360,850]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,243,C0C+363,676]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,200,49C+87,340]
    BaseThreadInitThunk [0x75,957,D69+25]
    RtlInitializeExceptionChain [0x76,F2B,B9B+107]
    RtlClearBits [0x76,F2B,B1F+191]
    Task trace:
    Backtrace:
    GetHandleVerifier [0x55,636,56B+20,201,131]
    GetHandleVerifier [0x54,737,E49+4,478,857]
    GetHandleVerifier [0x55,547,CA7+19,224,039]
    GetHandleVerifier [0x57,B25,FEB+58,931,499]
    GetHandleVerifier [0x55,4F9,72B+18,903,147]
    IPC message handler context: 0x85F9598B

    [7,484:7,364:0827/213650.852:FATAL:program_binding.h(453)] Check failed: IsContextLost(context_provider->ContextGL()).
    Backtrace:
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,2B3,345+820,181]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,2C5,644+894,676]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,2C5,6DC+894,828]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,1F7,046+49,366]
    GetHandleVerifier [0x55,67A,44E+20,479,374]
    GetHandleVerifier [0x55,67A,233+20,478,835]
    GetHandleVerifier [0x55,67D,7DD+20,492,573]
    GetHandleVerifier [0x55,674,E75+20,457,397]
    GetHandleVerifier [0x55,672,8B5+20,447,733]
    GetHandleVerifier [0x55,662,A4D+20,382,605]
    GetHandleVerifier [0x55,662,B49+20,382,857]
    GetHandleVerifier [0x55,662,3B7+20,380,919]
    GetHandleVerifier [0x55,63A,DDE+20,219,678]
    GetHandleVerifier [0x55,635,479+20,196,793]
    GetHandleVerifier [0x55,634,8E8+20,193,832]
    GetHandleVerifier [0x55,635,70A+20,197,450]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,814,773+1,925,219]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,814,7B9+1,925,289]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,81E,C44+1,967,412]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,825,AB4+1,995,684]
    QtWebEngineCore::WebEngineSettings::setWebContentsAdapter [0x51,521,165+3,173]
    TargetNtUnmapViewOfSection [0x53,F12,EB5+26,061,381]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,68D,3C0+322,736]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,68D,6B5+323,493]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,68D,B44+324,660]
    QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x51,68F,606+331,510]
    QtWebEngineCore::WebEngineSettings::setWebContentsAdapter [0x51,521,165+3,173]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,20F,5C1+149,073]
    GetHandleVerifier [0x54,302,B4F+66,703]
    GetHandleVerifier [0x54,302,486+64,966]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,2CD,44B+926,939]
    GetHandleVerifier [0x54,303,31C+68,700]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,23C,4DB+333,163]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,23C,294+332,580]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,243,102+360,850]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,243,C0C+363,676]
    QWebEngineUrlSchemeHandler::qt_static_metacall [0x54,200,49C+87,340]
    BaseThreadInitThunk [0x75,957,D69+25]
    RtlInitializeExceptionChain [0x76,F2B,B9B+107]
    RtlClearBits [0x76,F2B,B1F+191]
    Task trace:
    Backtrace:
    GetHandleVerifier [0x55,636,56B+20,201,131]
    GetHandleVerifier [0x54,737,E49+4,478,857]
    GetHandleVerifier [0x55,547,CA7+19,224,039]
    GetHandleVerifier [0x57,B25,FEB+58,931,499]
    GetHandleVerifier [0x55,4F9,72B+18,903,147]
    IPC message handler context: 0x85F9598B

  • 0 Votes
    3 Posts
    538 Views
    D

    self.showMaximized()Put it in front,
    Because the initial window is small, flickering is when the window suddenly maximizes
    from PyQt6.QtCore import QUrl
    from PyQt6.QtWebEngineWidgets import QWebEngineView
    from PyQt6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout

    class MainWindow(QMainWindow):
    def init(self):
    super().init()
    self.showMaximized()
    wgt_main = QWidget()
    self.layout_main = QVBoxLayout()
    wgt_main.setLayout(self.layout_main)
    self.setCentralWidget(wgt_main)

    self.wbv_main = QWebEngineView() self.wbv_main.load(QUrl("https://threejs.org/examples/#webgl_animation_keyframes")) self.wbv_main.show() self.layout_main.addWidget(self.wbv_main)

    if name == "main":
    # Start QT app
    app = QApplication(sys.argv)

    window = MainWindow() window.show() app.exec()
  • 0 Votes
    2 Posts
    159 Views
    nicker playerN

    and if I set the source file whit the setHtml() function.
    it is hard to get the real height and width if the source was made by the txt.

  • 0 Votes
    2 Posts
    346 Views
    E

    Do you have a solution for that problem? I need.

  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    6 Views
    No one has replied
  • I got error when i use Webengine lib

    Unsolved
    7
    0 Votes
    7 Posts
    367 Views
    E

    I dont get errors when i use gold linker but website’s dont load , i get blank screen.

  • Web Engine runs out of memory when loading a node.js server.

    Unsolved
    2
    0 Votes
    2 Posts
    156 Views
    S

    hi!did you solve the problem, i met the same problem.

  • Build from source errors. QTWebengine (chromium)

    Unsolved
    5
    0 Votes
    5 Posts
    516 Views
    M

    It's not related to Debug or Release. The error is caused by line endings. The parser expects unix instead of dos line endings.

  • Terminating renderer for bad IPC message, reason 123

    Unsolved
    5
    0 Votes
    5 Posts
    359 Views
    SGaistS

    Hi,

    You can build the latest Qt 5.15 for your project and if it works better. If so backport the changes.

  • Solving Error: TLS initialization failed on PySide2

    Unsolved
    2
    0 Votes
    2 Posts
    194 Views
    SGaistS

    Hi,

    You should move to PySide6. Support for OpenSSL 3 started with Qt 6. Even if the support is back-ported to 5.15, you would need to build PySide2 yourself with the corresponding version of Qt 5.

  • Compiling QtWebEngine fails because out of memory

    Unsolved
    14
    0 Votes
    14 Posts
    3k Views
    ytexasY

    @CompSciDude
    I tried -no-webengine-jumbo-build when building Qt 6.7.2, still cannot build cause by out of memory (12 G RAM). Neither --webengine-jumbo-build=<number>

  • Linux gives error in QtWebEngineProcess

    Unsolved
    1
    0 Votes
    1 Posts
    113 Views
    No one has replied
  • No content on macOS M

    Unsolved
    2
    0 Votes
    2 Posts
    167 Views
    No one has replied
  • QWebEngineView not showing on Linux Mint

    Solved
    2
    0 Votes
    2 Posts
    258 Views
    I

    Found the problem, I'm replying if someone else got the same problem.
    I needed to put this line of code :

    os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--no-sandbox"

    And to use sys.argv when initializing the app :

    App = Qt.QApplication(sys.argv)

    The final code being the following :

    import PyQt5.QtWidgets as Qt from PyQt5 import QtCore import PyQt5.QtWebEngineWidgets as QtWeb import sys import os class WebView(Qt.QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Web View") self.setGeometry(100, 100, 800, 600) self.webview = QtWeb.QWebEngineView(self) self.setCentralWidget(self.webview) self.webview.load(QtCore.QUrl("https://www.google.com")) if __name__ == "__main__": os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--no-sandbox" App = Qt.QApplication(sys.argv) window = WebView() window.show() app.exec_()

    Hope it helps if someone gets the same issue !