src/eric7/WebBrowser/FeaturePermissions/FeaturePermissionManager.py

branch
eric7
changeset 9482
a2bc06a54d9d
parent 9473
3f23dbf37dbe
child 9653
e67609152c5e
equal deleted inserted replaced
9481:0b936ff1bbb9 9482:a2bc06a54d9d
10 from PyQt6.QtCore import QObject 10 from PyQt6.QtCore import QObject
11 from PyQt6.QtWebEngineCore import QWebEnginePage 11 from PyQt6.QtWebEngineCore import QWebEnginePage
12 from PyQt6.QtWidgets import QDialog 12 from PyQt6.QtWidgets import QDialog
13 13
14 from eric7 import Globals, Preferences 14 from eric7 import Globals, Preferences
15 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
15 16
16 17
17 class FeaturePermissionManager(QObject): 18 class FeaturePermissionManager(QObject):
18 """ 19 """
19 Class implementing the feature permission manager object. 20 Class implementing the feature permission manager object.
143 @param origin security origin requesting the feature 144 @param origin security origin requesting the feature
144 @type QUrl 145 @type QUrl
145 @param feature requested feature 146 @param feature requested feature
146 @type QWebEnginePage.Feature 147 @type QWebEnginePage.Feature
147 """ 148 """
149 from .FeaturePermissionBar import FeaturePermissionBar
150
148 if origin is None or origin.isEmpty(): 151 if origin is None or origin.isEmpty():
149 return 152 return
150 153
151 if not self.__loaded: 154 if not self.__loaded:
152 self.__loadSettings() 155 self.__loadSettings()
156 if feature in self.__featurePermissions: 159 if feature in self.__featurePermissions:
157 for permission in self.__featurePermissions[feature]: 160 for permission in self.__featurePermissions[feature]:
158 if host in self.__featurePermissions[feature][permission]: 161 if host in self.__featurePermissions[feature][permission]:
159 page.setFeaturePermission(origin, feature, permission) 162 page.setFeaturePermission(origin, feature, permission)
160 return 163 return
161
162 from .FeaturePermissionBar import FeaturePermissionBar
163 164
164 bar = FeaturePermissionBar(page, origin, feature, self) 165 bar = FeaturePermissionBar(page, origin, feature, self)
165 bar.show() 166 bar.show()
166 167
167 def rememberFeaturePermission(self, host, feature, permission): 168 def rememberFeaturePermission(self, host, feature, permission):
204 Private method to save the remembered feature permissions. 205 Private method to save the remembered feature permissions.
205 """ 206 """
206 if not self.__loaded: 207 if not self.__loaded:
207 return 208 return
208 209
209 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
210
211 if WebBrowserWindow.isPrivate(): 210 if WebBrowserWindow.isPrivate():
212 return 211 return
213 212
214 for (feature, permission), key in self.__featurePermissionsKeys.items(): 213 for (feature, permission), key in self.__featurePermissionsKeys.items():
215 Preferences.getSettings().setValue( 214 Preferences.getSettings().setValue(
216 FeaturePermissionManager.SettingsKeyFormat.format(key), 215 FeaturePermissionManager.SettingsKeyFormat.format(key),
217 self.__featurePermissions[feature][permission], 216 self.__featurePermissions[feature][permission],
218 ) 217 )
219 218
220 def showFeaturePermissionsDialog(self): 219 def showFeaturePermissionsDialog(self, parent=None):
221 """ 220 """
222 Public method to show a dialog to manage the remembered feature 221 Public method to show a dialog to manage the remembered feature
223 permissions. 222 permissions.
224 """ 223
224 @param parent reference to the parent widget
225 @type QWidget
226 """
227 from .FeaturePermissionsDialog import FeaturePermissionsDialog
228
225 if not self.__loaded: 229 if not self.__loaded:
226 self.__loadSettings() 230 self.__loadSettings()
227 231
228 from .FeaturePermissionsDialog import FeaturePermissionsDialog 232 dlg = FeaturePermissionsDialog(self.__featurePermissions, parent=parent)
229
230 dlg = FeaturePermissionsDialog(self.__featurePermissions)
231 if dlg.exec() == QDialog.DialogCode.Accepted: 233 if dlg.exec() == QDialog.DialogCode.Accepted:
232 newFeaturePermissions = dlg.getData() 234 newFeaturePermissions = dlg.getData()
233 self.__featurePermissions = newFeaturePermissions 235 self.__featurePermissions = newFeaturePermissions
234 self.__saveSettings() 236 self.__saveSettings()

eric ide

mercurial