Webbrowser: started upgrading to Qt 5.11.

Tue, 03 Jul 2018 19:08:29 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 03 Jul 2018 19:08:29 +0200
changeset 6397
473d410076e9
parent 6396
f6d4ab496cfe
child 6398
caf724f53840

Webbrowser: started upgrading to Qt 5.11.

Preferences/ConfigurationPages/WebBrowserPage.py file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
WebBrowser/StatusBar/JavaScriptSettingsDialog.py file | annotate | diff | comparison | revisions
WebBrowser/WebBrowserPage.py file | annotate | diff | comparison | revisions
WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
--- a/Preferences/ConfigurationPages/WebBrowserPage.py	Tue Jul 03 19:07:13 2018 +0200
+++ b/Preferences/ConfigurationPages/WebBrowserPage.py	Tue Jul 03 19:08:29 2018 +0200
@@ -85,6 +85,7 @@
                     "AllowWindowActivationFromJavaScript"))
         except KeyError:
             self.jsActivateWindowsCheckBox.setEnabled(False)
+        # TODO: add settings for Qt 5.11+
         self.jsClipboardCheckBox.setChecked(
             Preferences.getWebBrowser("JavaScriptCanAccessClipboard"))
         self.pluginsCheckBox.setChecked(
--- a/Preferences/__init__.py	Tue Jul 03 19:07:13 2018 +0200
+++ b/Preferences/__init__.py	Tue Jul 03 19:08:29 2018 +0200
@@ -1291,6 +1291,21 @@
             })
         except AttributeError:
             pass
+        try:
+            # Qt 5.11+
+            cls.webBrowserDefaults.update({
+                "PlaybackRequiresUserGesture":
+                    webEngineSettings.testAttribute(
+                        QWebEngineSettings.PlaybackRequiresUserGesture),
+                "JavascriptCanPaste":
+                    webEngineSettings.testAttribute(
+                        QWebEngineSettings.JavascriptCanPaste),
+                "WebRTCPublicInterfacesOnly":
+                    webEngineSettings.testAttribute(
+                        QWebEngineSettings.WebRTCPublicInterfacesOnly),
+            })
+        except AttributeError:
+            pass
         
         cls.webEngineSettingsIntitialized = True
     
@@ -3044,6 +3059,8 @@
                  "AllowGeolocationOnInsecureOrigins",
                  "AllowWindowActivationFromJavaScript", "ShowScrollBars",
                  "DownloadManagerAutoOpen", "DownloadManagerAutoClose",
+                 "PlaybackRequiresUserGesture", "JavascriptCanPaste",
+                 "WebRTCPublicInterfacesOnly", 
                  ]:
         return toBool(prefClass.settings.value(
             "WebBrowser/" + key, prefClass.webBrowserDefaults[key]))
--- a/WebBrowser/StatusBar/JavaScriptSettingsDialog.py	Tue Jul 03 19:07:13 2018 +0200
+++ b/WebBrowser/StatusBar/JavaScriptSettingsDialog.py	Tue Jul 03 19:08:29 2018 +0200
@@ -45,6 +45,7 @@
                     "AllowWindowActivationFromJavaScript"))
         except KeyError:
             self.jsActivateWindowsCheckBox.setEnabled(False)
+        # TODO: add JavascriptCanPaste as of Qt 5.11+
         self.jsClipboardCheckBox.setChecked(
             Preferences.getWebBrowser("JavaScriptCanAccessClipboard"))
         
@@ -66,6 +67,7 @@
             Preferences.setWebBrowser(
                 "AllowWindowActivationFromJavaScript",
                 self.jsActivateWindowsCheckBox.isChecked())
+        # TODO: add JavascriptCanPaste as of Qt 5.11+
         Preferences.setWebBrowser(
             "JavaScriptCanAccessClipboard",
             self.jsClipboardCheckBox.isChecked())
--- a/WebBrowser/WebBrowserPage.py	Tue Jul 03 19:07:13 2018 +0200
+++ b/WebBrowser/WebBrowserPage.py	Tue Jul 03 19:08:29 2018 +0200
@@ -46,6 +46,8 @@
     @signal navigationRequestAccepted(url, navigation type, main frame) emitted
         to signal an accepted navigation request
     """
+    # TODO: add support for the 'quotaRequested' signal (Qt 5.11)
+    # TODO: add support for the 'registerProtocolHandlerRequested' signal (Qt 5.11)
     if qVersionTuple() >= (5, 7, 0):
         SafeJsWorld = QWebEngineScript.ApplicationWorld
         # SafeJsWorld = QWebEngineScript.MainWorld
--- a/WebBrowser/WebBrowserWindow.py	Tue Jul 03 19:07:13 2018 +0200
+++ b/WebBrowser/WebBrowserWindow.py	Tue Jul 03 19:08:29 2018 +0200
@@ -666,6 +666,23 @@
                 Preferences.getWebBrowser("ShowScrollBars"))
         except (AttributeError, KeyError):
             pass
+        
+        try:
+            # Qt 5.11
+            settings.setAttribute(
+                QWebEngineSettings.PlaybackRequiresUserGesture,
+                Preferences.getWebBrowser(
+                    "PlaybackRequiresUserGesture"))
+            settings.setAttribute(
+                QWebEngineSettings.JavascriptCanPaste,
+                Preferences.getWebBrowser(
+                "JavascriptCanPaste"))
+            settings.setAttribute(
+                QWebEngineSettings.WebRTCPublicInterfacesOnly,
+                Preferences.getWebBrowser(
+                "WebRTCPublicInterfacesOnly"))
+        except (AttributeError, KeyError):
+            pass
     
     def __initActions(self):
         """

eric ide

mercurial