--- a/eric6/WebBrowser/Network/NetworkUrlInterceptor.py Sat Oct 10 15:17:29 2020 +0200 +++ b/eric6/WebBrowser/Network/NetworkUrlInterceptor.py Sat Oct 10 16:03:53 2020 +0200 @@ -9,11 +9,13 @@ """ -from PyQt5.QtCore import QMutex, QMutexLocker, QUrl +from PyQt5.QtCore import QMutex, QUrl from PyQt5.QtWebEngineCore import ( QWebEngineUrlRequestInterceptor, QWebEngineUrlRequestInfo ) +from E5Utilities.E5MutexLocker import E5MutexLocker + from ..WebBrowserPage import WebBrowserPage import Preferences @@ -44,24 +46,23 @@ @param info URL request information @type QWebEngineUrlRequestInfo """ - locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__ - - # Do Not Track feature - if self.__doNotTrack: - info.setHttpHeader(b"DNT", b"1") - info.setHttpHeader(b"X-Do-Not-Track", b"1") - - # Send referrer header? - if info.requestUrl().host() not in Preferences.getWebBrowser( - "SendRefererWhitelist"): - self.__setRefererHeader(info) - - # User Agents header - userAgent = WebBrowserPage.userAgentForUrl(info.requestUrl()) - info.setHttpHeader(b"User-Agent", userAgent.encode()) - - for interceptor in self.__interceptors: - interceptor.interceptRequest(info) + with E5MutexLocker(self.__mutex): + # Do Not Track feature + if self.__doNotTrack: + info.setHttpHeader(b"DNT", b"1") + info.setHttpHeader(b"X-Do-Not-Track", b"1") + + # Send referrer header? + if info.requestUrl().host() not in Preferences.getWebBrowser( + "SendRefererWhitelist"): + self.__setRefererHeader(info) + + # User Agents header + userAgent = WebBrowserPage.userAgentForUrl(info.requestUrl()) + info.setHttpHeader(b"User-Agent", userAgent.encode()) + + for interceptor in self.__interceptors: + interceptor.interceptRequest(info) def installUrlInterceptor(self, interceptor): """ @@ -70,10 +71,9 @@ @param interceptor URL interceptor to be installed @type UrlInterceptor """ - locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__ - - if interceptor not in self.__interceptors: - self.__interceptors.append(interceptor) + with E5MutexLocker(self.__mutex): + if interceptor not in self.__interceptors: + self.__interceptors.append(interceptor) def removeUrlInterceptor(self, interceptor): """ @@ -82,23 +82,21 @@ @param interceptor URL interceptor to be removed @type UrlInterceptor """ - locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__ - - if interceptor in self.__interceptors: - self.__interceptors.remove(interceptor) + with E5MutexLocker(self.__mutex): + if interceptor in self.__interceptors: + self.__interceptors.remove(interceptor) def __loadSettings(self): """ Private method to load the Network Manager settings. """ - locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__ - - self.__doNotTrack = Preferences.getWebBrowser("DoNotTrack") - self.__sendReferer = Preferences.getWebBrowser("RefererSendReferer") - self.__refererDefaultPolicy = Preferences.getWebBrowser( - "RefererDefaultPolicy") - self.__refererTrimmingPolicy = Preferences.getWebBrowser( - "RefererTrimmingPolicy") + with E5MutexLocker(self.__mutex): + self.__doNotTrack = Preferences.getWebBrowser("DoNotTrack") + self.__sendReferer = Preferences.getWebBrowser("RefererSendReferer") + self.__refererDefaultPolicy = Preferences.getWebBrowser( + "RefererDefaultPolicy") + self.__refererTrimmingPolicy = Preferences.getWebBrowser( + "RefererTrimmingPolicy") def preferencesChanged(self): """