--- a/eric6/WebBrowser/FeaturePermissions/FeaturePermissionManager.py Thu Apr 15 16:52:05 2021 +0200 +++ b/eric6/WebBrowser/FeaturePermissions/FeaturePermissionManager.py Thu Apr 15 18:11:24 2021 +0200 @@ -7,6 +7,8 @@ Module implementing the feature permission manager object. """ +import contextlib + from PyQt5.QtCore import QObject from PyQt5.QtWidgets import QDialog from PyQt5.QtWebEngineWidgets import QWebEnginePage @@ -51,33 +53,25 @@ QWebEnginePage.PermissionPolicy.PermissionGrantedByUser: [], QWebEnginePage.PermissionPolicy.PermissionDeniedByUser: [], }, + QWebEnginePage.Feature.DesktopVideoCapture: { + QWebEnginePage.PermissionPolicy.PermissionGrantedByUser: + [], + QWebEnginePage.PermissionPolicy.PermissionDeniedByUser: + [], + }, + QWebEnginePage.Feature.DesktopAudioVideoCapture: { + QWebEnginePage.PermissionPolicy.PermissionGrantedByUser: + [], + QWebEnginePage.PermissionPolicy.PermissionDeniedByUser: + [], + }, } - try: - # these are defined as of Qt 5.10.0/PyQt 5.10.0 - self.__featurePermissions.update({ - QWebEnginePage.Feature.DesktopVideoCapture: { - QWebEnginePage.PermissionPolicy.PermissionGrantedByUser: - [], - QWebEnginePage.PermissionPolicy.PermissionDeniedByUser: - [], - }, - QWebEnginePage.Feature.DesktopAudioVideoCapture: { - QWebEnginePage.PermissionPolicy.PermissionGrantedByUser: - [], - QWebEnginePage.PermissionPolicy.PermissionDeniedByUser: - [], - }, - }) - except AttributeError: - pass - try: + with contextlib.suppress(AttributeError): # this was re-added in Qt 5.13.0 self.__featurePermissions[QWebEnginePage.Feature.Notifications] = { QWebEnginePage.PermissionPolicy.PermissionGrantedByUser: [], QWebEnginePage.PermissionPolicy.PermissionDeniedByUser: [], } - except AttributeError: - pass self.__featurePermissionsKeys = { (QWebEnginePage.Feature.Geolocation, @@ -110,26 +104,20 @@ (QWebEnginePage.Feature.MouseLock, QWebEnginePage.PermissionPolicy.PermissionDeniedByUser): "MouseLockDenied", + (QWebEnginePage.Feature.DesktopVideoCapture, + QWebEnginePage.PermissionPolicy.PermissionGrantedByUser): + "DesktopVideoCaptureGranted", + (QWebEnginePage.Feature.DesktopVideoCapture, + QWebEnginePage.PermissionPolicy.PermissionDeniedByUser): + "DesktopVideoCaptureDenied", + (QWebEnginePage.Feature.DesktopAudioVideoCapture, + QWebEnginePage.PermissionPolicy.PermissionGrantedByUser): + "DesktopAudioVideoCaptureGranted", + (QWebEnginePage.Feature.DesktopAudioVideoCapture, + QWebEnginePage.PermissionPolicy.PermissionDeniedByUser): + "DesktopAudioVideoCaptureDenied", } - try: - # these are defined as of Qt 5.10.0/PyQt 5.10.0 - self.__featurePermissionsKeys.update({ - (QWebEnginePage.Feature.DesktopVideoCapture, - QWebEnginePage.PermissionPolicy.PermissionGrantedByUser): - "DesktopVideoCaptureGranted", - (QWebEnginePage.Feature.DesktopVideoCapture, - QWebEnginePage.PermissionPolicy.PermissionDeniedByUser): - "DesktopVideoCaptureDenied", - (QWebEnginePage.Feature.DesktopAudioVideoCapture, - QWebEnginePage.PermissionPolicy.PermissionGrantedByUser): - "DesktopAudioVideoCaptureGranted", - (QWebEnginePage.Feature.DesktopAudioVideoCapture, - QWebEnginePage.PermissionPolicy.PermissionDeniedByUser): - "DesktopAudioVideoCaptureDenied", - }) - except AttributeError: - pass - try: + with contextlib.suppress(AttributeError): # this was re-added in Qt 5.13.0 self.__featurePermissionsKeys.update({ (QWebEnginePage.Feature.Notifications, @@ -139,8 +127,6 @@ QWebEnginePage.PermissionPolicy.PermissionDeniedByUser): "NotificationsDenied", }) - except AttributeError: - pass self.__loaded = False