Tue, 13 Feb 2018 19:59:44 +0100
Fixed a few code style issues.
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 | |
6048
82ad8ec9548c
Updated copyright for 2018.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5747
diff
changeset
|
3 | # Copyright (c) 2016 - 2018 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 | from __future__ import unicode_literals |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
17 | from PyQt5.QtCore import QUrlQuery, QUrl |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
18 | |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from .WebBrowserTools import readAllFileContents |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
22 | def setupWebChannel(worldId): |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | Function generating a script to setup the web channel. |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
6149
e611e45a17d6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6142
diff
changeset
|
26 | @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
|
27 | @type int |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | @return script to setup the web channel |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | @rtype str |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | source = """ |
6140
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 | {0} |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
34 | // ==/UserScript== |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
35 | |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
36 | (function() {{ |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
37 | {1} |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
38 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
39 | function registerExternal(e) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
40 | window.external = e; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
41 | if (window.external) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
42 | var event = document.createEvent('Event'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
43 | event.initEvent('_eric_external_created', true, true); |
6129
049ab6ad3144
Some more GreaseMonkey changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6127
diff
changeset
|
44 | window._eric_external = true; |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
45 | document.dispatchEvent(event); |
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 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
49 | if (self !== top) {{ |
6129
049ab6ad3144
Some more GreaseMonkey changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6127
diff
changeset
|
50 | if (top._eric_external) |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
51 | registerExternal(top.external); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
52 | else |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
53 | top.document.addEventListener( |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
54 | '_eric_external_created', function() {{ |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | registerExternal(top.external); |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
56 | }}); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
57 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
58 | }} |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
60 | function registerWebChannel() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
61 | try {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
62 | new QWebChannel(qt.webChannelTransport, function(channel) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
63 | var external = channel.objects.eric_object; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
64 | external.extra = {{}}; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
65 | for (var key in channel.objects) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
66 | 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
|
67 | 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
|
68 | }} |
5342
2b6821805f46
Fixed creating the web channel in the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4886
diff
changeset
|
69 | }} |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
70 | registerExternal(external); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
71 | }}); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
72 | }} catch (e) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
73 | setTimeout(registerWebChannel, 100); |
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 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
76 | registerWebChannel(); |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
78 | }})()""" |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
80 | from WebBrowser.WebBrowserPage import WebBrowserPage |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
81 | if worldId == WebBrowserPage.SafeJsWorld: |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
82 | match = "// @exclude eric:*" |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
83 | else: |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
84 | match = "// @include eric:*" |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
85 | return source.format( |
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
86 | match, readAllFileContents(":/javascript/qwebchannel.js")) |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | |
6142
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
89 | def setupWindowObject(): |
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 | 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
|
92 | |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
93 | @return generated script |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
94 | @rtype str |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
95 | """ |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
96 | source = """ |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
97 | (function() { |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
98 | var external = {}; |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
99 | |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
100 | window.external = external; |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
101 | |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
102 | window.print = function() { |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
103 | window.location = 'eric:PrintPage'; |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
104 | }; |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
105 | })()""" |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
106 | |
304a469455c8
Added support for printing from within a web page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6140
diff
changeset
|
107 | return source |
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 | |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | def setStyleSheet(css): |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | 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
|
113 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4725
diff
changeset
|
114 | @param css style sheet to be applied |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4725
diff
changeset
|
115 | @type str |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | @return script to set a user style sheet |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | @rtype str |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
120 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
121 | var css = document.createElement('style'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
122 | css.setAttribute('type', 'text/css'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
123 | css.appendChild(document.createTextNode('{0}')); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
124 | document.getElementsByTagName('head')[0].appendChild(css); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
125 | }})()""" |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | style = css.replace("'", "\\'").replace("\n", "\\n") |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | return source.format(style) |
4729
fc8d00860717
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4728
diff
changeset
|
129 | |
fc8d00860717
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4728
diff
changeset
|
130 | |
4731
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
131 | def getFormData(pos): |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
132 | """ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
133 | 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
|
134 | |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
135 | @param pos position to extract data at |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
136 | @type QPoint |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
137 | @return script to extract form data |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
138 | @rtype str |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
139 | """ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
140 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
141 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
142 | var e = document.elementFromPoint({0}, {1}); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
143 | if (!e || e.tagName != 'INPUT') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
144 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
145 | var fe = e.parentElement; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
146 | while (fe) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
147 | if (fe.tagName == 'FORM') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
148 | break; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
149 | fe = fe.parentElement; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
150 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
151 | if (!fe) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
152 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
153 | var res = {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
154 | method: fe.method.toLowerCase(), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
155 | action: fe.action, |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
156 | inputName: e.name, |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
157 | inputs: [], |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
158 | }}; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
159 | 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
|
160 | var input = fe.elements[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
161 | 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
|
162 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
163 | return res; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
164 | }})()""" |
4731
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
165 | return source.format(pos.x(), pos.y()) |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
166 | |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
167 | |
4783
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
168 | def getAllImages(): |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
169 | """ |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
170 | 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
|
171 | |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
172 | @return script to extract image tags |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
173 | @rtype str |
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 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
176 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
177 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
178 | var imgs = document.getElementsByTagName('img'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
179 | 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
|
180 | var e = imgs[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
181 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
182 | src: e.src, |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
183 | alt: e.alt |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
184 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
185 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
186 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
187 | })()""" |
4783
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
188 | return source |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
189 | |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
190 | |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
191 | def getAllMetaAttributes(): |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
192 | """ |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
193 | 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
|
194 | |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
195 | @return script to extract meta attributes |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
196 | @rtype str |
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 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
199 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
200 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
201 | var meta = document.getElementsByTagName('meta'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
202 | 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
|
203 | var e = meta[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
204 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
205 | name: e.getAttribute('name'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
206 | content: e.getAttribute('content'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
207 | httpequiv: e.getAttribute('http-equiv'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
208 | charset: e.getAttribute('charset') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
209 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
210 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
211 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
212 | })()""" |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
213 | return source |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
214 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
215 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
216 | def getOpenSearchLinks(): |
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 | 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
|
219 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
220 | @return script to extract all open serach links |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
221 | @rtype str |
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 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
224 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
225 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
226 | var links = document.getElementsByTagName('link'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
227 | 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
|
228 | var e = links[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
229 | if (e.type == 'application/opensearchdescription+xml') { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
230 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
231 | url: e.getAttribute('href'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
232 | title: e.getAttribute('title') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
233 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
234 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
235 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
236 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
237 | })()""" |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
238 | return source |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
239 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
240 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
241 | def sendPostData(url, data): |
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 | Function generating a script to send Post data. |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
244 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
245 | @param url URL to send the data to |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
246 | @type QUrl |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
247 | @param data data to be sent |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
248 | @type QByteArray |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
249 | @return script to send Post data |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
250 | @rtype str |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
251 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
252 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
253 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
254 | var form = document.createElement('form'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
255 | form.setAttribute('method', 'POST'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
256 | form.setAttribute('action', '{0}'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
257 | var val; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
258 | {1} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
259 | form.submit(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
260 | }})()""" |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
261 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
262 | valueSource = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
263 | val = document.createElement('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
264 | val.setAttribute('type', 'hidden'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
265 | val.setAttribute('name', '{0}'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
266 | val.setAttribute('value', '{1}'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
267 | form.appendChild(val);""" |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
268 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
269 | values = "" |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
270 | query = QUrlQuery(data) |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
271 | for name, value in query.queryItems(QUrl.FullyDecoded): |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
272 | value = value.replace("'", "\\'") |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
273 | name = name.replace("'", "\\'") |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
274 | values += valueSource.format(name, value) |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
275 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
276 | return source.format(url.toString(), values) |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
277 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
278 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
279 | def setupFormObserver(): |
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 | 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
|
282 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
283 | @return script to monitor a web page |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
284 | @rtype str |
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 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
287 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
288 | function findUsername(inputs) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
289 | var usernameNames = ['user', 'name', 'login']; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
290 | 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
|
291 | 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
|
292 | if (inputs[j].type == 'text' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
293 | inputs[j].value.length && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
294 | 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
|
295 | return inputs[j].value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
296 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
297 | 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
|
298 | 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
|
299 | return inputs[i].value; |
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 == 'email' && 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 | return ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
304 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
305 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
306 | function registerForm(form) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
307 | form.addEventListener('submit', function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
308 | var form = this; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
309 | var data = ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
310 | var password = ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
311 | var inputs = form.getElementsByTagName('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
312 | 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
|
313 | var input = inputs[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
314 | var type = input.type.toLowerCase(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
315 | if (type != 'text' && type != 'password' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
316 | type != 'email') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
317 | continue; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
318 | if (!password && type == 'password') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
319 | password = input.value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
320 | data += encodeURIComponent(input.name); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
321 | data += '='; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
322 | data += encodeURIComponent(input.value); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
323 | data += '&'; |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
324 | } |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
325 | if (!password) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
326 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
327 | 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
|
328 | var url = window.location.href; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
329 | var username = findUsername(inputs); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
330 | external.passwordManager.formSubmitted( |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
331 | url, username, password, data); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
332 | }, true); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
333 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
334 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
335 | 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
|
336 | registerForm(document.forms[i]); |
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 | var observer = new MutationObserver(function(mutations) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
339 | for (var i = 0; i < mutations.length; ++i) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
340 | for (var j = 0; j < mutations[i].addedNodes.length; ++j) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
341 | if (mutations[i].addedNodes[j].tagName == 'FORM') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
342 | registerForm(mutations[i].addedNodes[j]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
343 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
344 | observer.observe(document.documentElement, { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
345 | childList: true, subtree: true |
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 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
348 | })()""" |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
349 | return source |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
350 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
351 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
352 | def completeFormData(data): |
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 | 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
|
355 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
356 | @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
|
357 | @type QByteArray |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
358 | @return script to fill a form |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
359 | @rtype str |
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 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
362 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
363 | var data = '{0}'.split('&'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
364 | var inputs = document.getElementsByTagName('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
365 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
366 | 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
|
367 | var pair = data[i].split('='); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
368 | if (pair.length != 2) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
369 | continue; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
370 | var key = decodeURIComponent(pair[0]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
371 | var val = decodeURIComponent(pair[1]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
372 | 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
|
373 | var input = inputs[j]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
374 | var type = input.type.toLowerCase(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
375 | if (type != 'text' && type != 'password' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
376 | type != 'email') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
377 | continue; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
378 | if (input.name == key) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
379 | input.value = val; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
380 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
381 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
382 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
383 | }})()""" |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
384 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
385 | data = bytes(data).decode("utf-8") |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
386 | data = data.replace("'", "\\'") |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
387 | return source.format(data) |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
388 | |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
389 | |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
390 | def setCss(css): |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
391 | """ |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
392 | 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
|
393 | |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
394 | @param css style sheet |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
395 | @type str |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
396 | @return script to set the style sheet |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
397 | @rtype str |
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 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
400 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
401 | var css = document.createElement('style'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
402 | css.setAttribute('type', 'text/css'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
403 | css.appendChild(document.createTextNode('{0}')); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
404 | document.getElementsByTagName('head')[0].appendChild(css); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
405 | }})()""" |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
406 | style = css.replace("'", "\\'").replace("\n", "\\n") |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
407 | return source.format(style) |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
408 | |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
409 | ########################################################################### |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
410 | ## scripts below are specific for eric |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
411 | ########################################################################### |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
412 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
413 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
414 | def getFeedLinks(): |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
415 | """ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
416 | 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
|
417 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
418 | @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
|
419 | @rtype str |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
420 | """ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
421 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
422 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
423 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
424 | var links = document.getElementsByTagName('link'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
425 | 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
|
426 | var e = links[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
427 | if ((e.rel == 'alternate') && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
428 | ((e.type == 'application/atom+xml') || |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
429 | (e.type == 'application/rss+xml') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
430 | ) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
431 | ) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
432 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
433 | url: e.getAttribute('href'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
434 | title: e.getAttribute('title') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
435 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
436 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
437 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
438 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
439 | })()""" |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
440 | return source |