eric6/WebBrowser/Network/NetworkUrlInterceptor.py

changeset 7268
a28338eaf694
parent 7229
53054eb5b15a
child 7360
9190402e4505
equal deleted inserted replaced
7267:aedc309827c7 7268:a28338eaf694
8 by QtWebEngine. 8 by QtWebEngine.
9 """ 9 """
10 10
11 11
12 from PyQt5.QtCore import QMutex, QMutexLocker, QUrl 12 from PyQt5.QtCore import QMutex, QMutexLocker, QUrl
13 from PyQt5.QtWebEngineCore import QWebEngineUrlRequestInterceptor, \ 13 from PyQt5.QtWebEngineCore import (
14 QWebEngineUrlRequestInfo 14 QWebEngineUrlRequestInterceptor, QWebEngineUrlRequestInfo
15 )
15 16
16 from ..WebBrowserPage import WebBrowserPage 17 from ..WebBrowserPage import WebBrowserPage
17 18
18 import Preferences 19 import Preferences
19 20
49 if self.__doNotTrack: 50 if self.__doNotTrack:
50 info.setHttpHeader(b"DNT", b"1") 51 info.setHttpHeader(b"DNT", b"1")
51 info.setHttpHeader(b"X-Do-Not-Track", b"1") 52 info.setHttpHeader(b"X-Do-Not-Track", b"1")
52 53
53 # Send referrer header? 54 # Send referrer header?
54 if info.requestUrl().host() not in \ 55 if info.requestUrl().host() not in Preferences.getWebBrowser(
55 Preferences.getWebBrowser("SendRefererWhitelist"): 56 "SendRefererWhitelist"):
56 self.__setRefererHeader(info) 57 self.__setRefererHeader(info)
57 58
58 # User Agents header 59 # User Agents header
59 userAgent = WebBrowserPage.userAgentForUrl(info.requestUrl()) 60 userAgent = WebBrowserPage.userAgentForUrl(info.requestUrl())
60 info.setHttpHeader(b"User-Agent", userAgent.encode()) 61 info.setHttpHeader(b"User-Agent", userAgent.encode())
92 """ 93 """
93 locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__ 94 locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__
94 95
95 self.__doNotTrack = Preferences.getWebBrowser("DoNotTrack") 96 self.__doNotTrack = Preferences.getWebBrowser("DoNotTrack")
96 self.__sendReferer = Preferences.getWebBrowser("RefererSendReferer") 97 self.__sendReferer = Preferences.getWebBrowser("RefererSendReferer")
97 self.__refererDefaultPolicy = \ 98 self.__refererDefaultPolicy = Preferences.getWebBrowser(
98 Preferences.getWebBrowser("RefererDefaultPolicy") 99 "RefererDefaultPolicy")
99 self.__refererTrimmingPolicy = \ 100 self.__refererTrimmingPolicy = Preferences.getWebBrowser(
100 Preferences.getWebBrowser("RefererTrimmingPolicy") 101 "RefererTrimmingPolicy")
101 102
102 def preferencesChanged(self): 103 def preferencesChanged(self):
103 """ 104 """
104 Public slot to handle a change of preferences. 105 Public slot to handle a change of preferences.
105 """ 106 """
167 refererUrl = b"" 168 refererUrl = b""
168 else: 169 else:
169 refererUrl = self.__refererOrigin(url) 170 refererUrl = self.__refererOrigin(url)
170 else: 171 else:
171 # no-referrer-when-downgrade 172 # no-referrer-when-downgrade
172 if url.scheme() in ("https", "wss") and \ 173 if (
173 not self.__potentiallyTrustworthy(url): 174 url.scheme() in ("https", "wss") and
175 not self.__potentiallyTrustworthy(url)
176 ):
174 refererUrl = b"" 177 refererUrl = b""
175 else: 178 else:
176 refererUrl = self.__trimmedReferer(url) 179 refererUrl = self.__trimmedReferer(url)
177 180
178 info.setHttpHeader(b"Referer", refererUrl) 181 info.setHttpHeader(b"Referer", refererUrl)
214 return False 217 return False
215 if origin.scheme() in ("https", "wss"): 218 if origin.scheme() in ("https", "wss"):
216 return True 219 return True
217 if origin.host().startswith("127.") or origin.host().endswith(":1"): 220 if origin.host().startswith("127.") or origin.host().endswith(":1"):
218 return True 221 return True
219 if origin.host() == "localhost" or \ 222 if (
220 origin.host().endswith(".localhost"): 223 origin.host() == "localhost" or
224 origin.host().endswith(".localhost")
225 ):
221 return True 226 return True
222 if origin.scheme() == "file": 227 if origin.scheme() == "file":
223 return True 228 return True
224 if origin.scheme() in ("qrc", "qthelp", "eric"): 229 if origin.scheme() in ("qrc", "qthelp", "eric"):
225 return True 230 return True

eric ide

mercurial