9 |
9 |
10 from __future__ import unicode_literals # __IGNORE_WARNING__ |
10 from __future__ import unicode_literals # __IGNORE_WARNING__ |
11 |
11 |
12 import os |
12 import os |
13 |
13 |
14 from PyQt4.QtCore import pyqtSignal, QByteArray |
14 from PyQt4.QtCore import pyqtSignal, QByteArray, qVersion |
15 from PyQt4.QtGui import QDialog |
15 from PyQt4.QtGui import QDialog |
16 from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply |
16 from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply |
17 |
17 |
18 from E5Network.E5NetworkProxyFactory import E5NetworkProxyFactory, \ |
18 from E5Network.E5NetworkProxyFactory import E5NetworkProxyFactory, \ |
19 proxyAuthenticationRequired |
19 proxyAuthenticationRequired |
140 |
140 |
141 if hasattr(QNetworkRequest, 'HttpPipeliningAllowedAttribute'): |
141 if hasattr(QNetworkRequest, 'HttpPipeliningAllowedAttribute'): |
142 req.setAttribute(QNetworkRequest.HttpPipeliningAllowedAttribute, True) |
142 req.setAttribute(QNetworkRequest.HttpPipeliningAllowedAttribute, True) |
143 if not self.__acceptLanguage.isEmpty(): |
143 if not self.__acceptLanguage.isEmpty(): |
144 req.setRawHeader("Accept-Language", self.__acceptLanguage) |
144 req.setRawHeader("Accept-Language", self.__acceptLanguage) |
145 |
|
146 # set cache policy |
|
147 if op == QNetworkAccessManager.GetOperation: |
|
148 req.setAttribute(QNetworkRequest.CacheLoadControlAttribute, |
|
149 Preferences.getHelp("CachePolicy")) |
|
150 else: |
|
151 req.setAttribute(QNetworkRequest.CacheLoadControlAttribute, |
|
152 QNetworkRequest.AlwaysNetwork) |
|
153 |
145 |
154 # AdBlock code |
146 # AdBlock code |
155 if op == QNetworkAccessManager.GetOperation: |
147 if op == QNetworkAccessManager.GetOperation: |
156 if self.__adblockNetwork is None: |
148 if self.__adblockNetwork is None: |
157 self.__adblockNetwork = \ |
149 self.__adblockNetwork = \ |
158 Helpviewer.HelpWindow.HelpWindow.adBlockManager().network() |
150 Helpviewer.HelpWindow.HelpWindow.adBlockManager().network() |
159 reply = self.__adblockNetwork.block(req) |
151 reply = self.__adblockNetwork.block(req) |
160 if reply is not None: |
152 if reply is not None: |
161 reply.setParent(self) |
153 reply.setParent(self) |
162 return reply |
154 return reply |
|
155 |
|
156 # set cache policy |
|
157 if op == QNetworkAccessManager.GetOperation: |
|
158 urlHost = req.url().host() |
|
159 for host in Preferences.getHelp("NoCacheHosts"): |
|
160 if host in urlHost: |
|
161 req.setAttribute(QNetworkRequest.CacheLoadControlAttribute, |
|
162 QNetworkRequest.AlwaysNetwork) |
|
163 break |
|
164 else: |
|
165 req.setAttribute(QNetworkRequest.CacheLoadControlAttribute, |
|
166 Preferences.getHelp("CachePolicy")) |
|
167 else: |
|
168 req.setAttribute(QNetworkRequest.CacheLoadControlAttribute, |
|
169 QNetworkRequest.AlwaysNetwork) |
163 |
170 |
164 # Do Not Track feature |
171 # Do Not Track feature |
165 if self.__doNotTrack: |
172 if self.__doNotTrack: |
166 req.setRawHeader("DNT", "1") |
173 req.setRawHeader("DNT", "1") |
167 |
174 |
236 def __setDiskCache(self): |
243 def __setDiskCache(self): |
237 """ |
244 """ |
238 Private method to set the disk cache. |
245 Private method to set the disk cache. |
239 """ |
246 """ |
240 if Preferences.getHelp("DiskCacheEnabled"): |
247 if Preferences.getHelp("DiskCacheEnabled"): |
|
248 from PyQt4.QtWebKit import qWebKitVersion |
241 from .NetworkDiskCache import NetworkDiskCache |
249 from .NetworkDiskCache import NetworkDiskCache |
242 diskCache = NetworkDiskCache(self) |
250 diskCache = NetworkDiskCache(self) |
243 location = os.path.join(Utilities.getConfigDir(), "browser", 'cache') |
251 location = os.path.join(Utilities.getConfigDir(), "browser", 'cache', |
|
252 "{0}-Qt{1}".format(qWebKitVersion(), qVersion())) |
244 size = Preferences.getHelp("DiskCacheSize") * 1024 * 1024 |
253 size = Preferences.getHelp("DiskCacheSize") * 1024 * 1024 |
245 diskCache.setCacheDirectory(location) |
254 diskCache.setCacheDirectory(location) |
246 diskCache.setMaximumCacheSize(size) |
255 diskCache.setMaximumCacheSize(size) |
247 else: |
256 else: |
248 diskCache = None |
257 diskCache = None |