- Qt 6.10
- Qt WebEngine
- C++ Classes
- QtWebEngineCore
- QWebEngineExtensionManager
- Qt 6.10.3 Reference Documentation

# QWebEngineExtensionManager Class

The QWebEngineExtensionManager class allows applications to install and load Chrome extensions from the filesystem. More...

Header: | `#include <QWebEngineExtensionManager>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS WebEngineCore)` `target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)`
qmake: | `QT += webenginecore`
Since: | Qt 6.10
Inherits: | QObject

- List of all members, including inherited members

## Properties

- extensions : const QList<QWebEngineExtensionInfo>
- installPath : const QString

## Public Functions

QList<QWebEngineExtensionInfo> | extensions() const
void | installExtension(const QString &path)
QString | installPath() const
void | loadExtension(const QString &path)
void | setExtensionEnabled(const QWebEngineExtensionInfo &extension, bool enabled)
void | uninstallExtension(const QWebEngineExtensionInfo &extension)
void | unloadExtension(const QWebEngineExtensionInfo &extension)

## Reimplemented Protected Functions

virtual bool | event(QEvent *e) override

## Detailed Description

QWebEngineExtensionManager can load or install Chrome extensions. Extensions can be loaded via loadExtension. Extensions loaded this way are not remembered by the associated profile and has to be manually loaded in every new browsing session. To preserve extensions between browsing sessions, applications can install zipped or unpacked extensions via installExtension. In this case the manager will unpack the extension to the profile's directory and load it from there. Installed extensions are always loaded at startup, after the profile is initialized.

You can access the loaded extensions with extensions() which provides a list of QWebEngineExtensionInfo, or connect to the manager's signals to get notified about the state of the load or install processes.

Each QWebEngineProfile has its own QWebEngineExtensionManager, so every page that shares the same profile will share the same extensions too. Extensions can't be loaded into off-the-record profiles. However, all profiles, including off-the-record ones, contain two built-in and enabled by default extensions: Google Hangouts and Chromium PDF. These can be disabled and/or unloaded if desired.

Note: Only ManifestV3 extensions are supported, other versions won't be loaded nor installed

See also QWebEngineProfile::extensionManager and QWebEngineExtensionInfo.

## Property Documentation

### `[read-only]` extensions : const QList<QWebEngineExtensionInfo>

Returns a list of the loaded extensions.

Access functions:

QList<QWebEngineExtensionInfo> | extensions() const

See also QWebEngineExtensionInfo.

### `[read-only]` installPath : const QString

Returns the directory's path where the extensions are installed.

Access functions:

QString | installPath() const

See also installExtension() and QWebEngineExtensionInfo::isInstalled().

## Member Function Documentation

### `[override virtual protected]` bool QWebEngineExtensionManager::event(QEvent *e)

Reimplements: QObject::event(QEvent *e).

### `[invokable]` void QWebEngineExtensionManager::installExtension(const QString &path)

Installs an extension from path to the profile's directory and loads it

The QWebEngineExtensionManager::installFinished signal is emitted after an extension is installed or the install failed. If the install succeeded QWebEngineExtensionInfo::isInstalled() will return true, otherwise QWebEngineExtensionInfo::error() will contain information how the install process failed.

Extensions are loaded in disabled state after the install succeeded. Installed extensions are automatically loaded at every startup in disabled state. The install path can be queried with installPath().

The installer is capable of installing zipped or unpacked extensions. The path parameter should point to a directory or a zip file containing the extension's manifest file. If the manifest is missing from the top level directory, the install process will abort.

Installing an already loaded or installed extension from the same path will install a new extension.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QWebEngineExtensionInfo::isInstalled(), QWebEngineExtensionInfo::error(), and installPath().

### `[invokable]` void QWebEngineExtensionManager::loadExtension(const QString &path)

Loads an unpacked extension from path

The QWebEngineExtensionManager::loadFinished signal is emitted when an extension is loaded or the load failed. If the load succeeded QWebEngineExtensionInfo::isLoaded() will return true otherwise QWebEngineExtensionInfo::error() will contain information where the loading process failed.

Extensions are always loaded in disabled state, users have to enable them manually. Loading an already loaded extension from the same path will reload the extension.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QWebEngineExtensionInfo::isLoaded() and QWebEngineExtensionInfo::error().

### `[invokable]` void QWebEngineExtensionManager::setExtensionEnabled(const QWebEngineExtensionInfo &extension, bool enabled)

Allows to turn on/off the extension at runtime

The enabled argument determines whether the extension should be enabled or disabled.

Note: It is also possible to disable internal extensions like Hangouts and PDF.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QWebEngineExtensionInfo::isEnabled().

### `[invokable]` void QWebEngineExtensionManager::uninstallExtension(const QWebEngineExtensionInfo &extension)

Uninstalls the extension

Removes the extension's files from the install path and unloads the extension. The QWebEngineExtensionManager::uninstallFinished signal is emitted after the process finished.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QWebEngineExtensionManager::installPath(), QWebEngineExtensionInfo::isInstalled(), and QWebEngineExtensionInfo::error().

### `[invokable]` void QWebEngineExtensionManager::unloadExtension(const QWebEngineExtensionInfo &extension)

Unloads the extension

Removes all the extension's data from memory.

The QWebEngineExtensionManager::unloadFinished signal is emitted after the unload process finished.

Note: It is also possible to unload internal extensions like Hangouts and PDF, but they will be loaded at next startup like other installed extensions.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QWebEngineExtensionInfo::isLoaded().