Sat, 26 Sep 2020 10:58:18 +0200
Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
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 | |
7360
9190402e4505
Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
3 | # Copyright (c) 2016 - 2020 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 | |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
16 | from PyQt5.QtCore import QUrlQuery, QUrl |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
17 | |
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
|
18 | from .WebBrowserTools import getJavascript |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
21 | def setupWebChannel(worldId): |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | Function generating a script to setup the web channel. |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
6149
e611e45a17d6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
25 | @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
|
26 | @type int |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | @return script to setup the web channel |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | @rtype str |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | source = """ |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
31 | // ==UserScript== |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
32 | {0} |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
33 | // ==/UserScript== |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
34 | |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
35 | (function() {{ |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
36 | {1} |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
37 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
38 | function registerExternal(e) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
39 | window.external = e; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
40 | if (window.external) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
41 | var event = document.createEvent('Event'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
42 | event.initEvent('_eric_external_created', true, true); |
6129
049ab6ad3144
Some more GreaseMonkey changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6127
diff
changeset
|
43 | window._eric_external = true; |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
44 | document.dispatchEvent(event); |
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 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
48 | if (self !== top) {{ |
6129
049ab6ad3144
Some more GreaseMonkey changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6127
diff
changeset
|
49 | if (top._eric_external) |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
50 | registerExternal(top.external); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
51 | else |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
52 | top.document.addEventListener( |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
53 | '_eric_external_created', function() {{ |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | registerExternal(top.external); |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
55 | }}); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
56 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
57 | }} |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
59 | function registerWebChannel() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
60 | try {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
61 | new QWebChannel(qt.webChannelTransport, function(channel) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
62 | var external = channel.objects.eric_object; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
63 | external.extra = {{}}; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
64 | for (var key in channel.objects) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
65 | 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
|
66 | 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
|
67 | }} |
5342
2b6821805f46
Fixed creating the web channel in the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4886
diff
changeset
|
68 | }} |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
69 | registerExternal(external); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
70 | }}); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
71 | }} catch (e) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
72 | setTimeout(registerWebChannel, 100); |
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 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
75 | registerWebChannel(); |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
77 | }})()""" |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
79 | from WebBrowser.WebBrowserPage import WebBrowserPage |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
80 | if worldId == WebBrowserPage.SafeJsWorld: |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
81 | match = "// @exclude eric:*" |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
82 | else: |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
83 | match = "// @include eric:*" |
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) |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
274 | for name, value in query.queryItems(QUrl.FullyDecoded): |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
275 | value = value.replace("'", "\\'") |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
276 | name = name.replace("'", "\\'") |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
277 | values += valueSource.format(name, value) |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
278 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
279 | return source.format(url.toString(), values) |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
280 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
281 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
282 | def setupFormObserver(): |
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 | 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
|
285 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
286 | @return script to monitor a web page |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
287 | @rtype str |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
288 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
289 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
290 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
291 | function findUsername(inputs) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
292 | var usernameNames = ['user', 'name', 'login']; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
293 | 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
|
294 | 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
|
295 | if (inputs[j].type == 'text' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
296 | inputs[j].value.length && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
297 | 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
|
298 | return inputs[j].value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
299 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
300 | 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
|
301 | 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
|
302 | return inputs[i].value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
303 | 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
|
304 | 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
|
305 | return inputs[i].value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
306 | return ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
307 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
308 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
309 | function registerForm(form) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
310 | form.addEventListener('submit', function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
311 | var form = this; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
312 | var data = ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
313 | var password = ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
314 | var inputs = form.getElementsByTagName('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
315 | 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
|
316 | var input = inputs[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
317 | var type = input.type.toLowerCase(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
318 | if (type != 'text' && type != 'password' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
319 | type != 'email') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
320 | continue; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
321 | if (!password && type == 'password') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
322 | password = input.value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
323 | data += encodeURIComponent(input.name); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
324 | data += '='; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
325 | data += encodeURIComponent(input.value); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
326 | data += '&'; |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
327 | } |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
328 | if (!password) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
329 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
330 | 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
|
331 | var url = window.location.href; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
332 | var username = findUsername(inputs); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
333 | external.passwordManager.formSubmitted( |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
334 | url, username, password, data); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
335 | }, true); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
336 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
337 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
338 | 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
|
339 | registerForm(document.forms[i]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
340 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
341 | var observer = new MutationObserver(function(mutations) { |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
342 | for (var mutation of mutations) |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
343 | for (var node of mutation.addedNodes) |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
344 | if (node.tagName && node.tagName.toLowerCase() == 'form') |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
345 | registerForm(node); |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
346 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
347 | observer.observe(document.documentElement, { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
348 | childList: true, subtree: true |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
349 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
350 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
351 | })()""" |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
352 | return source |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
353 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
354 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
355 | def completeFormData(data): |
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 | 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
|
358 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
359 | @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
|
360 | @type QByteArray |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
361 | @return script to fill a form |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
362 | @rtype str |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
363 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
364 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
365 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
366 | var data = '{0}'.split('&'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
367 | var inputs = document.getElementsByTagName('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
368 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
369 | 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
|
370 | var pair = data[i].split('='); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
371 | if (pair.length != 2) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
372 | continue; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
373 | var key = decodeURIComponent(pair[0]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
374 | var val = decodeURIComponent(pair[1]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
375 | 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
|
376 | var input = inputs[j]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
377 | var type = input.type.toLowerCase(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
378 | if (type != 'text' && type != 'password' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
379 | type != 'email') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
380 | continue; |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
381 | if (input.name == key) {{ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
382 | input.value = val; |
6174
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
383 | input.dispatchEvent(new Event('change')); |
bb2989d750ce
WebBrowser: Fixed some sender() related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
384 | }} |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
385 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
386 | }} |
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 | }})()""" |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
389 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
390 | data = bytes(data).decode("utf-8") |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
391 | data = data.replace("'", "\\'") |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
392 | return source.format(data) |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
393 | |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
394 | |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
395 | def setCss(css): |
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 | 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
|
398 | |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
399 | @param css style sheet |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
400 | @type str |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
401 | @return script to set the style sheet |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
402 | @rtype str |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
403 | """ |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
404 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
405 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
406 | var css = document.createElement('style'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
407 | css.setAttribute('type', 'text/css'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
408 | css.appendChild(document.createTextNode('{0}')); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
409 | document.getElementsByTagName('head')[0].appendChild(css); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
410 | }})()""" |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
411 | style = css.replace("'", "\\'").replace("\n", "\\n") |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
412 | return source.format(style) |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
413 | |
6692
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
414 | |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
415 | def scrollToAnchor(anchor): |
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 | 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
|
418 | |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
419 | @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
|
420 | @type str |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
421 | @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
|
422 | @rtype str |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
423 | """ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
424 | source = """ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
425 | (function() {{ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
426 | 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
|
427 | if (!e) {{ |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
428 | 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
|
429 | if (els.length) |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
430 | e = els[0] |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
431 | }} |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
432 | if (e) |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
433 | e.scrollIntoView() |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
434 | }})()""" |
c104c120e043
Web Browser (NG): some compatibility changes for Qt 5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
435 | 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
|
436 | |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
437 | ########################################################################### |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
438 | ## scripts below are specific for eric |
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 | |
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 | def getFeedLinks(): |
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 | 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
|
445 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
446 | @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
|
447 | @rtype str |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
448 | """ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
449 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
450 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
451 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
452 | var links = document.getElementsByTagName('link'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
453 | 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
|
454 | var e = links[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
455 | if ((e.rel == 'alternate') && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
456 | ((e.type == 'application/atom+xml') || |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
457 | (e.type == 'application/rss+xml') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
458 | ) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
459 | ) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
460 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
461 | url: e.getAttribute('href'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
462 | title: e.getAttribute('title') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
463 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
464 | } |
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 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
467 | })()""" |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
468 | return source |