• Jocelyn Turcotte's avatar
    createWindow QML API for QQuickWebEngineView · 7d39fa4a
    Jocelyn Turcotte authored
    
    This implements adoptNewWindow for QQuickWebEngineView.
    The API is only intended to be used through QML to avoid delegating
    the QQuickWebEngineViewHandle ownership through a signal parameter.
    
    Another limitation of the implementation is currently to fail the
    handle adoption unless it is done synchronously within the
    adoptNewWindow call. To support this we would need to delay the call
    to WebContentsAdapter::initialize which will leave the adapter
    without a client when returning to the event loop and would require
    putting null checks everywhere it is used.
    So I would prefer to keep the API limited and avoid potential crashes.
    If we want to support asynchronous Loader elements or QML files
    fetched from the network in the future, the API should be able to
    scale to the task once we've adjusted the implementation.
    
    This also adds basic tabs support in the quicknanobrowser example.
    The url property is now set imperatively to avoid overwriting the
    adopted WebContentsAdapter's loading URL.
    
    Change-Id: Iba5c5dc3ffa21045f356be131ca15c01b9aee7c8
    Reviewed-by: default avatarPierre Rossi <pierre.rossi@gmail.com>
    Reviewed-by: default avatarZeno Albisser <zeno.albisser@digia.com>
    7d39fa4a