QWebEnginePermission — PyQt Documentation v6.9.0 (original) (raw)
PyQt6.QtWebEngineCore.QWebEnginePermission
Description¶
A QWebEnginePermission is an object used to access and modify the state of a single permission that’s been granted or denied to a specific origin URL.
The typical usage pattern is as follows:
- A website requests a specific permission, triggering the QWebEnginePage::permissionRequested() signal;
- The signal handler triggers a prompt asking the user whether they want to grant the permission;
- When the user has made their decision, the application calls grant() or deny();
Alternatively, an application interested in modifying already granted permissions may use QWebEngineProfile::listAllPermissions() to get a list of existing permissions associated with a profile, or QWebEngineProfile::queryPermission() to get a QWebEnginePermission object for a specific permission.
The origin() property can be used to query which origin the QWebEnginePermission is associated with, while the permissionType() property describes the type of the requested permission. A website origin is the combination of its scheme, hostname, and port. Permissions are granted on a per-origin basis; thus, if the web page https://www.example.com:12345/some/page.html
requests a permission, it will be granted to the origin https://www.example.com:12345/
.
PermissionType describes all the permission types Qt WebEngine supports. Only some permission types are remembered between browsing sessions; they are persistent. Non-persistent permissions query the user every time a website requests them. You can check whether a permission type is persistent at runtime using the static method isPersistent().
Persistent permissions are stored inside the active QWebEngineProfile, and their lifetime depends on the value of QWebEngineProfile::persistentPermissionsPolicy(). By default, named profiles store their permissions on disk, whereas off-the-record ones store them in memory (and destroy them when the profile is destroyed). A stored permission will not query the user the next time a website requests it; instead it will be automatically granted or denied, depending on the resolution the user picked initially. To erase a stored permission, call reset() on it.
A non-persistent permission, on the other hand, is only usable until the related QWebEnginePage performs a navigation to a different URL, or is destroyed.
You can check whether a QWebEnginePermission is in a valid state using its isValid() property. For invalid objects, calls to grant(), deny(), or reset() will do nothing, while calls to state() will always return Invalid.
See also
QWebEnginePage::permissionRequested()QWebEngineProfile::queryPermission()QWebEngineProfile::listAllPermissions().
Enums¶
PermissionType
This enum type holds the type of the requested permission type:
Note: Non-persistent permission types are ones that will never be remembered by the underlying storage, and will trigger a permission request every time a website tries to use them.
Member | Value | Description |
---|---|---|
ClipboardReadWrite | 9 | Access to the user’s clipboard. This permission is persistent. |
DesktopAudioVideoCapture | 5 | Access to the contents of the user’s screen, and application audio. This permission is not persistent. |
DesktopVideoCapture | 4 | Access to the contents of the user’s screen. This permission is not persistent. |
Geolocation | 8 | Access to the user’s physical location. This permission is persistent. |
LocalFontsAccess | 10 | Access to the fonts installed on the user’s machine. Only available on desktops. This permission is persistent. |
MediaAudioCapture | 1 | Access to a microphone, or another audio source. This permission is not persistent. |
MediaAudioVideoCapture | 3 | Combination of MediaAudioCapture and MediaVideoCapture. This permission is not persistent. |
MediaVideoCapture | 2 | Access to a webcam, or another video source. This permission is not persistent. |
MouseLock | 6 | Locks the pointer inside an element on the web page. This permission is not persistent. |
Notifications | 7 | Allows the website to send notifications to the user. This permission is persistent. |
Unsupported | 0 | An unsupported permission type. |
State
This enum type holds the current state of the requested permission:
Member | Value | Description |
---|---|---|
Ask | 1 | Either the permission has not been requested before, or the permissionType() is not persistent. |
Denied | 3 | Permission has already been denied. |
Granted | 2 | Permission has already been granted. |
Invalid | 0 | Object is in an invalid state, and any attempts to modify the described permission will fail. |
Methods¶
__init__()
TODO
__init__(QWebEnginePermission)
TODO
deny()
Stops the associated origin from accessing the requested permissionType(). Does nothing when isValid() evaluates to false.
See also
__eq__(QWebEnginePermission) → bool
TODO
grant()
Allows the associated origin to access the requested permissionType(). Does nothing when isValid() evaluates to false.
See also
@staticmethod
isPersistent(PermissionType) → bool
Returns whether a permissionType is persistent, meaning that a permission’s state will be remembered and the user will not be queried the next time the website requests the same permission.
isValid() → bool
TODO
__ne__(QWebEnginePermission) → bool
TODO
origin() → QUrl
TODO
permissionType() → PermissionType
TODO
reset()
Removes the permission from the profile’s underlying storage. By default, permissions are stored on disk (except for off-the-record profiles, where permissions are stored in memory and are destroyed with the profile). This means that an already granted/denied permission will not be requested twice, but will get automatically granted/denied every subsequent time a website requests it. Calling reset() allows the query to be displayed again the next time the website requests it.
Does nothing when isValid() evaluates to false.
See also
state() → State
TODO
swap(QWebEnginePermission)
TODO