76 |
76 |
77 self.urlChanged.connect(self.__urlChanged) |
77 self.urlChanged.connect(self.__urlChanged) |
78 |
78 |
79 self.__printer = None |
79 self.__printer = None |
80 self.__badSite = False |
80 self.__badSite = False |
|
81 |
|
82 ## // Workaround for broken load started/finished signals in QtWebEngine 5.10 |
|
83 ## if (qstrcmp(qVersion(), "5.10.0") == 0) { |
|
84 ## connect(this, &QWebEnginePage::loadProgress, this, [this](int progress) { |
|
85 ## if (progress == 100) { |
|
86 ## emit loadFinished(true); |
|
87 ## } |
|
88 ## }); |
|
89 ## } |
|
90 ## |
81 |
91 |
82 def acceptNavigationRequest(self, url, type_, isMainFrame): |
92 def acceptNavigationRequest(self, url, type_, isMainFrame): |
83 """ |
93 """ |
84 Public method to determine, if a request may be accepted. |
94 Public method to determine, if a request may be accepted. |
85 |
95 |
137 self.__badSite = True |
147 self.__badSite = True |
138 threatType = WebBrowserWindow.safeBrowsingManager()\ |
148 threatType = WebBrowserWindow.safeBrowsingManager()\ |
139 .getThreatType(threatLists[0]) |
149 .getThreatType(threatLists[0]) |
140 self.safeBrowsingBad.emit(threatType, "".join(threatMessages)) |
150 self.safeBrowsingBad.emit(threatType, "".join(threatMessages)) |
141 |
151 |
142 return QWebEnginePage.acceptNavigationRequest(self, url, type_, |
152 result = QWebEnginePage.acceptNavigationRequest(self, url, type_, |
143 isMainFrame) |
153 isMainFrame) |
|
154 |
|
155 if result and isMainFrame: |
|
156 isWeb = url.scheme() in ("http", "https", "ftp", "ftps", "file") |
|
157 globalJsEnabled = WebBrowserWindow.webSettings().testAttribute( |
|
158 QWebEngineSettings.JavascriptEnabled) |
|
159 if isWeb: |
|
160 enable = globalJsEnabled |
|
161 else: |
|
162 enable = True |
|
163 self.settings().setAttribute( |
|
164 QWebEngineSettings.JavascriptEnabled, enable) |
|
165 |
|
166 return result |
144 |
167 |
145 @pyqtSlot(QUrl) |
168 @pyqtSlot(QUrl) |
146 def __urlChanged(self, url): |
169 def __urlChanged(self, url): |
147 """ |
170 """ |
148 Private slot to handle changes of the URL. |
171 Private slot to handle changes of the URL. |