Wed, 05 Jun 2013 20:23:59 +0200
Fix for wrong web caching mechanism.
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
2302
f29e9405c851
Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
3 | # Copyright (c) 2009 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a QNetworkAccessManager subclass. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import os |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
2080
4b33165dd55b
Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2078
diff
changeset
|
12 | from PyQt4.QtCore import pyqtSignal, QByteArray, qVersion |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
13 | from PyQt4.QtGui import QDialog |
491
ac476c22d392
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
14 | from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply |
2687
33a848c5e46f
Changed the name of the cache directory of the web browser to reflect the Qt and Webkit version number in order to avoid cahe trouble.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
15 | from PyQt4.QtWebKit import qWebKitVersion |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | try: |
721
9dd401431fcc
Change the SSL error handling of the network access handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
666
diff
changeset
|
17 | from PyQt4.QtNetwork import QSslCertificate, QSslConfiguration, QSslSocket, \ |
1219
c051673f8aaf
Added code to support any SSL protocol.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
18 | QSslError, QSsl |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | SSL_AVAILABLE = True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | except ImportError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | SSL_AVAILABLE = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
538
7f1a56e80124
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
23 | from E5Gui import E5MessageBox |
7f1a56e80124
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
24 | |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
286
diff
changeset
|
25 | from E5Network.E5NetworkProxyFactory import E5NetworkProxyFactory, \ |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
286
diff
changeset
|
26 | proxyAuthenticationRequired |
270
41505c92ac31
Added code to enhance the proxy configuration and removed the usage of QHttp.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
140
diff
changeset
|
27 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | from UI.AuthenticationDialog import AuthenticationDialog |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | from Helpviewer.HelpLanguagesDialog import HelpLanguagesDialog |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | import Helpviewer.HelpWindow |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8
diff
changeset
|
33 | from .NetworkProtocolUnknownErrorReply import NetworkProtocolUnknownErrorReply |
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8
diff
changeset
|
34 | from .NetworkDiskCache import NetworkDiskCache |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8
diff
changeset
|
36 | from .QtHelpAccessHandler import QtHelpAccessHandler |
1674
7eb92d0bc124
Renamed PyrcAccessHandler to EricAccessHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1665
diff
changeset
|
37 | from .EricAccessHandler import EricAccessHandler |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8
diff
changeset
|
38 | from .AboutAccessHandler import AboutAccessHandler |
278
c93823b96faa
Added a handler for ftp: URLs to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
270
diff
changeset
|
39 | from .FtpAccessHandler import FtpAccessHandler |
2063
2227d4cc905e
Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2059
diff
changeset
|
40 | from .FileAccessHandler import FileAccessHandler |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | from Helpviewer.AdBlock.AdBlockAccessHandler import AdBlockAccessHandler |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | import Preferences |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | import Utilities |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
47 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | class NetworkAccessManager(QNetworkAccessManager): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | Class implementing a QNetworkAccessManager subclass. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
491
diff
changeset
|
52 | @signal requestCreated(QNetworkAccessManager.Operation, QNetworkRequest, QNetworkReply) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | emitted after the request has been created |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | """ |
491
ac476c22d392
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
55 | requestCreated = pyqtSignal( |
ac476c22d392
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
56 | QNetworkAccessManager.Operation, QNetworkRequest, QNetworkReply) |
ac476c22d392
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
57 | |
2692
6433ec640d10
Added code to blacklist hosts from caching.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2687
diff
changeset
|
58 | NoCacheHosts = [ |
6433ec640d10
Added code to blacklist hosts from caching.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2687
diff
changeset
|
59 | "qt-project.org", |
6433ec640d10
Added code to blacklist hosts from caching.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2687
diff
changeset
|
60 | ] |
6433ec640d10
Added code to blacklist hosts from caching.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2687
diff
changeset
|
61 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
62 | def __init__(self, engine, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | @param engine reference to the help engine (QHelpEngine) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | @param parent reference to the parent object (QObject) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1127
diff
changeset
|
69 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | self.__adblockNetwork = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | self.__schemeHandlers = {} # dictionary of scheme handlers |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | |
270
41505c92ac31
Added code to enhance the proxy configuration and removed the usage of QHttp.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
140
diff
changeset
|
75 | self.__proxyFactory = E5NetworkProxyFactory() |
41505c92ac31
Added code to enhance the proxy configuration and removed the usage of QHttp.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
140
diff
changeset
|
76 | self.setProxyFactory(self.__proxyFactory) |
41505c92ac31
Added code to enhance the proxy configuration and removed the usage of QHttp.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
140
diff
changeset
|
77 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | self.__setDiskCache() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | self.languagesChanged() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | if SSL_AVAILABLE: |
762
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
82 | caList = self.__getSystemCaCertificates() |
748
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
83 | certificateDict = Preferences.toDict( |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
84 | Preferences.Prefs.settings.value("Help/CaCertificatesDict")) |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
85 | for server in certificateDict: |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
86 | for cert in QSslCertificate.fromData(certificateDict[server]): |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
87 | if cert not in caList: |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
88 | caList.append(cert) |
762
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
89 | sslCfg = QSslConfiguration.defaultConfiguration() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | sslCfg.setCaCertificates(caList) |
1219
c051673f8aaf
Added code to support any SSL protocol.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
91 | sslCfg.setProtocol(QSsl.AnyProtocol) |
2067
778e254ad4ee
Added code to work around a security vulnerability discovered in SSL (as recommended by Digia).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2063
diff
changeset
|
92 | try: |
778e254ad4ee
Added code to work around a security vulnerability discovered in SSL (as recommended by Digia).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2063
diff
changeset
|
93 | sslCfg.setSslOption(QSsl.SslOptionDisableCompression, True) |
778e254ad4ee
Added code to work around a security vulnerability discovered in SSL (as recommended by Digia).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2063
diff
changeset
|
94 | except AttributeError: |
778e254ad4ee
Added code to work around a security vulnerability discovered in SSL (as recommended by Digia).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2063
diff
changeset
|
95 | pass |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | QSslConfiguration.setDefaultConfiguration(sslCfg) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | |
491
ac476c22d392
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
98 | self.sslErrors.connect(self.__sslErrors) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | |
491
ac476c22d392
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
100 | self.proxyAuthenticationRequired.connect(proxyAuthenticationRequired) |
ac476c22d392
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
101 | self.authenticationRequired.connect(self.__authenticationRequired) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | |
1314
7e7b88c58fda
Added the "Do Not Track" feature.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1219
diff
changeset
|
103 | self.__doNotTrack = Preferences.getHelp("DoNotTrack") |
1661
bfc2ea19b08f
Added capability to suppress Referer Headers (configurable via eric4 Web Browser configuration page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
104 | self.__sendReferer = Preferences.getHelp("SendReferer") |
1314
7e7b88c58fda
Added the "Do Not Track" feature.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1219
diff
changeset
|
105 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | # register scheme handlers |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | self.setSchemeHandler("qthelp", QtHelpAccessHandler(engine, self)) |
1674
7eb92d0bc124
Renamed PyrcAccessHandler to EricAccessHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1665
diff
changeset
|
108 | self.setSchemeHandler("eric", EricAccessHandler(self)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | self.setSchemeHandler("about", AboutAccessHandler(self)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | self.setSchemeHandler("abp", AdBlockAccessHandler(self)) |
278
c93823b96faa
Added a handler for ftp: URLs to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
270
diff
changeset
|
111 | self.setSchemeHandler("ftp", FtpAccessHandler(self)) |
2063
2227d4cc905e
Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2059
diff
changeset
|
112 | self.setSchemeHandler("file", FileAccessHandler(self)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | def setSchemeHandler(self, scheme, handler): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | Public method to register a scheme handler. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | @param scheme access scheme (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | @param handler reference to the scheme handler object (SchemeAccessHandler) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | self.__schemeHandlers[scheme] = handler |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
123 | def createRequest(self, op, request, outgoingData=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | Protected method to create a request. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | @param op the operation to be performed (QNetworkAccessManager.Operation) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | @param request reference to the request object (QNetworkRequest) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | @param outgoingData reference to an IODevice containing data to be sent |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | (QIODevice) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | @return reference to the created reply object (QNetworkReply) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | scheme = request.url().scheme() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | if scheme == "https" and (not SSL_AVAILABLE or not QSslSocket.supportsSsl()): |
666
fdd568d3533d
Fixed a forgotten parenting of network replies in the network access manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
664
diff
changeset
|
135 | return NetworkProtocolUnknownErrorReply(scheme, self) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | if op == QNetworkAccessManager.PostOperation and outgoingData is not None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | outgoingDataByteArray = outgoingData.peek(1024 * 1024) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | Helpviewer.HelpWindow.HelpWindow.passwordManager().post( |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | request, outgoingDataByteArray) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | reply = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | if scheme in self.__schemeHandlers: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | reply = self.__schemeHandlers[scheme]\ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | .createRequest(op, request, outgoingData) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | if reply is not None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | return reply |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | |
1953
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
149 | # give GreaseMonkey the chance to create a request |
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
150 | reply = Helpviewer.HelpWindow.HelpWindow.greaseMonkeyManager().createRequest( |
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
151 | op, request, outgoingData) |
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
152 | if reply is not None: |
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
153 | return reply |
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
154 | |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
286
diff
changeset
|
155 | req = QNetworkRequest(request) |
1953
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
156 | if req.rawHeader("X-Eric5-UserLoadAction") == QByteArray("1"): |
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
157 | req.setRawHeader("X-Eric5-UserLoadAction", QByteArray()) |
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
158 | req.setAttribute(QNetworkRequest.User + 200, "") |
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
159 | else: |
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
160 | req.setAttribute(QNetworkRequest.User + 200, req.rawHeader("Referer")) |
26aa6fd94dc2
Added support for GreaseMonkey scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1917
diff
changeset
|
161 | |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
286
diff
changeset
|
162 | if hasattr(QNetworkRequest, 'HttpPipeliningAllowedAttribute'): |
826
2e3e2055e715
Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
163 | req.setAttribute(QNetworkRequest.HttpPipeliningAllowedAttribute, True) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | if not self.__acceptLanguage.isEmpty(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | req.setRawHeader("Accept-Language", self.__acceptLanguage) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | # AdBlock code |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | if op == QNetworkAccessManager.GetOperation: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | if self.__adblockNetwork is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | self.__adblockNetwork = \ |
1970
02cf3bac079b
Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1953
diff
changeset
|
171 | Helpviewer.HelpWindow.HelpWindow.adBlockManager().network() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | reply = self.__adblockNetwork.block(req) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | if reply is not None: |
666
fdd568d3533d
Fixed a forgotten parenting of network replies in the network access manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
664
diff
changeset
|
174 | reply.setParent(self) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | return reply |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | |
2692
6433ec640d10
Added code to blacklist hosts from caching.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2687
diff
changeset
|
177 | # set cache policy |
2700
cb064ba8fcfa
Fix for wrong web caching mechanism.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2692
diff
changeset
|
178 | if op == QNetworkAccessManager.GetOperation: |
cb064ba8fcfa
Fix for wrong web caching mechanism.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2692
diff
changeset
|
179 | urlHost = req.url().host() |
cb064ba8fcfa
Fix for wrong web caching mechanism.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2692
diff
changeset
|
180 | for host in self.NoCacheHosts: |
cb064ba8fcfa
Fix for wrong web caching mechanism.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2692
diff
changeset
|
181 | if host in urlHost: |
cb064ba8fcfa
Fix for wrong web caching mechanism.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2692
diff
changeset
|
182 | req.setAttribute(QNetworkRequest.CacheLoadControlAttribute, |
cb064ba8fcfa
Fix for wrong web caching mechanism.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2692
diff
changeset
|
183 | QNetworkRequest.AlwaysNetwork) |
cb064ba8fcfa
Fix for wrong web caching mechanism.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2692
diff
changeset
|
184 | break |
cb064ba8fcfa
Fix for wrong web caching mechanism.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2692
diff
changeset
|
185 | else: |
2692
6433ec640d10
Added code to blacklist hosts from caching.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2687
diff
changeset
|
186 | req.setAttribute(QNetworkRequest.CacheLoadControlAttribute, |
2700
cb064ba8fcfa
Fix for wrong web caching mechanism.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2692
diff
changeset
|
187 | Preferences.getHelp("CachePolicy")) |
2692
6433ec640d10
Added code to blacklist hosts from caching.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2687
diff
changeset
|
188 | else: |
6433ec640d10
Added code to blacklist hosts from caching.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2687
diff
changeset
|
189 | req.setAttribute(QNetworkRequest.CacheLoadControlAttribute, |
2700
cb064ba8fcfa
Fix for wrong web caching mechanism.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2692
diff
changeset
|
190 | QNetworkRequest.AlwaysNetwork) |
2692
6433ec640d10
Added code to blacklist hosts from caching.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2687
diff
changeset
|
191 | |
1314
7e7b88c58fda
Added the "Do Not Track" feature.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1219
diff
changeset
|
192 | # Do Not Track feature |
7e7b88c58fda
Added the "Do Not Track" feature.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1219
diff
changeset
|
193 | if self.__doNotTrack: |
7e7b88c58fda
Added the "Do Not Track" feature.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1219
diff
changeset
|
194 | req.setRawHeader("DNT", "1") |
7e7b88c58fda
Added the "Do Not Track" feature.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1219
diff
changeset
|
195 | |
1661
bfc2ea19b08f
Added capability to suppress Referer Headers (configurable via eric4 Web Browser configuration page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
196 | # Send referer header? |
1917
c73052b6b65e
Fixed an issue with failed logins for certain files by implementing a referer whitelist. All hosts in this list will get a referer header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1674
diff
changeset
|
197 | if not self.__sendReferer and \ |
c73052b6b65e
Fixed an issue with failed logins for certain files by implementing a referer whitelist. All hosts in this list will get a referer header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1674
diff
changeset
|
198 | req.url().host() not in Preferences.getHelp("SendRefererWhitelist"): |
1661
bfc2ea19b08f
Added capability to suppress Referer Headers (configurable via eric4 Web Browser configuration page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
199 | req.setRawHeader("Referer", "") |
bfc2ea19b08f
Added capability to suppress Referer Headers (configurable via eric4 Web Browser configuration page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
200 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | reply = QNetworkAccessManager.createRequest(self, op, req, outgoingData) |
491
ac476c22d392
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
202 | self.requestCreated.emit(op, req, reply) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | return reply |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | def __authenticationRequired(self, reply, auth): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | Private slot to handle an authentication request. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | @param reply reference to the reply object (QNetworkReply) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | @param auth reference to the authenticator object (QAuthenticator) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | urlRoot = "{0}://{1}"\ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | .format(reply.url().scheme(), reply.url().authority()) |
2050
585f6646bf50
Changed the FtpReply to support proxy access and to not show user and password in the URL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1970
diff
changeset
|
215 | realm = auth.realm() |
585f6646bf50
Changed the FtpReply to support proxy access and to not show user and password in the URL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1970
diff
changeset
|
216 | if not realm and 'realm' in auth.options(): |
585f6646bf50
Changed the FtpReply to support proxy access and to not show user and password in the URL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1970
diff
changeset
|
217 | realm = auth.option("realm") |
585f6646bf50
Changed the FtpReply to support proxy access and to not show user and password in the URL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1970
diff
changeset
|
218 | if realm: |
2059
52113e2f672a
Fixed a bug in the network access manager introduced during the FTP job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2050
diff
changeset
|
219 | info = self.trUtf8("<b>Enter username and password for '{0}', " |
52113e2f672a
Fixed a bug in the network access manager introduced during the FTP job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2050
diff
changeset
|
220 | "realm '{1}'</b>").format(urlRoot, realm) |
52113e2f672a
Fixed a bug in the network access manager introduced during the FTP job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2050
diff
changeset
|
221 | else: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | info = self.trUtf8("<b>Enter username and password for '{0}'</b>")\ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | .format(urlRoot) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
225 | dlg = AuthenticationDialog(info, auth.user(), |
1127
b1802ebe0066
Added capability to encrypt saved passwords with a master password and rearranged some configuration parameters related to security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
226 | Preferences.getUser("SavePasswords"), |
b1802ebe0066
Added capability to encrypt saved passwords with a master password and rearranged some configuration parameters related to security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
227 | Preferences.getUser("SavePasswords")) |
b1802ebe0066
Added capability to encrypt saved passwords with a master password and rearranged some configuration parameters related to security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
228 | if Preferences.getUser("SavePasswords"): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | username, password = \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | Helpviewer.HelpWindow.HelpWindow.passwordManager().getLogin( |
2050
585f6646bf50
Changed the FtpReply to support proxy access and to not show user and password in the URL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1970
diff
changeset
|
231 | reply.url(), realm) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | if username: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | dlg.setData(username, password) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | if dlg.exec_() == QDialog.Accepted: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | username, password = dlg.getData() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | auth.setUser(username) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | auth.setPassword(password) |
1127
b1802ebe0066
Added capability to encrypt saved passwords with a master password and rearranged some configuration parameters related to security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
238 | if Preferences.getUser("SavePasswords"): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | Helpviewer.HelpWindow.HelpWindow.passwordManager().setLogin( |
2050
585f6646bf50
Changed the FtpReply to support proxy access and to not show user and password in the URL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1970
diff
changeset
|
240 | reply.url(), realm, username, password) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | def __sslErrors(self, reply, errors): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | Private slot to handle SSL errors. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | @param reply reference to the reply object (QNetworkReply) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | @param errors list of SSL errors (list of QSslError) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | """ |
748
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
249 | caMerge = {} |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
250 | certificateDict = Preferences.toDict( |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
251 | Preferences.Prefs.settings.value("Help/CaCertificatesDict")) |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
252 | for server in certificateDict: |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
253 | caMerge[server] = QSslCertificate.fromData(certificateDict[server]) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | caNew = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | errorStrings = [] |
748
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
257 | url = reply.url() |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
258 | server = url.host() |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
259 | if url.port() != -1: |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
260 | server += ":{0:d}".format(url.port()) |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
261 | if errors: |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
262 | for err in errors: |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
263 | if err.error() == QSslError.NoError: |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
264 | continue |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
265 | if server in caMerge and err.certificate() in caMerge[server]: |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
266 | continue |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
267 | errorStrings.append(err.errorString()) |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
268 | if not err.certificate().isNull(): |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
269 | cert = err.certificate() |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
270 | if cert not in caNew: |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2080
diff
changeset
|
271 | caNew.append(cert) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | if not errorStrings: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | reply.ignoreSslErrors() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | errorString = '.</li><li>'.join(errorStrings) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
277 | ret = E5MessageBox.yesNo(None, |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | self.trUtf8("SSL Errors"), |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | self.trUtf8("""<p>SSL Errors for <br /><b>{0}</b>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | """<ul><li>{1}</li></ul></p>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | """<p>Do you want to ignore these errors?</p>""")\ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | .format(reply.url().toString(), errorString), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
283 | icon=E5MessageBox.Warning) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
285 | if ret: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | if len(caNew) > 0: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | certinfos = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | for cert in caNew: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | certinfos.append(self.__certToString(cert)) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
290 | ret = E5MessageBox.yesNo(None, |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | self.trUtf8("Certificates"), |
1367
a652a6794953
The last security fix has been redone to better comply with the old behavior but improving security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1366
diff
changeset
|
292 | self.trUtf8("""<p>Certificates:<br/>{0}<br/>""" |
a652a6794953
The last security fix has been redone to better comply with the old behavior but improving security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1366
diff
changeset
|
293 | """Do you want to accept all these certificates?</p>""")\ |
a652a6794953
The last security fix has been redone to better comply with the old behavior but improving security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1366
diff
changeset
|
294 | .format("".join(certinfos))) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
295 | if ret: |
748
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
296 | if server not in caMerge: |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
297 | caMerge[server] = [] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | for cert in caNew: |
748
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
299 | caMerge[server].append(cert) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | sslCfg = QSslConfiguration.defaultConfiguration() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | caList = sslCfg.caCertificates() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | for cert in caNew: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | caList.append(cert) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | sslCfg.setCaCertificates(caList) |
1219
c051673f8aaf
Added code to support any SSL protocol.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
306 | sslCfg.setProtocol(QSsl.AnyProtocol) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | QSslConfiguration.setDefaultConfiguration(sslCfg) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | reply.setSslConfiguration(sslCfg) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309 | |
748
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
310 | certificateDict = {} |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
311 | for server in caMerge: |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
312 | pems = QByteArray() |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
313 | for cert in caMerge[server]: |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
314 | pems.append(cert.toPem() + '\n') |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
315 | certificateDict[server] = pems |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
316 | Preferences.Prefs.settings.setValue("Help/CaCertificatesDict", |
748
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
317 | certificateDict) |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
318 | else: |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
319 | reply.abort() |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
320 | return |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | reply.ignoreSslErrors() |
748
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
323 | |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
324 | else: |
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
721
diff
changeset
|
325 | reply.abort() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | def __certToString(self, cert): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | Private method to convert a certificate to a formatted string. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | @param cert certificate to convert (QSslCertificate) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | @return formatted string (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | """ |
1367
a652a6794953
The last security fix has been redone to better comply with the old behavior but improving security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1366
diff
changeset
|
334 | result = "<p>" |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | |
2078
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
336 | if qVersion() >= "5.0.0": |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
337 | result += self.trUtf8("Name: {0}")\ |
2080
4b33165dd55b
Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2078
diff
changeset
|
338 | .format(Utilities.html_encode(Utilities.decodeString( |
2078
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
339 | ", ".join(cert.subjectInfo(QSslCertificate.CommonName))))) |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
340 | |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
341 | result += self.trUtf8("<br/>Organization: {0}")\ |
2080
4b33165dd55b
Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2078
diff
changeset
|
342 | .format(Utilities.html_encode(Utilities.decodeString( |
2078
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
343 | ", ".join(cert.subjectInfo(QSslCertificate.Organization))))) |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
344 | |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
345 | result += self.trUtf8("<br/>Issuer: {0}")\ |
2080
4b33165dd55b
Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2078
diff
changeset
|
346 | .format(Utilities.html_encode(Utilities.decodeString( |
2078
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
347 | ", ".join(cert.issuerInfo(QSslCertificate.CommonName))))) |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
348 | else: |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
349 | result += self.trUtf8("Name: {0}")\ |
2080
4b33165dd55b
Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2078
diff
changeset
|
350 | .format(Utilities.html_encode(Utilities.decodeString( |
2078
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
351 | cert.subjectInfo(QSslCertificate.CommonName)))) |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
352 | |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
353 | result += self.trUtf8("<br/>Organization: {0}")\ |
2080
4b33165dd55b
Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2078
diff
changeset
|
354 | .format(Utilities.html_encode(Utilities.decodeString( |
2078
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
355 | cert.subjectInfo(QSslCertificate.Organization)))) |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
356 | |
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
357 | result += self.trUtf8("<br/>Issuer: {0}")\ |
2080
4b33165dd55b
Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2078
diff
changeset
|
358 | .format(Utilities.html_encode(Utilities.decodeString( |
2078
9f4a45741622
Made the second set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2067
diff
changeset
|
359 | cert.issuerInfo(QSslCertificate.CommonName)))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | |
1367
a652a6794953
The last security fix has been redone to better comply with the old behavior but improving security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1366
diff
changeset
|
361 | result += self.trUtf8("<br/>Not valid before: {0}<br/>Valid Until: {1}")\ |
2080
4b33165dd55b
Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2078
diff
changeset
|
362 | .format(Utilities.html_encode(cert.effectiveDate().toString("yyyy-MM-dd")), |
4b33165dd55b
Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2078
diff
changeset
|
363 | Utilities.html_encode(cert.expiryDate().toString("yyyy-MM-dd"))) |
1367
a652a6794953
The last security fix has been redone to better comply with the old behavior but improving security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1366
diff
changeset
|
364 | |
a652a6794953
The last security fix has been redone to better comply with the old behavior but improving security.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1366
diff
changeset
|
365 | result += "</p>" |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | return result |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | |
762
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
369 | def __getSystemCaCertificates(self): |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
370 | """ |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
371 | Private method to get the list of system certificates. |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
372 | |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
373 | @return list of system certificates (list of QSslCertificate) |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
374 | """ |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
375 | caList = QSslCertificate.fromData(Preferences.toByteArray( |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
376 | Preferences.Prefs.settings.value("Help/SystemCertificates"))) |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
377 | if not caList: |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
378 | caList = QSslSocket.systemCaCertificates() |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
379 | return caList |
48190a225699
Enhanced the certificate manager of the web browser by code to import/export certificates and to delete system certificates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
380 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | def preferencesChanged(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | Public slot to signal a change of preferences. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | self.__setDiskCache() |
1314
7e7b88c58fda
Added the "Do Not Track" feature.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1219
diff
changeset
|
386 | |
7e7b88c58fda
Added the "Do Not Track" feature.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1219
diff
changeset
|
387 | self.__doNotTrack = Preferences.getHelp("DoNotTrack") |
1661
bfc2ea19b08f
Added capability to suppress Referer Headers (configurable via eric4 Web Browser configuration page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
388 | self.__sendReferer = Preferences.getHelp("SendReferer") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | def languagesChanged(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | Public slot to (re-)load the list of accepted languages. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | """ |
8
0ae9bd4d2993
Fixed a few bugs introduced introduced by the change to the QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
394 | languages = Preferences.toList( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
395 | Preferences.Prefs.settings.value("Help/AcceptLanguages", |
8
0ae9bd4d2993
Fixed a few bugs introduced introduced by the change to the QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
396 | HelpLanguagesDialog.defaultAcceptLanguages())) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | self.__acceptLanguage = HelpLanguagesDialog.httpString(languages) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | def __setDiskCache(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | Private method to set the disk cache. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | if NetworkDiskCache is not None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | if Preferences.getHelp("DiskCacheEnabled"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | diskCache = NetworkDiskCache(self) |
2687
33a848c5e46f
Changed the name of the cache directory of the web browser to reflect the Qt and Webkit version number in order to avoid cahe trouble.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
406 | location = os.path.join(Utilities.getConfigDir(), "browser", 'cache', |
33a848c5e46f
Changed the name of the cache directory of the web browser to reflect the Qt and Webkit version number in order to avoid cahe trouble.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
407 | "{0}-Qt{1}".format(qWebKitVersion(), qVersion())) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | size = Preferences.getHelp("DiskCacheSize") * 1024 * 1024 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | diskCache.setCacheDirectory(location) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | diskCache.setMaximumCacheSize(size) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | diskCache = None |
629
c88489b378fb
Added configuration options for the web browser cache policy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
553
diff
changeset
|
413 | self.setCache(diskCache) |