41 self.__feature = feature |
41 self.__feature = feature |
42 self.__page = page |
42 self.__page = page |
43 self.__manager = manager |
43 self.__manager = manager |
44 |
44 |
45 self.__permissionFeatureTexts = { |
45 self.__permissionFeatureTexts = { |
46 QWebEnginePage.Geolocation: |
46 QWebEnginePage.Feature.Geolocation: |
47 self.tr("{0} wants to use your position."), |
47 self.tr("{0} wants to use your position."), |
48 QWebEnginePage.MediaAudioCapture: |
48 QWebEnginePage.Feature.MediaAudioCapture: |
49 self.tr("{0} wants to use your microphone."), |
49 self.tr("{0} wants to use your microphone."), |
50 QWebEnginePage.MediaVideoCapture: |
50 QWebEnginePage.Feature.MediaVideoCapture: |
51 self.tr("{0} wants to use your camera."), |
51 self.tr("{0} wants to use your camera."), |
52 QWebEnginePage.MediaAudioVideoCapture: |
52 QWebEnginePage.Feature.MediaAudioVideoCapture: |
53 self.tr("{0} wants to use your microphone and camera."), |
53 self.tr("{0} wants to use your microphone and camera."), |
54 QWebEnginePage.MouseLock: |
54 QWebEnginePage.Feature.MouseLock: |
55 self.tr("{0} wants to lock your mouse."), |
55 self.tr("{0} wants to lock your mouse."), |
56 } |
56 } |
57 try: |
57 try: |
58 # these are defined as of Qt 5.10.0/PyQt 5.10.0 |
58 # these are defined as of Qt 5.10.0/PyQt 5.10.0 |
59 self.__permissionFeatureTexts.update({ |
59 self.__permissionFeatureTexts.update({ |
60 QWebEnginePage.DesktopVideoCapture: |
60 QWebEnginePage.Feature.DesktopVideoCapture: |
61 self.tr("{0} wants to capture video of your screen."), |
61 self.tr("{0} wants to capture video of your screen."), |
62 QWebEnginePage.DesktopAudioVideoCapture: |
62 QWebEnginePage.Feature.DesktopAudioVideoCapture: |
63 self.tr("{0} wants to capture audio and video of your" |
63 self.tr("{0} wants to capture audio and video of your" |
64 " screen."), |
64 " screen."), |
65 }) |
65 }) |
66 except AttributeError: |
66 except AttributeError: |
67 pass |
67 pass |
68 try: |
68 try: |
69 # this was re-added in Qt 5.13.0 |
69 # this was re-added in Qt 5.13.0 |
70 self.__permissionFeatureTexts[ |
70 self.__permissionFeatureTexts[ |
71 QWebEnginePage.Notifications] = self.tr( |
71 QWebEnginePage.Feature.Notifications] = self.tr( |
72 "{0} wants to use desktop notifications.") |
72 "{0} wants to use desktop notifications.") |
73 except AttributeError: |
73 except AttributeError: |
74 pass |
74 pass |
75 |
75 |
76 self.__permissionFeatureIconNames = { |
76 self.__permissionFeatureIconNames = { |
77 QWebEnginePage.Geolocation: "geolocation", |
77 QWebEnginePage.Feature.Geolocation: "geolocation", |
78 QWebEnginePage.MediaAudioCapture: "audiocapture", |
78 QWebEnginePage.Feature.MediaAudioCapture: "audiocapture", |
79 QWebEnginePage.MediaVideoCapture: "camera", |
79 QWebEnginePage.Feature.MediaVideoCapture: "camera", |
80 QWebEnginePage.MediaAudioVideoCapture: "audio-video", |
80 QWebEnginePage.Feature.MediaAudioVideoCapture: "audio-video", |
81 QWebEnginePage.MouseLock: "mouse", |
81 QWebEnginePage.Feature.MouseLock: "mouse", |
82 } |
82 } |
83 try: |
83 try: |
84 # these are defined as of Qt 5.10.0/PyQt 5.10.0 |
84 # these are defined as of Qt 5.10.0/PyQt 5.10.0 |
85 self.__permissionFeatureIconNames.update({ |
85 self.__permissionFeatureIconNames.update({ |
86 QWebEnginePage.DesktopVideoCapture: "desktopVideoCapture", |
86 QWebEnginePage.Feature.DesktopVideoCapture: |
87 QWebEnginePage.DesktopAudioVideoCapture: |
87 "desktopVideoCapture", |
|
88 QWebEnginePage.Feature.DesktopAudioVideoCapture: |
88 "desktopAudioVideoCapture", |
89 "desktopAudioVideoCapture", |
89 }) |
90 }) |
90 except AttributeError: |
91 except AttributeError: |
91 pass |
92 pass |
92 try: |
93 try: |
93 # this was re-added in Qt 5.13.0 |
94 # this was re-added in Qt 5.13.0 |
94 self.__permissionFeatureIconNames[ |
95 self.__permissionFeatureIconNames[ |
95 QWebEnginePage.Notifications] = "notification" |
96 QWebEnginePage.Feature.Notifications] = "notification" |
96 except AttributeError: |
97 except AttributeError: |
97 pass |
98 pass |
98 |
99 |
99 self.setAutoFillBackground(True) |
100 self.setAutoFillBackground(True) |
100 self.__layout = QHBoxLayout() |
101 self.__layout = QHBoxLayout() |
154 if self.__page is None or self.__manager is None: |
155 if self.__page is None or self.__manager is None: |
155 return |
156 return |
156 |
157 |
157 self.__page.setFeaturePermission( |
158 self.__page.setFeaturePermission( |
158 self.__origin, self.__feature, |
159 self.__origin, self.__feature, |
159 QWebEnginePage.PermissionDeniedByUser) |
160 QWebEnginePage.PermissionPolicy.PermissionDeniedByUser) |
160 |
161 |
161 if self.__rememberButton.isChecked(): |
162 if self.__rememberButton.isChecked(): |
162 self.__manager.rememberFeaturePermission( |
163 self.__manager.rememberFeaturePermission( |
163 self.__page.url().host(), self.__feature, |
164 self.__page.url().host(), self.__feature, |
164 QWebEnginePage.PermissionDeniedByUser) |
165 QWebEnginePage.PermissionPolicy.PermissionDeniedByUser) |
165 |
166 |
166 self.hide() |
167 self.hide() |
167 |
168 |
168 def __permissionGranted(self): |
169 def __permissionGranted(self): |
169 """ |
170 """ |
172 if self.__page is None or self.__manager is None: |
173 if self.__page is None or self.__manager is None: |
173 return |
174 return |
174 |
175 |
175 self.__page.setFeaturePermission( |
176 self.__page.setFeaturePermission( |
176 self.__origin, self.__feature, |
177 self.__origin, self.__feature, |
177 QWebEnginePage.PermissionGrantedByUser) |
178 QWebEnginePage.PermissionPolicy.PermissionGrantedByUser) |
178 |
179 |
179 if self.__rememberButton.isChecked(): |
180 if self.__rememberButton.isChecked(): |
180 self.__manager.rememberFeaturePermission( |
181 self.__manager.rememberFeaturePermission( |
181 self.__page.url().host(), self.__feature, |
182 self.__page.url().host(), self.__feature, |
182 QWebEnginePage.PermissionGrantedByUser) |
183 QWebEnginePage.PermissionPolicy.PermissionGrantedByUser) |
183 |
184 |
184 self.hide() |
185 self.hide() |
185 |
186 |
186 def __permissionUnknown(self): |
187 def __permissionUnknown(self): |
187 """ |
188 """ |