WebBrowser/WebBrowserPage.py

changeset 6137
27962f3f457f
parent 6136
dfef226f9c7f
child 6139
d24997c47244
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):

eric ide

mercurial