Wed, 18 Dec 2024 18:03:07 +0100
Corrected some code style and formatting issues.
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
11090
f5f5f5803935
Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10806
diff
changeset
|
3 | # Copyright (c) 2008 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | Module implementing the helpbrowser using QWebView. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
11 | import contextlib |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
12 | |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
13 | from PyQt6.QtCore import ( |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
14 | QCoreApplication, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
15 | QEventLoop, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
16 | QPoint, |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
17 | QTimer, |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
18 | QUrl, |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
19 | QUrlQuery, |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
20 | pyqtSignal, |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
21 | pyqtSlot, |
7271
2cac5b7abcce
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7249
diff
changeset
|
22 | ) |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
23 | from PyQt6.QtGui import QDesktopServices |
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
24 | from PyQt6.QtWebChannel import QWebChannel |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
25 | from PyQt6.QtWebEngineCore import QWebEnginePage, QWebEngineScript, QWebEngineSettings |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
10806
2f6df822e3b9
Moved some functions to the EricUtilities package for consistency and adapted the code base accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10683
diff
changeset
|
27 | from eric7 import EricUtilities, Preferences |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9384
diff
changeset
|
28 | from eric7.EricWidgets import EricMessageBox |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
29 | from eric7.SystemUtilities import QtUtilities |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9384
diff
changeset
|
30 | from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
4355
40ec6bef4c22
Started to implement the HTML5 feature permission manager and associated dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4353
diff
changeset
|
31 | |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
32 | from .JavaScript.ExternalJsObject import ExternalJsObject |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
33 | from .Tools import Scripts |
4728
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
34 | from .Tools.WebHitTestResult import WebHitTestResult |
1960
d8c45fe8a1b9
Reworked some of the AdBlock code to achieve some speed improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1953
diff
changeset
|
35 | |
9488
44d723e53988
Rearranged a few more import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
36 | try: |
44d723e53988
Rearranged a few more import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
37 | from PyQt6.QtNetwork import QSslCertificate, QSslConfiguration |
44d723e53988
Rearranged a few more import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
38 | |
44d723e53988
Rearranged a few more import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
39 | from eric7.EricNetwork.EricSslInfoWidget import EricSslInfoWidget |
44d723e53988
Rearranged a few more import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
40 | |
44d723e53988
Rearranged a few more import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
41 | SSL_AVAILABLE = True |
44d723e53988
Rearranged a few more import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
42 | except ImportError: |
44d723e53988
Rearranged a few more import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
43 | SSL_AVAILABLE = False |
44d723e53988
Rearranged a few more import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
44 | |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
45 | with contextlib.suppress(ImportError): |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
46 | from PyQt6.QtWebEngineCore import QWebEnginePermission |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
47 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
48 | |
4710
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
49 | class WebBrowserPage(QWebEnginePage): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | Class implementing an enhanced web page. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
52 | |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
53 | @signal safeBrowsingAbort() emitted to indicate an abort due to a safe |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
54 | browsing event |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
55 | @signal safeBrowsingBad(threatType, threatMessages) emitted to indicate a |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
56 | malicious web site as determined by safe browsing |
6656
273a2130adbe
WebBrowserPage: added support for the printRequested signal as of Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
57 | @signal printPageRequested() emitted to indicate a print request of the |
273a2130adbe
WebBrowserPage: added support for the printRequested signal as of Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
58 | shown web page |
6149
e611e45a17d6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6146
diff
changeset
|
59 | @signal navigationRequestAccepted(url, navigation type, main frame) emitted |
e611e45a17d6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6146
diff
changeset
|
60 | to signal an accepted navigation request |
7766 | 61 | @signal sslConfigurationChanged() emitted to indicate a change of the |
62 | stored SSL configuration data | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
64 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
65 | SafeJsWorld = QWebEngineScript.ScriptWorldId.ApplicationWorld |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
66 | UnsafeJsWorld = QWebEngineScript.ScriptWorldId.MainWorld |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
67 | |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
68 | safeBrowsingAbort = pyqtSignal() |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
69 | safeBrowsingBad = pyqtSignal(str, str) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
70 | |
6656
273a2130adbe
WebBrowserPage: added support for the printRequested signal as of Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
71 | printPageRequested = pyqtSignal() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
72 | navigationRequestAccepted = pyqtSignal(QUrl, QWebEnginePage.NavigationType, bool) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
73 | |
7766 | 74 | sslConfigurationChanged = pyqtSignal() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
75 | |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
76 | if QtUtilities.qVersionTuple() >= (6, 8, 0): # noqa: Y108 |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
77 | PermissionTypeQuestions = { |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
78 | QWebEnginePermission.PermissionType.Geolocation: QCoreApplication.translate( |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
79 | "WebBrowserPage", |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
80 | "<p>Allow <b>{0}</b> to access your location information?</p>", |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
81 | ), |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
82 | QWebEnginePermission.PermissionType.MediaAudioCapture: ( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
83 | QCoreApplication.translate( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
84 | "WebBrowserPage", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
85 | "<p>Allow <b>{0}</b> to access your microphone?</p>", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
86 | ) |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
87 | ), |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
88 | QWebEnginePermission.PermissionType.MediaVideoCapture: ( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
89 | QCoreApplication.translate( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
90 | "WebBrowserPage", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
91 | "<p>Allow <b>{0}</b> to access your webcam?</p>", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
92 | ) |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
93 | ), |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
94 | QWebEnginePermission.PermissionType.MediaAudioVideoCapture: ( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
95 | QCoreApplication.translate( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
96 | "WebBrowserPage", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
97 | "<p>Allow <b>{0}</b> to access your microphone and webcam?</p>", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
98 | ) |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
99 | ), |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
100 | QWebEnginePermission.PermissionType.MouseLock: QCoreApplication.translate( |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
101 | "WebBrowserPage", |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
102 | "<p>Allow <b>{0}</b> to lock your mouse cursor?</p>", |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
103 | ), |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
104 | QWebEnginePermission.PermissionType.DesktopVideoCapture: ( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
105 | QCoreApplication.translate( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
106 | "WebBrowserPage", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
107 | "<p>Allow <b>{0}</b> to capture video of your desktop?</p>", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
108 | ) |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
109 | ), |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
110 | QWebEnginePermission.PermissionType.DesktopAudioVideoCapture: ( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
111 | QCoreApplication.translate( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
112 | "WebBrowserPage", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
113 | "<p>Allow <b>{0}</b> to capture audio and video of your" |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
114 | " desktop?</p>", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
115 | ) |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
116 | ), |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
117 | QWebEnginePermission.PermissionType.Notifications: ( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
118 | QCoreApplication.translate( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
119 | "WebBrowserPage", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
120 | "<p>Allow <b>{0}</b> to show notifications on your desktop?</p>", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
121 | ) |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
122 | ), |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
123 | QWebEnginePermission.PermissionType.ClipboardReadWrite: ( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
124 | QCoreApplication.translate( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
125 | "WebBrowserPage", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
126 | "<p>Allow <b>{0}</b> to read from and write to the clipboard?</p>", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
127 | ) |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
128 | ), |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
129 | QWebEnginePermission.PermissionType.LocalFontsAccess: ( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
130 | QCoreApplication.translate( |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
131 | "WebBrowserPage", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
132 | "<p>Allow <b>{0}</b> to access fonts stored on this machine?</p>", |
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11102
diff
changeset
|
133 | ) |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
134 | ), |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
135 | } |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
136 | else: |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
137 | PermissionTypeQuestions = {} |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
138 | |
8556
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
139 | def __init__(self, view, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
142 | |
8556
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
143 | @param view reference to the WebBrowserView associated with the page |
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
144 | @type WebBrowserView |
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
145 | @param parent reference to the parent widget (defaults to None) |
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
146 | @type QWidget (optional) |
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
147 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
148 | super().__init__(WebBrowserWindow.webProfile(), parent) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
149 | |
6695
0a51887c13cd
Web Browser (NG):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6692
diff
changeset
|
150 | self.__printer = None |
0a51887c13cd
Web Browser (NG):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6692
diff
changeset
|
151 | self.__badSite = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
152 | |
8556
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
153 | self.__view = view |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
154 | |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
155 | try: |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
156 | # Qt 6.8+ |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
157 | self.permissionRequested.connect(self.__permissionRequested) |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
158 | except AttributeError: |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
159 | # Qt <6.8 |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
160 | self.featurePermissionRequested.connect(self.__featurePermissionRequested) |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4742
diff
changeset
|
161 | self.authenticationRequired.connect( |
6120
4c60a21ce6dd
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6093
diff
changeset
|
162 | lambda url, auth: WebBrowserWindow.networkManager().authentication( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
163 | url, auth, self |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
164 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
165 | ) |
4787
2a19edf4db14
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
166 | self.proxyAuthenticationRequired.connect( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
167 | WebBrowserWindow.networkManager().proxyAuthentication |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
168 | ) |
4884
6983af705a7f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4864
diff
changeset
|
169 | self.fullScreenRequested.connect(self.__fullScreenRequested) |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4925
diff
changeset
|
170 | self.urlChanged.connect(self.__urlChanged) |
7201
6b42677d7043
Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7192
diff
changeset
|
171 | self.contentsSizeChanged.connect(self.__contentsSizeChanged) |
8243
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
172 | self.registerProtocolHandlerRequested.connect( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
173 | self.__registerProtocolHandlerRequested |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
174 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
175 | |
7766 | 176 | self.__sslConfiguration = None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
177 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
178 | # Workaround for changing webchannel world inside |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
179 | # acceptNavigationRequest not working |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
180 | self.__channelUrl = QUrl() |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
181 | self.__channelWorldId = -1 |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
182 | self.__setupChannelTimer = QTimer(self) |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
183 | self.__setupChannelTimer.setSingleShot(True) |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
184 | self.__setupChannelTimer.setInterval(100) |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
185 | self.__setupChannelTimer.timeout.connect(self.__setupChannelTimeout) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
186 | |
8561
641304b46f08
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8556
diff
changeset
|
187 | def view(self): |
641304b46f08
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8556
diff
changeset
|
188 | """ |
641304b46f08
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8556
diff
changeset
|
189 | Public method to get a reference to the WebBrowserView associated with |
641304b46f08
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8556
diff
changeset
|
190 | the page. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
191 | |
8561
641304b46f08
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8556
diff
changeset
|
192 | @return reference to the WebBrowserView associated with the page |
10436
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
193 | @rtype WebBrowserView |
8561
641304b46f08
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8556
diff
changeset
|
194 | """ |
641304b46f08
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8556
diff
changeset
|
195 | return self.__view |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
196 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
197 | @pyqtSlot() |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
198 | def __setupChannelTimeout(self): |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
199 | """ |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
200 | Private slot to initiate the setup of the web channel. |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
201 | """ |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
202 | self.__setupWebChannelForUrl(self.__channelUrl) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
203 | |
4710
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
204 | def acceptNavigationRequest(self, url, type_, isMainFrame): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | """ |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4725
diff
changeset
|
206 | Public method to determine, if a request may be accepted. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
207 | |
4710
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
208 | @param url URL to navigate to |
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
209 | @type QUrl |
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
210 | @param type_ type of the navigation request |
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
211 | @type QWebEnginePage.NavigationType |
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
212 | @param isMainFrame flag indicating, that the request originated from |
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
213 | the main frame |
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
214 | @type bool |
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
215 | @return flag indicating acceptance |
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
216 | @rtype bool |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | """ |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
218 | from eric7.WebBrowser.SafeBrowsing.SafeBrowsingManager import ( |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
219 | SafeBrowsingManager, |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
220 | ) |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
221 | |
4710
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
222 | scheme = url.scheme() |
757
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
748
diff
changeset
|
223 | if scheme == "mailto": |
4710
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
224 | QDesktopServices.openUrl(url) |
757
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
748
diff
changeset
|
225 | return False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
226 | |
4710
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
227 | # AdBlock |
8221
0572a215bd2f
Applied some more code simplifications suggested by the new Simplify checker (Y110, Y111: use any() or all()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
228 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
229 | url.scheme() == "abp" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
230 | and WebBrowserWindow.adBlockManager().addSubscriptionFromUrl(url) |
8221
0572a215bd2f
Applied some more code simplifications suggested by the new Simplify checker (Y110, Y111: use any() or all()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
231 | ): |
0572a215bd2f
Applied some more code simplifications suggested by the new Simplify checker (Y110, Y111: use any() or all()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
232 | return False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
233 | |
5716
27a7c7064686
Improved installion of GreaseMonkey user scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
234 | # GreaseMonkey |
8674
c868a9f4b37c
Removed some QtWebEngine related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
235 | navigationType = type_ in ( |
c868a9f4b37c
Removed some QtWebEngine related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
236 | QWebEnginePage.NavigationType.NavigationTypeLinkClicked, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
237 | QWebEnginePage.NavigationType.NavigationTypeRedirect, |
8674
c868a9f4b37c
Removed some QtWebEngine related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
238 | ) |
7366
bd743eacfbca
Changed code to avoid some obsoleted Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
239 | if navigationType and url.toString().endswith(".user.js"): |
5716
27a7c7064686
Improved installion of GreaseMonkey user scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
240 | WebBrowserWindow.greaseMonkeyManager().downloadScript(url) |
27a7c7064686
Improved installion of GreaseMonkey user scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
241 | return False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
242 | |
6142
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
243 | if url.scheme() == "eric": |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
244 | if url.path() == "AddSearchProvider": |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
245 | query = QUrlQuery(url) |
8556
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
246 | self.__view.mainWindow().openSearchManager().addEngine( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
247 | QUrl(query.queryItemValue("url")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
248 | ) |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
249 | return False |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
250 | elif url.path() == "PrintPage": |
6656
273a2130adbe
WebBrowserPage: added support for the printRequested signal as of Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
251 | self.printPageRequested.emit() |
6142
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
252 | return False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
253 | |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
254 | # Safe Browsing |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
255 | self.__badSite = False |
7271
2cac5b7abcce
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7249
diff
changeset
|
256 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
257 | SafeBrowsingManager.isEnabled() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
258 | and url.scheme() not in SafeBrowsingManager.getIgnoreSchemes() |
7271
2cac5b7abcce
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7249
diff
changeset
|
259 | ): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
260 | threatLists = WebBrowserWindow.safeBrowsingManager().lookupUrl(url)[0] |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
261 | if threatLists: |
7271
2cac5b7abcce
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7249
diff
changeset
|
262 | threatMessages = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
263 | WebBrowserWindow.safeBrowsingManager().getThreatMessages( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
264 | threatLists |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
265 | ) |
7271
2cac5b7abcce
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7249
diff
changeset
|
266 | ) |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8354
diff
changeset
|
267 | res = EricMessageBox.warning( |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
268 | WebBrowserWindow.getWindow(), |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
269 | self.tr("Suspicuous URL detected"), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
270 | self.tr( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
271 | "<p>The URL <b>{0}</b> was found in the Safe" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
272 | " Browsing database.</p>{1}" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
273 | ).format(url.toString(), "".join(threatMessages)), |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8354
diff
changeset
|
274 | EricMessageBox.Abort | EricMessageBox.Ignore, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
275 | EricMessageBox.Abort, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
276 | ) |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8354
diff
changeset
|
277 | if res == EricMessageBox.Abort: |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
278 | self.safeBrowsingAbort.emit() |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
279 | return False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
280 | |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
281 | self.__badSite = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
282 | threatType = WebBrowserWindow.safeBrowsingManager().getThreatType( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
283 | threatLists[0] |
7271
2cac5b7abcce
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7249
diff
changeset
|
284 | ) |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
285 | self.safeBrowsingBad.emit(threatType, "".join(threatMessages)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
286 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
287 | result = QWebEnginePage.acceptNavigationRequest(self, url, type_, isMainFrame) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
288 | |
6146
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
289 | if result: |
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
290 | if isMainFrame: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
291 | isWeb = url.scheme() in ("http", "https", "ftp", "ftps", "file") |
6146
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
292 | globalJsEnabled = WebBrowserWindow.webSettings().testAttribute( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
293 | QWebEngineSettings.WebAttribute.JavascriptEnabled |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
294 | ) |
6146
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
295 | if isWeb: |
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
296 | enable = globalJsEnabled |
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
297 | else: |
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
298 | enable = True |
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
299 | self.settings().setAttribute( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
300 | QWebEngineSettings.WebAttribute.JavascriptEnabled, enable |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
301 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
302 | |
6146
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
303 | self.__channelUrl = url |
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
304 | self.__setupChannelTimer.start() |
94a4e8d1ac4f
WebBrowserPage: Made it emit a navigationRequestAccepted signal when the request was in the main frame and accepted by the underlying engine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
305 | self.navigationRequestAccepted.emit(url, type_, isMainFrame) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
306 | |
6137
27962f3f457f
Some minor changes in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
307 | return result |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
308 | |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4925
diff
changeset
|
309 | @pyqtSlot(QUrl) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4925
diff
changeset
|
310 | def __urlChanged(self, url): |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4925
diff
changeset
|
311 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4925
diff
changeset
|
312 | Private slot to handle changes of the URL. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
313 | |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4925
diff
changeset
|
314 | @param url new URL |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4925
diff
changeset
|
315 | @type QUrl |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4925
diff
changeset
|
316 | """ |
7271
2cac5b7abcce
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7249
diff
changeset
|
317 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
318 | not url.isEmpty() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
319 | and url.scheme() == "eric" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
320 | and not self.isJavaScriptEnabled() |
7271
2cac5b7abcce
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7249
diff
changeset
|
321 | ): |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
322 | self.settings().setAttribute( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
323 | QWebEngineSettings.WebAttribute.JavascriptEnabled, True |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
324 | ) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
325 | self.triggerAction(QWebEnginePage.WebAction.Reload) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
326 | |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
327 | @classmethod |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
328 | def userAgent(cls, resolveEmpty=False): |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
329 | """ |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
330 | Class method to get the global user agent setting. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
331 | |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
332 | @param resolveEmpty flag indicating to resolve an empty |
10436
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
333 | user agent |
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
334 | @type bool |
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
335 | @return user agent string |
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
336 | @rtype str |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
337 | """ |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
338 | agent = Preferences.getWebBrowser("UserAgent") |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
339 | if agent == "" and resolveEmpty: |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
340 | agent = cls.userAgentForUrl(QUrl()) |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
341 | return agent |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
342 | |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
343 | @classmethod |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
344 | def setUserAgent(cls, agent): |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
345 | """ |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
346 | Class method to set the global user agent string. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
347 | |
10436
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
348 | @param agent new current user agent string |
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
349 | @type str |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
350 | """ |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
351 | Preferences.setWebBrowser("UserAgent", agent) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
352 | |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
353 | @classmethod |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
354 | def userAgentForUrl(cls, url): |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
355 | """ |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
356 | Class method to determine the user agent for the given URL. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
357 | |
10436
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
358 | @param url URL to determine user agent for |
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
359 | @type QUrl |
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
360 | @return user agent string |
f6881d10e995
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10240
diff
changeset
|
361 | @rtype str |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
362 | """ |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
363 | agent = WebBrowserWindow.userAgentsManager().userAgentForUrl(url) |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
364 | if agent == "": |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
365 | # no agent string specified for the given host -> use global one |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
366 | agent = Preferences.getWebBrowser("UserAgent") |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
367 | if agent == "": |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
368 | # no global agent string specified -> use default one |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
369 | agent = WebBrowserWindow.webProfile().httpUserAgent() |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4905
diff
changeset
|
370 | return agent |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
371 | |
4710
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
372 | def __featurePermissionRequested(self, url, feature): |
4316
493891cbacee
Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4275
diff
changeset
|
373 | """ |
493891cbacee
Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4275
diff
changeset
|
374 | Private slot handling a feature permission request. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
375 | |
4710
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
376 | @param url url requesting the feature |
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
377 | @type QUrl |
4316
493891cbacee
Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4275
diff
changeset
|
378 | @param feature requested feature |
4710
370a38e03efe
Started with the web browser page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
379 | @type QWebEnginePage.Feature |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | """ |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
381 | # Qt <6.8 |
4788
7076adec8ddd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4787
diff
changeset
|
382 | manager = WebBrowserWindow.featurePermissionManager() |
4742
f9d1090f6ab9
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
383 | manager.requestFeaturePermission(self, url, feature) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
384 | |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
385 | def __permissionRequested(self, permission): |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
386 | """ |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
387 | Private slot handling a permission request. |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
388 | |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
389 | @param permission reference to the permission request object |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
390 | @type QWebEnginePermission |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
391 | """ |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
392 | # Qt 6.8+ |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
393 | question = self.PermissionTypeQuestions.get(permission.permissionType()) |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
394 | if question and EricMessageBox.yesNo( |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
395 | self.view(), |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
396 | self.tr("Permission Request"), |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
397 | question.format(permission.origin().host()), |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
398 | yesDefault=True, |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
399 | ): |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
400 | permission.grant() |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
401 | else: |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
402 | permission.deny() |
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
403 | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
404 | def execJavaScript( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
405 | self, script, worldId=QWebEngineScript.ScriptWorldId.MainWorld, timeout=500 |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
406 | ): |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
407 | """ |
11102
ceabb30155b8
Adapted the web browser to Qt 6.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
408 | Public method to execute a JavaScript function synchronously. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
409 | |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
410 | @param script JavaScript script source to be executed |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
411 | @type str |
5001
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
412 | @param worldId ID to run the script under |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
413 | @type QWebEngineScript.ScriptWorldId |
5001
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
414 | @param timeout max. time the script is given to execute |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
415 | @type int |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
416 | @return result of the script |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
417 | @rtype depending upon script result |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
418 | """ |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
419 | loop = QEventLoop() |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
420 | resultDict = {"res": None} |
5001
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
421 | QTimer.singleShot(timeout, loop.quit) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
422 | |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
423 | def resultCallback(res, resDict=resultDict): |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
424 | if loop and loop.isRunning(): |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
425 | resDict["res"] = res |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
426 | loop.quit() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
427 | |
5001
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
428 | self.runJavaScript(script, worldId, resultCallback) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
429 | |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7540
diff
changeset
|
430 | loop.exec() |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
431 | return resultDict["res"] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
432 | |
5001
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
433 | def runJavaScript(self, script, worldId=-1, callback=None): |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
434 | """ |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
435 | Public method to run a script in the context of the page. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
436 | |
5001
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
437 | @param script JavaScript script source to be executed |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
438 | @type str |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
439 | @param worldId ID to run the script under |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
440 | @type int |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
441 | @param callback callback function to be executed when the script has |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
442 | ended |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
443 | @type function |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
444 | """ |
7201
6b42677d7043
Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7192
diff
changeset
|
445 | if worldId > -1: |
5001
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
446 | if callback is None: |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
447 | QWebEnginePage.runJavaScript(self, script, worldId) |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
448 | else: |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
449 | QWebEnginePage.runJavaScript(self, script, worldId, callback) |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
450 | else: |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
451 | if callback is None: |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
452 | QWebEnginePage.runJavaScript(self, script) |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
453 | else: |
08eaee907686
Prepared the QWebEingine based web browser for the new runJavaScript() method as of Qt 5.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4978
diff
changeset
|
454 | QWebEnginePage.runJavaScript(self, script, callback) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
455 | |
4965
a9a4b632fe48
Some enhancements for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4964
diff
changeset
|
456 | def isJavaScriptEnabled(self): |
a9a4b632fe48
Some enhancements for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4964
diff
changeset
|
457 | """ |
a9a4b632fe48
Some enhancements for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4964
diff
changeset
|
458 | Public method to test, if JavaScript is enabled. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
459 | |
4965
a9a4b632fe48
Some enhancements for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4964
diff
changeset
|
460 | @return flag indicating the state of the JavaScript support |
a9a4b632fe48
Some enhancements for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4964
diff
changeset
|
461 | @rtype bool |
a9a4b632fe48
Some enhancements for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4964
diff
changeset
|
462 | """ |
a9a4b632fe48
Some enhancements for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4964
diff
changeset
|
463 | return self.settings().testAttribute( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
464 | QWebEngineSettings.WebAttribute.JavascriptEnabled |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
465 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
466 | |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
467 | def scroll(self, x, y): |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
468 | """ |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
469 | Public method to scroll by the given amount of pixels. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
470 | |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
471 | @param x horizontal scroll value |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
472 | @type int |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
473 | @param y vertical scroll value |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
474 | @type int |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
475 | """ |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
476 | self.runJavaScript( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
477 | "window.scrollTo(window.scrollX + {0}, window.scrollY + {1})".format(x, y), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
478 | WebBrowserPage.SafeJsWorld, |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
479 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
480 | |
5774
a559df54a729
Started to implement session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
481 | def scrollTo(self, pos): |
a559df54a729
Started to implement session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
482 | """ |
a559df54a729
Started to implement session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
483 | Public method to scroll to the given position. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
484 | |
5774
a559df54a729
Started to implement session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
485 | @param pos position to scroll to |
a559df54a729
Started to implement session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
486 | @type QPointF |
a559df54a729
Started to implement session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
487 | """ |
a559df54a729
Started to implement session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
488 | self.runJavaScript( |
a559df54a729
Started to implement session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
489 | "window.scrollTo({0}, {1});".format(pos.x(), pos.y()), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
490 | WebBrowserPage.SafeJsWorld, |
5774
a559df54a729
Started to implement session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
491 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
492 | |
4925
6534062014dc
Mapped the webhit test position to the viewport.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
493 | def mapToViewport(self, pos): |
6534062014dc
Mapped the webhit test position to the viewport.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
494 | """ |
6534062014dc
Mapped the webhit test position to the viewport.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
495 | Public method to map a position to the viewport. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
496 | |
4925
6534062014dc
Mapped the webhit test position to the viewport.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
497 | @param pos position to be mapped |
6534062014dc
Mapped the webhit test position to the viewport.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
498 | @type QPoint |
6534062014dc
Mapped the webhit test position to the viewport.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
499 | @return viewport position |
6534062014dc
Mapped the webhit test position to the viewport.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
500 | @rtype QPoint |
6534062014dc
Mapped the webhit test position to the viewport.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
501 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
502 | return QPoint( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
503 | int(pos.x() // self.zoomFactor()), int(pos.y() // self.zoomFactor()) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
504 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
505 | |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
506 | def hitTestContent(self, pos): |
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
507 | """ |
4728
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
508 | Public method to test the content at a specified position. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
509 | |
4728
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
510 | @param pos position to execute the test at |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
511 | @type QPoint |
4728
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
512 | @return test result object |
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
513 | @rtype WebHitTestResult |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
514 | """ |
4728
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
515 | return WebHitTestResult(self, pos) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
516 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
517 | def __setupWebChannelForUrl(self, url): |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
518 | """ |
4745
285bfd224a1b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4744
diff
changeset
|
519 | Private method to setup a web channel to our external object. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
520 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
521 | @param url URL for which to setup the web channel |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
522 | @type QUrl |
4717
5841f229baf7
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4715
diff
changeset
|
523 | """ |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
524 | channel = self.webChannel() |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
525 | if channel is None: |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
526 | channel = QWebChannel(self) |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
527 | ExternalJsObject.setupWebChannel(channel, self) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
528 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
529 | worldId = -1 |
8260
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
530 | worldId = ( |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
531 | self.UnsafeJsWorld |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
532 | if url.scheme() in ("eric", "qthelp") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
533 | else self.SafeJsWorld |
8260
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
534 | ) |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
535 | if worldId != self.__channelWorldId: |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6139
diff
changeset
|
536 | self.__channelWorldId = worldId |
8692
9c72f9bc9d72
Removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8687
diff
changeset
|
537 | self.setWebChannel(channel, self.__channelWorldId) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
538 | |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4717
diff
changeset
|
539 | def certificateError(self, error): |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4717
diff
changeset
|
540 | """ |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4725
diff
changeset
|
541 | Public method to handle SSL certificate errors. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
542 | |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4717
diff
changeset
|
543 | @param error object containing the certificate error information |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4717
diff
changeset
|
544 | @type QWebEngineCertificateError |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4717
diff
changeset
|
545 | @return flag indicating to ignore this error |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4717
diff
changeset
|
546 | @rtype bool |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4717
diff
changeset
|
547 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
548 | return WebBrowserWindow.networkManager().certificateError(error, self.__view) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
549 | |
4884
6983af705a7f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4864
diff
changeset
|
550 | def __fullScreenRequested(self, request): |
6983af705a7f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4864
diff
changeset
|
551 | """ |
6983af705a7f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4864
diff
changeset
|
552 | Private slot handling a full screen request. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
553 | |
4917
682750cc7bd5
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4913
diff
changeset
|
554 | @param request reference to the full screen request |
682750cc7bd5
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4913
diff
changeset
|
555 | @type QWebEngineFullScreenRequest |
4884
6983af705a7f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4864
diff
changeset
|
556 | """ |
8556
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
557 | self.__view.requestFullScreen(request.toggleOn()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
558 | |
8556
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
559 | accepted = request.toggleOn() == self.__view.isFullScreen() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
560 | |
4884
6983af705a7f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4864
diff
changeset
|
561 | if accepted: |
6983af705a7f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4864
diff
changeset
|
562 | request.accept() |
6983af705a7f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4864
diff
changeset
|
563 | else: |
6983af705a7f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4864
diff
changeset
|
564 | request.reject() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
565 | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
566 | def __contentsSizeChanged(self, _size): |
6692
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6662
diff
changeset
|
567 | """ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6662
diff
changeset
|
568 | Private slot to work around QWebEnginePage not scrolling to anchors |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6662
diff
changeset
|
569 | when opened in a background tab. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
570 | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
571 | @param _size changed contents size (unused) (unused) |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
572 | @type QSizeF |
6692
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6662
diff
changeset
|
573 | """ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6662
diff
changeset
|
574 | fragment = self.url().fragment() |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6662
diff
changeset
|
575 | self.runJavaScript(Scripts.scrollToAnchor(fragment)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
576 | |
4745
285bfd224a1b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4744
diff
changeset
|
577 | ############################################## |
285bfd224a1b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4744
diff
changeset
|
578 | ## Methods below deal with JavaScript messages |
285bfd224a1b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4744
diff
changeset
|
579 | ############################################## |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
580 | |
4917
682750cc7bd5
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4913
diff
changeset
|
581 | def javaScriptConsoleMessage(self, level, message, lineNumber, sourceId): |
4822
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
582 | """ |
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
583 | Public method to show a console message. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
584 | |
4822
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
585 | @param level severity |
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
586 | @type QWebEnginePage.JavaScriptConsoleMessageLevel |
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
587 | @param message message to be shown |
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
588 | @type str |
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
589 | @param lineNumber line number of an error |
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
590 | @type int |
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
591 | @param sourceId source URL causing the error |
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
592 | @type str |
f1b9899847dc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4801
diff
changeset
|
593 | """ |
8556
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
594 | self.__view.mainWindow().javascriptConsole().javaScriptConsoleMessage( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
595 | level, message, lineNumber, sourceId |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
596 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
597 | |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
598 | ########################################################################### |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
599 | ## Methods below implement safe browsing related functions |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
600 | ########################################################################### |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
601 | |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
602 | def getSafeBrowsingStatus(self): |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
603 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
604 | Public method to get the safe browsing status of the current page. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
605 | |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
606 | @return flag indicating a safe site |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
607 | @rtype bool |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
608 | """ |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5785
diff
changeset
|
609 | return not self.__badSite |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
610 | |
6695
0a51887c13cd
Web Browser (NG):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6692
diff
changeset
|
611 | ############################################################# |
0a51887c13cd
Web Browser (NG):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6692
diff
changeset
|
612 | ## Methods below implement protocol handler related functions |
0a51887c13cd
Web Browser (NG):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6692
diff
changeset
|
613 | ############################################################# |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
614 | |
8243
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
615 | @pyqtSlot("QWebEngineRegisterProtocolHandlerRequest") |
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
616 | def __registerProtocolHandlerRequested(self, request): |
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
617 | """ |
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
618 | Private slot to handle the registration of a custom protocol |
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
619 | handler. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
620 | |
8243
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
621 | @param request reference to the registration request |
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
622 | @type QWebEngineRegisterProtocolHandlerRequest |
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
623 | """ |
9384
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
624 | acceptRequest = Preferences.getWebBrowser("AcceptProtocolHandlerRequest") |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
625 | # map yes/no/ask from (0, 1, 2) |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
626 | if acceptRequest == 0: |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
627 | # always yes |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
628 | ok = True |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
629 | elif acceptRequest == 1: |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
630 | # always no |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
631 | ok = False |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
632 | else: |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
633 | # ask user |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
634 | ok = EricMessageBox.yesNo( |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
635 | self, |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
636 | self.tr("Register Protocol Handler"), |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
637 | self.tr( |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
638 | "<p>Allow the Web Site <b>{0}</b> to handle all <b>{1}</b>" |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
639 | " links?</p>" |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
640 | ).format(request.origin().host(), request.scheme()), |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
641 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
642 | |
9384
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
643 | if ok: |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
644 | if self.url().host() == request.origin().host(): |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
645 | url = request.origin() |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
646 | scheme = request.scheme() |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
647 | else: |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
648 | url = QUrl() |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
649 | scheme = "" |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
650 | WebBrowserWindow.protocolHandlerManager().addProtocolHandler(scheme, url) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
651 | |
9384
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
652 | # always reject the original request |
b1b8e2dc2280
Added a configuration option for the file system access request as of Qt 6.4+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
653 | request.reject() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
654 | |
7766 | 655 | ############################################################# |
656 | ## SSL configuration handling below | |
657 | ############################################################# | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
658 | |
7766 | 659 | def setSslConfiguration(self, sslConfiguration): |
660 | """ | |
661 | Public slot to set the SSL configuration data of the page. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
662 | |
7766 | 663 | @param sslConfiguration SSL configuration to be set |
664 | @type QSslConfiguration | |
665 | """ | |
666 | self.__sslConfiguration = QSslConfiguration(sslConfiguration) | |
667 | self.__sslConfiguration.url = self.url() | |
668 | self.sslConfigurationChanged.emit() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
669 | |
7766 | 670 | def getSslConfiguration(self): |
671 | """ | |
672 | Public method to return a reference to the current SSL configuration. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
673 | |
7766 | 674 | @return reference to the SSL configuration in use |
675 | @rtype QSslConfiguration | |
676 | """ | |
677 | return self.__sslConfiguration | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
678 | |
7766 | 679 | def clearSslConfiguration(self): |
680 | """ | |
681 | Public slot to clear the stored SSL configuration data. | |
682 | """ | |
683 | self.__sslConfiguration = None | |
684 | self.sslConfigurationChanged.emit() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
685 | |
7766 | 686 | def getSslCertificate(self): |
687 | """ | |
688 | Public method to get a reference to the SSL certificate. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
689 | |
7766 | 690 | @return amended SSL certificate |
691 | @rtype QSslCertificate | |
692 | """ | |
693 | if self.__sslConfiguration is None: | |
694 | return None | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
695 | |
7766 | 696 | sslCertificate = self.__sslConfiguration.peerCertificate() |
697 | sslCertificate.url = QUrl(self.__sslConfiguration.url) | |
698 | return sslCertificate | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
699 | |
7766 | 700 | def getSslCertificateChain(self): |
701 | """ | |
702 | Public method to get a reference to the SSL certificate chain. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
703 | |
7766 | 704 | @return SSL certificate chain |
705 | @rtype list of QSslCertificate | |
706 | """ | |
707 | if self.__sslConfiguration is None: | |
708 | return [] | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
709 | |
7766 | 710 | chain = self.__sslConfiguration.peerCertificateChain() |
711 | return chain | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
712 | |
7766 | 713 | def showSslInfo(self, pos): |
714 | """ | |
715 | Public slot to show some SSL information for the loaded page. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
716 | |
7766 | 717 | @param pos position to show the info at |
718 | @type QPoint | |
719 | """ | |
720 | if SSL_AVAILABLE and self.__sslConfiguration is not None: | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
721 | widget = EricSslInfoWidget(self.url(), self.__sslConfiguration, self.__view) |
7766 | 722 | widget.showAt(pos) |
723 | else: | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8354
diff
changeset
|
724 | EricMessageBox.warning( |
8556
766e1566cb74
Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8553
diff
changeset
|
725 | self.__view, |
7766 | 726 | self.tr("SSL Info"), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
727 | self.tr("""This site does not contain SSL information."""), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
728 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
729 | |
7766 | 730 | def hasValidSslInfo(self): |
731 | """ | |
732 | Public method to check, if the page has a valid SSL certificate. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
733 | |
7766 | 734 | @return flag indicating a valid SSL certificate |
735 | @rtype bool | |
736 | """ | |
737 | if self.__sslConfiguration is None: | |
738 | return False | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
739 | |
7766 | 740 | certList = self.__sslConfiguration.peerCertificateChain() |
741 | if not certList: | |
742 | return False | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
743 | |
10806
2f6df822e3b9
Moved some functions to the EricUtilities package for consistency and adapted the code base accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10683
diff
changeset
|
744 | certificateDict = EricUtilities.toDict( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
745 | Preferences.getSettings().value("Ssl/CaCertificatesDict") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
746 | ) |
7766 | 747 | for server in certificateDict: |
748 | localCAList = QSslCertificate.fromData(certificateDict[server]) | |
8221
0572a215bd2f
Applied some more code simplifications suggested by the new Simplify checker (Y110, Y111: use any() or all()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
749 | if any(cert in localCAList for cert in certList): |
0572a215bd2f
Applied some more code simplifications suggested by the new Simplify checker (Y110, Y111: use any() or all()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
750 | return True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
751 | |
8221
0572a215bd2f
Applied some more code simplifications suggested by the new Simplify checker (Y110, Y111: use any() or all()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
752 | return all(not cert.isBlacklisted() for cert in certList) |