Sun, 26 Dec 2021 18:43:48 +0100
Changed the various search related combo boxes to show an error using style sheets.
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
3 | # Copyright (c) 2016 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module containing function to generate JavaScript code. |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
4728
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
10 | # |
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
11 | # This code was ported from QupZilla. |
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
12 | # Copyright (C) David Rosca <nowrep@gmail.com> |
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
13 | # |
0367675d783d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4726
diff
changeset
|
14 | |
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
|
15 | from PyQt6.QtCore import QUrlQuery, QUrl |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
16 | |
7717
f32d7965a17e
Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
17 | from .WebBrowserTools import getJavascript |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
20 | def setupWebChannel(worldId): |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Function generating a script to setup the web channel. |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
6149
e611e45a17d6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
24 | @param worldId world ID for which to setup the channel |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
25 | @type int |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | @return script to setup the web channel |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | @rtype str |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | source = """ |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
30 | // ==UserScript== |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
31 | {0} |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
32 | // ==/UserScript== |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
33 | |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
34 | (function() {{ |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
35 | {1} |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
36 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
37 | function registerExternal(e) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
38 | window.external = e; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
39 | if (window.external) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
40 | var event = document.createEvent('Event'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
41 | event.initEvent('_eric_external_created', true, true); |
6129
049ab6ad3144
Some more GreaseMonkey changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6127
diff
changeset
|
42 | window._eric_external = true; |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
43 | document.dispatchEvent(event); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
44 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
45 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
46 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
47 | if (self !== top) {{ |
6129
049ab6ad3144
Some more GreaseMonkey changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6127
diff
changeset
|
48 | if (top._eric_external) |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
49 | registerExternal(top.external); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
50 | else |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
51 | top.document.addEventListener( |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
52 | '_eric_external_created', function() {{ |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | registerExternal(top.external); |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
54 | }}); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
55 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
56 | }} |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
58 | function registerWebChannel() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
59 | try {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
60 | new QWebChannel(qt.webChannelTransport, function(channel) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
61 | var external = channel.objects.eric_object; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
62 | external.extra = {{}}; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
63 | for (var key in channel.objects) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
64 | if (key != 'eric_object' && key.startsWith('eric_')) {{ |
6135
12e48d27f1d7
Fixed a few issue introduced by the recent changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6129
diff
changeset
|
65 | external.extra[key.substr(5)] = channel.objects[key]; |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
66 | }} |
5342
2b6821805f46
Fixed creating the web channel in the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4886
diff
changeset
|
67 | }} |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
68 | registerExternal(external); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
69 | }}); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
70 | }} catch (e) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
71 | setTimeout(registerWebChannel, 100); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
72 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
73 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
74 | registerWebChannel(); |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
76 | }})()""" |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
78 | from WebBrowser.WebBrowserPage import WebBrowserPage |
8260
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
79 | match = ( |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
80 | "// @exclude eric:*" |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
81 | if worldId == WebBrowserPage.SafeJsWorld else |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
82 | "// @include eric:*" |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
83 | ) |
7717
f32d7965a17e
Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
84 | return source.format(match, getJavascript("qwebchannel.js")) |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | |
6142
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
87 | def setupWindowObject(): |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
88 | """ |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
89 | Function generating a script to setup window.object add-ons. |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
90 | |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
91 | @return generated script |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
92 | @rtype str |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
93 | """ |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
94 | source = """ |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
95 | (function() { |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
96 | var external = {}; |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
97 | external.AddSearchProvider = function(url) { |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
98 | window.location = 'eric:AddSearchProvider?url=' + url; |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
99 | }; |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
100 | external.IsSearchProviderInstalled = function(url) { |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
101 | console.warn('NOT IMPLEMENTED: IsSearchProviderInstalled()'); |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
102 | return false; |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
103 | }; |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
104 | window.external = external; |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
105 | window.print = function() { |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
106 | window.location = 'eric:PrintPage'; |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
107 | }; |
6142
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
108 | })()""" |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
109 | |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
110 | return source |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
111 | |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
112 | |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | def setStyleSheet(css): |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | Function generating a script to set a user style sheet. |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4725
diff
changeset
|
117 | @param css style sheet to be applied |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4725
diff
changeset
|
118 | @type str |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | @return script to set a user style sheet |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | @rtype str |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
123 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
124 | var css = document.createElement('style'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
125 | css.setAttribute('type', 'text/css'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
126 | css.appendChild(document.createTextNode('{0}')); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
127 | document.getElementsByTagName('head')[0].appendChild(css); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
128 | }})()""" |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | style = css.replace("'", "\\'").replace("\n", "\\n") |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | return source.format(style) |
4729
fc8d00860717
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4728
diff
changeset
|
132 | |
fc8d00860717
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4728
diff
changeset
|
133 | |
4731
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
134 | def getFormData(pos): |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
135 | """ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
136 | Function generating a script to extract data for a form element. |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
137 | |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
138 | @param pos position to extract data at |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
139 | @type QPoint |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
140 | @return script to extract form data |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
141 | @rtype str |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
142 | """ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
143 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
144 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
145 | var e = document.elementFromPoint({0}, {1}); |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
146 | if (!e || e.tagName.toLowerCase() != 'input') |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
147 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
148 | var fe = e.parentElement; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
149 | while (fe) {{ |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
150 | if (fe.tagName.toLowerCase() != 'form') |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
151 | break; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
152 | fe = fe.parentElement; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
153 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
154 | if (!fe) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
155 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
156 | var res = {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
157 | method: fe.method.toLowerCase(), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
158 | action: fe.action, |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
159 | inputName: e.name, |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
160 | inputs: [], |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
161 | }}; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
162 | for (var i = 0; i < fe.length; ++i) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
163 | var input = fe.elements[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
164 | res.inputs.push([input.name, input.value]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
165 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
166 | return res; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
167 | }})()""" |
4731
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
168 | return source.format(pos.x(), pos.y()) |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
169 | |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
170 | |
4783
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
171 | def getAllImages(): |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
172 | """ |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
173 | Function generating a script to extract all image tags of a web page. |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
174 | |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
175 | @return script to extract image tags |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
176 | @rtype str |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
177 | """ |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
178 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
179 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
180 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
181 | var imgs = document.getElementsByTagName('img'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
182 | for (var i = 0; i < imgs.length; ++i) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
183 | var e = imgs[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
184 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
185 | src: e.src, |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
186 | alt: e.alt |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
187 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
188 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
189 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
190 | })()""" |
4783
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
191 | return source |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
192 | |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
193 | |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
194 | def getAllMetaAttributes(): |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
195 | """ |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
196 | Function generating a script to extract all meta attributes of a web page. |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
197 | |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
198 | @return script to extract meta attributes |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
199 | @rtype str |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
200 | """ |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
201 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
202 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
203 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
204 | var meta = document.getElementsByTagName('meta'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
205 | for (var i = 0; i < meta.length; ++i) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
206 | var e = meta[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
207 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
208 | name: e.getAttribute('name'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
209 | content: e.getAttribute('content'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
210 | httpequiv: e.getAttribute('http-equiv'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
211 | charset: e.getAttribute('charset') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
212 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
213 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
214 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
215 | })()""" |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
216 | return source |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
217 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
218 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
219 | def getOpenSearchLinks(): |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
220 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
221 | Function generating a script to extract all open search links. |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
222 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
223 | @return script to extract all open serach links |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
224 | @rtype str |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
225 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
226 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
227 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
228 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
229 | var links = document.getElementsByTagName('link'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
230 | for (var i = 0; i < links.length; ++i) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
231 | var e = links[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
232 | if (e.type == 'application/opensearchdescription+xml') { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
233 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
234 | url: e.getAttribute('href'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
235 | title: e.getAttribute('title') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
236 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
237 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
238 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
239 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
240 | })()""" |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
241 | return source |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
242 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
243 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
244 | def sendPostData(url, data): |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
245 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
246 | Function generating a script to send Post data. |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
247 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
248 | @param url URL to send the data to |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
249 | @type QUrl |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
250 | @param data data to be sent |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
251 | @type QByteArray |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
252 | @return script to send Post data |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
253 | @rtype str |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
254 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
255 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
256 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
257 | var form = document.createElement('form'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
258 | form.setAttribute('method', 'POST'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
259 | form.setAttribute('action', '{0}'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
260 | var val; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
261 | {1} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
262 | form.submit(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
263 | }})()""" |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
264 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
265 | valueSource = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
266 | val = document.createElement('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
267 | val.setAttribute('type', 'hidden'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
268 | val.setAttribute('name', '{0}'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
269 | val.setAttribute('value', '{1}'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
270 | form.appendChild(val);""" |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
271 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
272 | values = "" |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
273 | query = QUrlQuery(data) |
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
|
274 | for name, value in query.queryItems( |
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
|
275 | QUrl.ComponentFormattingOption.FullyDecoded |
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
|
276 | ): |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
277 | value = value.replace("'", "\\'") |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
278 | name = name.replace("'", "\\'") |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
279 | values += valueSource.format(name, value) |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
280 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
281 | return source.format(url.toString(), values) |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
282 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
283 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
284 | def setupFormObserver(): |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
285 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
286 | Function generating a script to monitor a web form for user entries. |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
287 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
288 | @return script to monitor a web page |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
289 | @rtype str |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
290 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
291 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
292 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
293 | function findUsername(inputs) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
294 | var usernameNames = ['user', 'name', 'login']; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
295 | for (var i = 0; i < usernameNames.length; ++i) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
296 | for (var j = 0; j < inputs.length; ++j) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
297 | if (inputs[j].type == 'text' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
298 | inputs[j].value.length && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
299 | inputs[j].name.indexOf(usernameNames[i]) != -1) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
300 | return inputs[j].value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
301 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
302 | for (var i = 0; i < inputs.length; ++i) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
303 | if (inputs[i].type == 'text' && inputs[i].value.length) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
304 | return inputs[i].value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
305 | for (var i = 0; i < inputs.length; ++i) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
306 | if (inputs[i].type == 'email' && inputs[i].value.length) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
307 | return inputs[i].value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
308 | return ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
309 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
310 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
311 | function registerForm(form) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
312 | form.addEventListener('submit', function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
313 | var form = this; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
314 | var data = ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
315 | var password = ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
316 | var inputs = form.getElementsByTagName('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
317 | for (var i = 0; i < inputs.length; ++i) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
318 | var input = inputs[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
319 | var type = input.type.toLowerCase(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
320 | if (type != 'text' && type != 'password' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
321 | type != 'email') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
322 | continue; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
323 | if (!password && type == 'password') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
324 | password = input.value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
325 | data += encodeURIComponent(input.name); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
326 | data += '='; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
327 | data += encodeURIComponent(input.value); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
328 | data += '&'; |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
329 | } |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
330 | if (!password) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
331 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
332 | data = data.substring(0, data.length - 1); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
333 | var url = window.location.href; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
334 | var username = findUsername(inputs); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
335 | external.passwordManager.formSubmitted( |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
336 | url, username, password, data); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
337 | }, true); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
338 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
339 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
340 | for (var i = 0; i < document.forms.length; ++i) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
341 | registerForm(document.forms[i]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
342 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
343 | var observer = new MutationObserver(function(mutations) { |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
344 | for (var mutation of mutations) |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
345 | for (var node of mutation.addedNodes) |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
346 | if (node.tagName && node.tagName.toLowerCase() == 'form') |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
347 | registerForm(node); |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
348 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
349 | observer.observe(document.documentElement, { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
350 | childList: true, subtree: true |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
351 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
352 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
353 | })()""" |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
354 | return source |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
355 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
356 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
357 | def completeFormData(data): |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
358 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
359 | Function generating a script to fill in form data. |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
360 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
361 | @param data data to be filled into the form |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
362 | @type QByteArray |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
363 | @return script to fill a form |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
364 | @rtype str |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
365 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
366 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
367 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
368 | var data = '{0}'.split('&'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
369 | var inputs = document.getElementsByTagName('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
370 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
371 | for (var i = 0; i < data.length; ++i) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
372 | var pair = data[i].split('='); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
373 | if (pair.length != 2) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
374 | continue; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
375 | var key = decodeURIComponent(pair[0]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
376 | var val = decodeURIComponent(pair[1]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
377 | for (var j = 0; j < inputs.length; ++j) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
378 | var input = inputs[j]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
379 | var type = input.type.toLowerCase(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
380 | if (type != 'text' && type != 'password' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
381 | type != 'email') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
382 | continue; |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
383 | if (input.name == key) {{ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
384 | input.value = val; |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
385 | input.dispatchEvent(new Event('change')); |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
386 | }} |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
387 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
388 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
389 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
390 | }})()""" |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
391 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
392 | data = bytes(data).decode("utf-8") |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
393 | data = data.replace("'", "\\'") |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
394 | return source.format(data) |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
395 | |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
396 | |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
397 | def setCss(css): |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
398 | """ |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
399 | Function generating a script to set a given CSS style sheet. |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
400 | |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
401 | @param css style sheet |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
402 | @type str |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
403 | @return script to set the style sheet |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
404 | @rtype str |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
405 | """ |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
406 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
407 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
408 | var css = document.createElement('style'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
409 | css.setAttribute('type', 'text/css'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
410 | css.appendChild(document.createTextNode('{0}')); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
411 | document.getElementsByTagName('head')[0].appendChild(css); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
412 | }})()""" |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
413 | style = css.replace("'", "\\'").replace("\n", "\\n") |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
414 | return source.format(style) |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
415 | |
6692
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
416 | |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
417 | def scrollToAnchor(anchor): |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
418 | """ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
419 | Function generating script to scroll to a given anchor. |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
420 | |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
421 | @param anchor name of the anchor to scroll to |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
422 | @type str |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
423 | @return script to set the style sheet |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
424 | @rtype str |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
425 | """ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
426 | source = """ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
427 | (function() {{ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
428 | var e = document.getElementById("{0}") |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
429 | if (!e) {{ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
430 | var els = document.querySelectorAll("[name='{0}']"); |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
431 | if (els.length) |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
432 | e = els[0] |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
433 | }} |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
434 | if (e) |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
435 | e.scrollIntoView() |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
436 | }})()""" |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
437 | return source.format(anchor) |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
438 | |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
439 | ########################################################################### |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
440 | ## scripts below are specific for eric |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
441 | ########################################################################### |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
442 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
443 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
444 | def getFeedLinks(): |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
445 | """ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
446 | Function generating a script to extract all RSS and Atom feed links. |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
447 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
448 | @return script to extract all RSS and Atom feed links |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
449 | @rtype str |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
450 | """ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
451 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
452 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
453 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
454 | var links = document.getElementsByTagName('link'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
455 | for (var i = 0; i < links.length; ++i) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
456 | var e = links[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
457 | if ((e.rel == 'alternate') && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
458 | ((e.type == 'application/atom+xml') || |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
459 | (e.type == 'application/rss+xml') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
460 | ) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
461 | ) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
462 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
463 | url: e.getAttribute('href'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
464 | title: e.getAttribute('title') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
465 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
466 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
467 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
468 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
469 | })()""" |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
470 | return source |