138 if self.__sendReferer == 0: |
138 if self.__sendReferer == 0: |
139 # never send referer header |
139 # never send referer header |
140 info.setHttpHeader(b"Referer", b"") |
140 info.setHttpHeader(b"Referer", b"") |
141 elif (self.__sendReferer == 1 and |
141 elif (self.__sendReferer == 1 and |
142 info.navigationType() != |
142 info.navigationType() != |
143 QWebEngineUrlRequestInfo.NavigationTypeLink): |
143 QWebEngineUrlRequestInfo.NavigationType.NavigationTypeLink): |
144 # send referer header only on click |
144 # send referer header only on click |
145 info.setHttpHeader(b"Referer", b"") |
145 info.setHttpHeader(b"Referer", b"") |
146 else: |
146 else: |
147 # send referer header always applying further policies |
147 # send referer header always applying further policies |
148 url = info.firstPartyUrl() |
148 url = info.firstPartyUrl() |
188 @param url2 second URL for the test |
188 @param url2 second URL for the test |
189 @type QUrl |
189 @type QUrl |
190 @return flag indicating that both URLs have the same origin |
190 @return flag indicating that both URLs have the same origin |
191 @rtype bool |
191 @rtype bool |
192 """ |
192 """ |
193 origin1 = url1.url(QUrl.RemoveUserInfo | QUrl.RemovePath) |
193 origin1 = url1.url(QUrl.UrlFormattingOption.RemoveUserInfo | |
194 origin2 = url2.url(QUrl.RemoveUserInfo | QUrl.RemovePath) |
194 QUrl.UrlFormattingOption.RemovePath) |
|
195 origin2 = url2.url(QUrl.UrlFormattingOption.RemoveUserInfo | |
|
196 QUrl.UrlFormattingOption.RemovePath) |
195 |
197 |
196 return origin1 == origin2 |
198 return origin1 == origin2 |
197 |
199 |
198 def __potentiallyTrustworthy(self, url): |
200 def __potentiallyTrustworthy(self, url): |
199 """ |
201 """ |
208 return False |
210 return False |
209 |
211 |
210 if url.toString() in ("about:blank", "about:srcdoc"): |
212 if url.toString() in ("about:blank", "about:srcdoc"): |
211 return True |
213 return True |
212 |
214 |
213 origin = url.adjusted(QUrl.RemoveUserInfo | QUrl.RemovePath) |
215 origin = url.adjusted(QUrl.UrlFormattingOption.RemoveUserInfo | |
|
216 QUrl.UrlFormattingOption.RemovePath) |
214 |
217 |
215 if origin.isEmpty() or origin.scheme() == "": |
218 if origin.isEmpty() or origin.scheme() == "": |
216 return False |
219 return False |
217 if origin.scheme() in ("https", "wss"): |
220 if origin.scheme() in ("https", "wss"): |
218 return True |
221 return True |
240 @rtype QByteArray or bytes |
243 @rtype QByteArray or bytes |
241 """ |
244 """ |
242 if self.__refererTrimmingPolicy == 0: |
245 if self.__refererTrimmingPolicy == 0: |
243 # send full URL (no trimming) (default) |
246 # send full URL (no trimming) (default) |
244 refererUrl = url.toEncoded( |
247 refererUrl = url.toEncoded( |
245 QUrl.RemoveUserInfo | QUrl.RemoveFragment) |
248 QUrl.UrlFormattingOption.RemoveUserInfo | |
|
249 QUrl.UrlFormattingOption.RemoveFragment |
|
250 ) |
246 elif self.__refererTrimmingPolicy == 1: |
251 elif self.__refererTrimmingPolicy == 1: |
247 # send the URL without its query string |
252 # send the URL without its query string |
248 refererUrl = url.toEncoded( |
253 refererUrl = url.toEncoded( |
249 QUrl.RemoveUserInfo | QUrl.RemoveFragment | |
254 QUrl.UrlFormattingOption.RemoveUserInfo | |
250 QUrl.RemoveQuery) |
255 QUrl.UrlFormattingOption.RemoveFragment | |
|
256 QUrl.UrlFormattingOption.RemoveQuery |
|
257 ) |
251 else: |
258 else: |
252 # only send the origin (ensure trailing /) |
259 # only send the origin (ensure trailing /) |
253 refererUrl = self.__refererOrigin(url) |
260 refererUrl = self.__refererOrigin(url) |
254 |
261 |
255 return refererUrl |
262 return refererUrl |
261 @param url URL to generate the header from |
268 @param url URL to generate the header from |
262 @type QUrl |
269 @type QUrl |
263 @return origin referer header URL |
270 @return origin referer header URL |
264 @rtype QByteArray or bytes |
271 @rtype QByteArray or bytes |
265 """ |
272 """ |
266 referer = url.toEncoded(QUrl.RemoveUserInfo | QUrl.RemovePath) |
273 referer = url.toEncoded( |
|
274 QUrl.UrlFormattingOption.RemoveUserInfo | |
|
275 QUrl.UrlFormattingOption.RemovePath |
|
276 ) |
267 if not referer.endsWith(b"/"): |
277 if not referer.endsWith(b"/"): |
268 referer += b"/" |
278 referer += b"/" |
269 |
279 |
270 return referer |
280 return referer |