Sun, 20 Mar 2016 20:13:29 +0100
Continued porting the web browser.
- fixed a few issues with the GreaseMonkey and the CookieJar
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 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de> |
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 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | def setupWebChannel(): |
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 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | @return script to setup the web channel |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | @rtype str |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | source = """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | (function() {{ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | {0} |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | function registerExternal(e) {{ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | window.external = e; |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | if (window.external) {{ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | var event = document.createEvent('Event'); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | event.initEvent('_eric_external_created', true, true); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | document.dispatchEvent(event); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | }} |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | }} |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | if (self !== top) {{ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | if (top.external) |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | registerExternal(top.external); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | else |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | top.document.addEventListener( |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | '_eric_external_created', function() {{ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | registerExternal(top.external); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | }}); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | return; |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | }} |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | new QWebChannel(qt.webChannelTransport, function(channel) {{ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | registerExternal(channel.objects.eric_object); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | }}); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
4766
5f8d08aa2217
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4758
diff
changeset
|
57 | }})()""" |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | return source.format(readAllFileContents(":/javascript/qwebchannel.js")) |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | def setStyleSheet(css): |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | 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
|
65 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4725
diff
changeset
|
66 | @param css style sheet to be applied |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4725
diff
changeset
|
67 | @type str |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | @return script to set a user style sheet |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | @rtype str |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | source = """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | (function() {{ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | var css = document.createElement('style'); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | css.setAttribute('type', 'text/css'); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | css.appendChild(document.createTextNode('{0}')); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | document.getElementsByTagName('head')[0].appendChild(css); |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | }})()""" |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | style = css.replace("'", "\\'").replace("\n", "\\n") |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | return source.format(style) |
4729
fc8d00860717
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4728
diff
changeset
|
81 | |
fc8d00860717
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4728
diff
changeset
|
82 | |
4731
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
83 | def getFormData(pos): |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
84 | """ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
85 | 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
|
86 | |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
87 | @param pos position to extract data at |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
88 | @type QPoint |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
89 | @return script to extract form data |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
90 | @rtype str |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
91 | """ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
92 | source = """ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
93 | (function() {{ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
94 | var e = document.elementFromPoint({0}, {1}); |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
95 | if (!e || e.tagName != 'INPUT') |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
96 | return; |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
97 | var fe = e.parentElement; |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
98 | while (fe) {{ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
99 | if (fe.tagName == 'FORM') |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
100 | break; |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
101 | fe = fe.parentElement; |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
102 | }} |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
103 | if (!fe) |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
104 | return; |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
105 | var res = {{ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
106 | method: fe.method.toLowerCase(), |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
107 | action: fe.action, |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
108 | inputName: e.name, |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
109 | inputs: [], |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
110 | }}; |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
111 | for (var i = 0; i < fe.length; ++i) {{ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
112 | var input = fe.elements[i]; |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
113 | res.inputs.push([input.name, input.value]); |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
114 | }} |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
115 | return res; |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
116 | }})()""" |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
117 | return source.format(pos.x(), pos.y()) |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
118 | |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
119 | |
4783
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
120 | def getAllImages(): |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
121 | """ |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
122 | 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
|
123 | |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
124 | @return script to extract image tags |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
125 | @rtype str |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
126 | """ |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
127 | source = """ |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
128 | (function() { |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
129 | var out = []; |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
130 | var imgs = document.getElementsByTagName('img'); |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
131 | for (var i = 0; i < imgs.length; ++i) { |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
132 | var e = imgs[i]; |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
133 | out.push({ |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
134 | src: e.src, |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
135 | alt: e.alt |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
136 | }); |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
137 | } |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
138 | return out; |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
139 | })()""" |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
140 | return source |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
141 | |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
142 | |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
143 | def getAllMetaAttributes(): |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
144 | """ |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
145 | 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
|
146 | |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
147 | @return script to extract meta attributes |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
148 | @rtype str |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
149 | """ |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
150 | source = """ |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
151 | (function() { |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
152 | var out = []; |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
153 | var meta = document.getElementsByTagName('meta'); |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
154 | for (var i = 0; i < meta.length; ++i) { |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
155 | var e = meta[i]; |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
156 | out.push({ |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
157 | name: e.getAttribute('name'), |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
158 | content: e.getAttribute('content'), |
4783
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
159 | httpequiv: e.getAttribute('http-equiv'), |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
160 | charset: e.getAttribute('charset') |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
161 | }); |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
162 | } |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
163 | return out; |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
164 | })()""" |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
165 | return source |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
166 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
167 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
168 | def getOpenSearchLinks(): |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
169 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
170 | 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
|
171 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
172 | @return script to extract all open serach links |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
173 | @rtype str |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
174 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
175 | source = """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
176 | (function() { |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
177 | var out = []; |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
178 | var links = document.getElementsByTagName('link'); |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
179 | for (var i = 0; i < links.length; ++i) { |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
180 | var e = links[i]; |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
181 | if (e.type == 'application/opensearchdescription+xml') { |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
182 | out.push({ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
183 | url: e.getAttribute('href'), |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
184 | title: e.getAttribute('title') |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
185 | }); |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
186 | } |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
187 | } |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
188 | return out; |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
189 | })()""" |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
190 | return source |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
191 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
192 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
193 | def sendPostData(url, data): |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
194 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
195 | Function generating a script to send Post data. |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
196 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
197 | @param url URL to send the data to |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
198 | @type QUrl |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
199 | @param data data to be sent |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
200 | @type QByteArray |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
201 | @return script to send Post data |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
202 | @rtype str |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
203 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
204 | source = """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
205 | (function() {{ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
206 | var form = document.createElement('form'); |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
207 | form.setAttribute('method', 'POST'); |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
208 | form.setAttribute('action', '{0}'); |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
209 | var val; |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
210 | {1} |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
211 | form.submit(); |
4766
5f8d08aa2217
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4758
diff
changeset
|
212 | }})()""" |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
213 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
214 | valueSource = """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
215 | val = document.createElement('input'); |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
216 | val.setAttribute('type', 'hidden'); |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
217 | val.setAttribute('name', '{0}'); |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
218 | val.setAttribute('value', '{1}'); |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
219 | form.appendChild(val);""" |
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 | values = "" |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
222 | query = QUrlQuery(data) |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
223 | for name, value in query.queryItems(QUrl.FullyDecoded): |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
224 | value = value.replace("'", "\\'") |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
225 | name = name.replace("'", "\\'") |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
226 | values += valueSource.format(name, value) |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
227 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
228 | return source.format(url.toString(), values) |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
229 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
230 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
231 | def setupFormObserver(): |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
232 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
233 | 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
|
234 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
235 | @return script to monitor a web page |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
236 | @rtype str |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
237 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
238 | source = """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
239 | (function() { |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
240 | function findUsername(inputs) { |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
241 | for (var i = 0; i < inputs.length; ++i) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
242 | if (inputs[i].type == 'text' && inputs[i].value.length && |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
243 | inputs[i].name.indexOf('user') != -1) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
244 | return inputs[i].value; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
245 | for (var i = 0; i < inputs.length; ++i) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
246 | if (inputs[i].type == 'text' && inputs[i].value.length && |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
247 | inputs[i].name.indexOf('name') != -1) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
248 | return inputs[i].value; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
249 | for (var i = 0; i < inputs.length; ++i) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
250 | if (inputs[i].type == 'text' && inputs[i].value.length) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
251 | return inputs[i].value; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
252 | for (var i = 0; i < inputs.length; ++i) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
253 | if (inputs[i].type == 'email' && inputs[i].value.length) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
254 | return inputs[i].value; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
255 | return ''; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
256 | } |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
257 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
258 | function registerForm(form) { |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
259 | form.addEventListener('submit', function() { |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
260 | var form = this; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
261 | var data = ''; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
262 | var password = ''; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
263 | var inputs = form.getElementsByTagName('input'); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
264 | for (var i = 0; i < inputs.length; ++i) { |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
265 | var input = inputs[i]; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
266 | var type = input.type.toLowerCase(); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
267 | if (type != 'text' && type != 'password' && |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
268 | type != 'email') |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
269 | continue; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
270 | if (!password && type == 'password') |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
271 | password = input.value; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
272 | data += encodeURIComponent(input.name); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
273 | data += '='; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
274 | data += encodeURIComponent(input.value); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
275 | data += '&'; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
276 | } |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
277 | if (!password) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
278 | return; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
279 | data = data.substring(0, data.length - 1); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
280 | var url = window.location.href; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
281 | var username = findUsername(inputs); |
4863
9d86824898e1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
282 | external.passwordManager.formSubmitted( |
9d86824898e1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4847
diff
changeset
|
283 | url, username, password, data); |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
284 | }, true); |
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 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
287 | for (var i = 0; i < document.forms.length; ++i) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
288 | registerForm(document.forms[i]); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
289 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
290 | var observer = new MutationObserver(function(mutations) { |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
291 | for (var i = 0; i < mutations.length; ++i) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
292 | for (var j = 0; j < mutations[i].addedNodes.length; ++j) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
293 | if (mutations[i].addedNodes[j].tagName == 'form') |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
294 | registerForm(mutations[i].addedNodes[j]); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
295 | }); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
296 | observer.observe(document.documentElement, { childList: true }); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
297 | |
4766
5f8d08aa2217
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4758
diff
changeset
|
298 | })()""" |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
299 | return source |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
300 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
301 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
302 | def completeFormData(data): |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
303 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
304 | 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
|
305 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
306 | @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
|
307 | @type QByteArray |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
308 | @return script to fill a form |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
309 | @rtype str |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
310 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
311 | source = """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
312 | (function() {{ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
313 | var data = '{0}'.split('&'); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
314 | var inputs = document.getElementsByTagName('input'); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
315 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
316 | for (var i = 0; i < data.length; ++i) {{ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
317 | var pair = data[i].split('='); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
318 | if (pair.length != 2) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
319 | continue; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
320 | var key = decodeURIComponent(pair[0]); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
321 | var val = decodeURIComponent(pair[1]); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
322 | for (var j = 0; j < inputs.length; ++j) {{ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
323 | var input = inputs[j]; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
324 | var type = input.type.toLowerCase(); |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
325 | if (type != 'text' && type != 'password' && |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
326 | type != 'email') |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
327 | continue; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
328 | if (input.name == key) |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
329 | input.value = val; |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
330 | }} |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
331 | }} |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
332 | |
4766
5f8d08aa2217
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4758
diff
changeset
|
333 | }})()""" |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
334 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
335 | data = bytes(data).decode("utf-8") |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
336 | data = data.replace("'", "\\'") |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
337 | return source.format(data) |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
338 | |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
339 | |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
340 | def setCss(css): |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
341 | """ |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
342 | 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
|
343 | |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
344 | @param css style sheet |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
345 | @type str |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
346 | @return script to set the style sheet |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
347 | @rtype str |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
348 | """ |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
349 | source = """ |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
350 | (function() {{ |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
351 | var css = document.createElement('style'); |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
352 | css.setAttribute('type', 'text/css'); |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
353 | css.appendChild(document.createTextNode('{0}')); |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
354 | document.getElementsByTagName('head')[0].appendChild(css); |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
355 | }})()""" |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
356 | style = css.replace("'", "\\'").replace("\n", "\\n") |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
357 | return source.format(style) |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
358 | |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
359 | ########################################################################### |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
360 | ## scripts below are specific for eric |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
361 | ########################################################################### |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
362 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
363 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
364 | def getFeedLinks(): |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
365 | """ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
366 | 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
|
367 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
368 | @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
|
369 | @rtype str |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
370 | """ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
371 | source = """ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
372 | (function() { |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
373 | var out = []; |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
374 | var links = document.getElementsByTagName('link'); |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
375 | for (var i = 0; i < links.length; ++i) { |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
376 | var e = links[i]; |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
377 | if ((e.rel == 'alternate') && |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
378 | ((e.type == 'application/atom+xml') || |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
379 | (e.type == 'application/rss+xml') |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
380 | ) |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
381 | ) { |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
382 | out.push({ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
383 | url: e.getAttribute('href'), |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
384 | title: e.getAttribute('title') |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
385 | }); |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
386 | } |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
387 | } |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
388 | return out; |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
389 | })()""" |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
390 | return source |