10 |
10 |
11 import json |
11 import json |
12 |
12 |
13 from PyQt5.QtCore import pyqtSignal, QByteArray |
13 from PyQt5.QtCore import pyqtSignal, QByteArray |
14 from PyQt5.QtWidgets import qApp, QStyle, QDialog |
14 from PyQt5.QtWidgets import qApp, QStyle, QDialog |
15 from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkProxy, \ |
15 from PyQt5.QtNetwork import ( |
16 QNetworkProxyFactory, QNetworkRequest |
16 QNetworkAccessManager, QNetworkProxy, QNetworkProxyFactory, QNetworkRequest |
|
17 ) |
17 |
18 |
18 from E5Gui import E5MessageBox |
19 from E5Gui import E5MessageBox |
19 |
20 |
20 from E5Network.E5NetworkProxyFactory import proxyAuthenticationRequired |
21 from E5Network.E5NetworkProxyFactory import proxyAuthenticationRequired |
21 try: |
22 try: |
184 """ |
185 """ |
185 self.__load() |
186 self.__load() |
186 |
187 |
187 host = error.url().host() |
188 host = error.url().host() |
188 |
189 |
189 if host in self.__temporarilyIgnoredSslErrors and \ |
190 if ( |
190 error.error() in self.__temporarilyIgnoredSslErrors[host]: |
191 host in self.__temporarilyIgnoredSslErrors and |
|
192 error.error() in self.__temporarilyIgnoredSslErrors[host] |
|
193 ): |
191 return True |
194 return True |
192 |
195 |
193 if host in self.__permanentlyIgnoredSslErrors and \ |
196 if ( |
194 error.error() in self.__permanentlyIgnoredSslErrors[host]: |
197 host in self.__permanentlyIgnoredSslErrors and |
|
198 error.error() in self.__permanentlyIgnoredSslErrors[host] |
|
199 ): |
195 return True |
200 return True |
196 |
201 |
197 title = self.tr("SSL Certificate Error") |
202 title = self.tr("SSL Certificate Error") |
198 msgBox = E5MessageBox.E5MessageBox( |
203 msgBox = E5MessageBox.E5MessageBox( |
199 E5MessageBox.Warning, |
204 E5MessageBox.Warning, |
234 @param auth reference to the authenticator object |
239 @param auth reference to the authenticator object |
235 @type QAuthenticator |
240 @type QAuthenticator |
236 @param page reference to the web page |
241 @param page reference to the web page |
237 @type QWebEnginePage or None |
242 @type QWebEnginePage or None |
238 """ |
243 """ |
239 urlRoot = "{0}://{1}"\ |
244 urlRoot = ( |
240 .format(url.scheme(), url.authority()) |
245 "{0}://{1}".format(url.scheme(), url.authority()) |
|
246 ) |
241 realm = auth.realm() |
247 realm = auth.realm() |
242 if not realm and 'realm' in auth.options(): |
248 if not realm and 'realm' in auth.options(): |
243 realm = auth.option("realm") |
249 realm = auth.option("realm") |
244 if realm: |
250 if realm: |
245 info = self.tr("<b>Enter username and password for '{0}', " |
251 info = self.tr( |
246 "realm '{1}'</b>").format(urlRoot, realm) |
252 "<b>Enter username and password for '{0}', realm '{1}'</b>" |
247 else: |
253 ).format(urlRoot, realm) |
248 info = self.tr("<b>Enter username and password for '{0}'</b>")\ |
254 else: |
249 .format(urlRoot) |
255 info = self.tr( |
|
256 "<b>Enter username and password for '{0}'</b>" |
|
257 ).format(urlRoot) |
250 |
258 |
251 from UI.AuthenticationDialog import AuthenticationDialog |
259 from UI.AuthenticationDialog import AuthenticationDialog |
252 import WebBrowser.WebBrowserWindow |
260 import WebBrowser.WebBrowserWindow |
253 |
261 |
254 dlg = AuthenticationDialog(info, auth.user(), |
262 dlg = AuthenticationDialog(info, auth.user(), |
255 Preferences.getUser("SavePasswords"), |
263 Preferences.getUser("SavePasswords"), |
256 Preferences.getUser("SavePasswords")) |
264 Preferences.getUser("SavePasswords")) |
257 if Preferences.getUser("SavePasswords"): |
265 if Preferences.getUser("SavePasswords"): |
258 username, password = \ |
266 username, password = ( |
259 WebBrowser.WebBrowserWindow.WebBrowserWindow.passwordManager()\ |
267 WebBrowser.WebBrowserWindow.WebBrowserWindow |
260 .getLogin(url, realm) |
268 .passwordManager().getLogin(url, realm) |
|
269 ) |
261 if username: |
270 if username: |
262 dlg.setData(username, password) |
271 dlg.setData(username, password) |
263 if dlg.exec_() == QDialog.Accepted: |
272 if dlg.exec_() == QDialog.Accepted: |
264 username, password = dlg.getData() |
273 username, password = dlg.getData() |
265 auth.setUser(username) |
274 auth.setUser(username) |
266 auth.setPassword(password) |
275 auth.setPassword(password) |
267 if Preferences.getUser("SavePasswords") and dlg.shallSave(): |
276 if Preferences.getUser("SavePasswords") and dlg.shallSave(): |
268 WebBrowser.WebBrowserWindow.WebBrowserWindow.passwordManager()\ |
277 ( |
269 .setLogin(url, realm, username, password) |
278 WebBrowser.WebBrowserWindow.WebBrowserWindow |
|
279 .passwordManager().setLogin( |
|
280 url, realm, username, password) |
|
281 ) |
270 else: |
282 else: |
271 if page is not None: |
283 if page is not None: |
272 self.__showAuthenticationErrorPage(page, url) |
284 self.__showAuthenticationErrorPage(page, url) |
273 |
285 |
274 def __showAuthenticationErrorPage(self, page, url): |
286 def __showAuthenticationErrorPage(self, page, url): |
318 |
330 |
319 def languagesChanged(self): |
331 def languagesChanged(self): |
320 """ |
332 """ |
321 Public slot to (re-)load the list of accepted languages. |
333 Public slot to (re-)load the list of accepted languages. |
322 """ |
334 """ |
323 from WebBrowser.WebBrowserLanguagesDialog import \ |
335 from WebBrowser.WebBrowserLanguagesDialog import ( |
324 WebBrowserLanguagesDialog |
336 WebBrowserLanguagesDialog |
|
337 ) |
325 languages = Preferences.toList( |
338 languages = Preferences.toList( |
326 Preferences.Prefs.settings.value( |
339 Preferences.Prefs.settings.value( |
327 "WebBrowser/AcceptLanguages", |
340 "WebBrowser/AcceptLanguages", |
328 WebBrowserLanguagesDialog.defaultAcceptLanguages())) |
341 WebBrowserLanguagesDialog.defaultAcceptLanguages())) |
329 self.__acceptLanguage = WebBrowserLanguagesDialog.httpString(languages) |
342 self.__acceptLanguage = WebBrowserLanguagesDialog.httpString(languages) |