WebBrowser/Network/NetworkUrlInterceptor.py

changeset 6277
e22952cec018
parent 6131
1ecd0c53e117
child 6281
9f7bbfd6545d
equal deleted inserted replaced
6276:629b1ff9ab90 6277:e22952cec018
48 # Do Not Track feature 48 # Do Not Track feature
49 if self.__doNotTrack: 49 if self.__doNotTrack:
50 info.setHttpHeader(b"DNT", b"1") 50 info.setHttpHeader(b"DNT", b"1")
51 info.setHttpHeader(b"X-Do-Not-Track", b"1") 51 info.setHttpHeader(b"X-Do-Not-Track", b"1")
52 52
53 # Send referer header? 53 # Send referrer header?
54 if not self.__sendReferer and info.requestUrl().host() not in \ 54 if info.requestUrl().host() not in \
55 Preferences.getWebBrowser("SendRefererWhitelist"): 55 Preferences.getWebBrowser("SendRefererWhitelist"):
56 info.setHttpHeader(b"Referer", b"") 56 self.__setRefererHeader(info)
57 57
58 # User Agents header 58 # User Agents header
59 userAgent = WebBrowserPage.userAgentForUrl(info.requestUrl()) 59 userAgent = WebBrowserPage.userAgentForUrl(info.requestUrl())
60 info.setHttpHeader(b"User-Agent", userAgent.encode()) 60 info.setHttpHeader(b"User-Agent", userAgent.encode())
61 61
62 for interceptor in self.__interceptors: 62 for interceptor in self.__interceptors:
63 interceptor.interceptRequest(info) 63 interceptor.interceptRequest(info)
64
65 def __setRefererHeader(self, info):
66 """
67 Private method to set the 'Referer' header depending on the configured
68 rule set.
69
70 @param info URL request information
71 @type QWebEngineUrlRequestInfo
72 """
73 # TODO: extend referrer handling like that:
74 # 1. SendReferer:
75 # 0 = never
76 # 1 = only on click (NavigationTypeLink)
77 # 2 = always (default)
78 # 2. RefererTrimmingPolicy:
79 # 0 = send full URL (no trimming) (default)
80 # 1 = send the URL without its query string
81 # 2 = only send the origin (ensure trailing /)
82 # 3. RefererDefaultPolicy:
83 # set the default referrer policy (which can be overriden by
84 # the site)
85 # 0 = no-referrer
86 # 1 = same-origin
87 # 2 = strict-origin-when-cross-origin
88 # 3 = no-referrer-when-downgrade (default)
89 # see: https://wiki.mozilla.org/Security/Referrer
90 # see: https://www.w3.org/TR/referrer-policy/
91 if not self.__sendReferer:
92 info.setHttpHeader(b"Referer", b"")
64 93
65 def installUrlInterceptor(self, interceptor): 94 def installUrlInterceptor(self, interceptor):
66 """ 95 """
67 Public method to install an URL interceptor. 96 Public method to install an URL interceptor.
68 97

eric ide

mercurial