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