diff -r dfef226f9c7f -r 27962f3f457f WebBrowser/WebBrowserPage.py --- a/WebBrowser/WebBrowserPage.py Sun Feb 11 18:28:09 2018 +0100 +++ b/WebBrowser/WebBrowserPage.py Sun Feb 11 19:51:10 2018 +0100 @@ -78,6 +78,16 @@ self.__printer = None self.__badSite = False + +## // Workaround for broken load started/finished signals in QtWebEngine 5.10 +## if (qstrcmp(qVersion(), "5.10.0") == 0) { +## connect(this, &QWebEnginePage::loadProgress, this, [this](int progress) { +## if (progress == 100) { +## emit loadFinished(true); +## } +## }); +## } +## def acceptNavigationRequest(self, url, type_, isMainFrame): """ @@ -139,8 +149,21 @@ .getThreatType(threatLists[0]) self.safeBrowsingBad.emit(threatType, "".join(threatMessages)) - return QWebEnginePage.acceptNavigationRequest(self, url, type_, - isMainFrame) + result = QWebEnginePage.acceptNavigationRequest(self, url, type_, + isMainFrame) + + if result and isMainFrame: + isWeb = url.scheme() in ("http", "https", "ftp", "ftps", "file") + globalJsEnabled = WebBrowserWindow.webSettings().testAttribute( + QWebEngineSettings.JavascriptEnabled) + if isWeb: + enable = globalJsEnabled + else: + enable = True + self.settings().setAttribute( + QWebEngineSettings.JavascriptEnabled, enable) + + return result @pyqtSlot(QUrl) def __urlChanged(self, url):