WebBrowser/Network/NetworkUrlInterceptor.py

changeset 6131
1ecd0c53e117
parent 6048
82ad8ec9548c
child 6277
e22952cec018
equal deleted inserted replaced
6130:9a3906c94d3c 6131:1ecd0c53e117
8 by QtWebEngine. 8 by QtWebEngine.
9 """ 9 """
10 10
11 from __future__ import unicode_literals 11 from __future__ import unicode_literals
12 12
13 from PyQt5.QtCore import QMutex, QMutexLocker
13 from PyQt5.QtWebEngineCore import QWebEngineUrlRequestInterceptor 14 from PyQt5.QtWebEngineCore import QWebEngineUrlRequestInterceptor
14 15
15 from ..WebBrowserPage import WebBrowserPage 16 from ..WebBrowserPage import WebBrowserPage
16 17
17 import Preferences 18 import Preferences
29 @type QObject 30 @type QObject
30 """ 31 """
31 super(NetworkUrlInterceptor, self).__init__(parent) 32 super(NetworkUrlInterceptor, self).__init__(parent)
32 33
33 self.__interceptors = [] 34 self.__interceptors = []
35 self.__mutex = QMutex()
34 36
35 self.__loadSettings() 37 self.__loadSettings()
36 38
37 def interceptRequest(self, info): 39 def interceptRequest(self, info):
38 """ 40 """
39 Public method handling an URL request. 41 Public method handling an URL request.
40 42
41 @param info URL request information 43 @param info URL request information
42 @type QWebEngineUrlRequestInfo 44 @type QWebEngineUrlRequestInfo
43 """ 45 """
46 locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__
47
44 # Do Not Track feature 48 # Do Not Track feature
45 if self.__doNotTrack: 49 if self.__doNotTrack:
46 info.setHttpHeader(b"DNT", b"1") 50 info.setHttpHeader(b"DNT", b"1")
47 info.setHttpHeader(b"X-Do-Not-Track", b"1") 51 info.setHttpHeader(b"X-Do-Not-Track", b"1")
48 52
63 Public method to install an URL interceptor. 67 Public method to install an URL interceptor.
64 68
65 @param interceptor URL interceptor to be installed 69 @param interceptor URL interceptor to be installed
66 @type UrlInterceptor 70 @type UrlInterceptor
67 """ 71 """
72 locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__
73
68 if interceptor not in self.__interceptors: 74 if interceptor not in self.__interceptors:
69 self.__interceptors.append(interceptor) 75 self.__interceptors.append(interceptor)
70 76
71 def removeUrlInterceptor(self, interceptor): 77 def removeUrlInterceptor(self, interceptor):
72 """ 78 """
73 Public method to remove an URL interceptor. 79 Public method to remove an URL interceptor.
74 80
75 @param interceptor URL interceptor to be removed 81 @param interceptor URL interceptor to be removed
76 @type UrlInterceptor 82 @type UrlInterceptor
77 """ 83 """
84 locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__
85
78 if interceptor in self.__interceptors: 86 if interceptor in self.__interceptors:
79 self.__interceptors.remove(interceptor) 87 self.__interceptors.remove(interceptor)
80 88
81 def __loadSettings(self): 89 def __loadSettings(self):
82 """ 90 """
83 Private method to load the Network Manager settings. 91 Private method to load the Network Manager settings.
84 """ 92 """
93 locker = QMutexLocker(self.__mutex) # __IGNORE_WARNING__
94
85 self.__doNotTrack = Preferences.getWebBrowser("DoNotTrack") 95 self.__doNotTrack = Preferences.getWebBrowser("DoNotTrack")
86 self.__sendReferer = Preferences.getWebBrowser("SendReferer") 96 self.__sendReferer = Preferences.getWebBrowser("SendReferer")
87 97
88 def preferencesChanged(self): 98 def preferencesChanged(self):
89 """ 99 """

eric ide

mercurial