Mon, 12 Feb 2018 19:04:07 +0100
Register QWebChannel on isolated ApplicationWorld
This way scripts on pages don't have access to it. Exceptions are eric: and qthelp: schemes as internal pages requires the bridge.
GreaseMonkey userscripts now runs on ApplicationWorld too. This fixes userscript that depend on script world being isolated from main page world.
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 | |
6140
c20e2d414d0d
Register QWebChannel on isolated ApplicationWorld
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6135
diff
changeset
|
26 | @param worlId world ID for which to setup the channel |
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 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | def setStyleSheet(css): |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | 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
|
92 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4725
diff
changeset
|
93 | @param css style sheet to be applied |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4725
diff
changeset
|
94 | @type str |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | @return script to set a user style sheet |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | @rtype str |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | """ |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
99 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
100 | var css = document.createElement('style'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
101 | css.setAttribute('type', 'text/css'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
102 | css.appendChild(document.createTextNode('{0}')); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
103 | document.getElementsByTagName('head')[0].appendChild(css); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
104 | }})()""" |
4725
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | style = css.replace("'", "\\'").replace("\n", "\\n") |
b19ff70ba509
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | return source.format(style) |
4729
fc8d00860717
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4728
diff
changeset
|
108 | |
fc8d00860717
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4728
diff
changeset
|
109 | |
4731
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
110 | def getFormData(pos): |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
111 | """ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
112 | 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
|
113 | |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
114 | @param pos position to extract data at |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
115 | @type QPoint |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
116 | @return script to extract form data |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
117 | @rtype str |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
118 | """ |
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
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 e = document.elementFromPoint({0}, {1}); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
122 | if (!e || e.tagName != 'INPUT') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
123 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
124 | var fe = e.parentElement; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
125 | while (fe) {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
126 | if (fe.tagName == 'FORM') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
127 | break; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
128 | fe = fe.parentElement; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
129 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
130 | if (!fe) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
131 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
132 | var res = {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
133 | method: fe.method.toLowerCase(), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
134 | action: fe.action, |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
135 | inputName: e.name, |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
136 | inputs: [], |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
137 | }}; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
138 | 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
|
139 | var input = fe.elements[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
140 | 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
|
141 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
142 | return res; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
143 | }})()""" |
4731
67d861d9e492
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4729
diff
changeset
|
144 | return source.format(pos.x(), pos.y()) |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
145 | |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
146 | |
4783
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
147 | def getAllImages(): |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
148 | """ |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
149 | 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
|
150 | |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
151 | @return script to extract image tags |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
152 | @rtype str |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
153 | """ |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
154 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
155 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
156 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
157 | var imgs = document.getElementsByTagName('img'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
158 | 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
|
159 | var e = imgs[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
160 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
161 | src: e.src, |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
162 | alt: e.alt |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
163 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
164 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
165 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
166 | })()""" |
4783
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
167 | return source |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
168 | |
7de17766a5df
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4766
diff
changeset
|
169 | |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
170 | def getAllMetaAttributes(): |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
171 | """ |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
172 | 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
|
173 | |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
174 | @return script to extract meta attributes |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
175 | @rtype str |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
176 | """ |
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
177 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
178 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
179 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
180 | var meta = document.getElementsByTagName('meta'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
181 | 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
|
182 | var e = meta[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
183 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
184 | name: e.getAttribute('name'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
185 | content: e.getAttribute('content'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
186 | httpequiv: e.getAttribute('http-equiv'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
187 | charset: e.getAttribute('charset') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
188 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
189 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
190 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
191 | })()""" |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
192 | return source |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
193 | |
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 | def getOpenSearchLinks(): |
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 | 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
|
198 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
199 | @return script to extract all open serach links |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
200 | @rtype str |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
201 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
202 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
203 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
204 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
205 | var links = document.getElementsByTagName('link'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
206 | 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
|
207 | var e = links[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
208 | if (e.type == 'application/opensearchdescription+xml') { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
209 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
210 | url: e.getAttribute('href'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
211 | title: e.getAttribute('title') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
212 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
213 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
214 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
215 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
216 | })()""" |
4733
ae291a307ea6
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4731
diff
changeset
|
217 | return source |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
218 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
219 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
220 | def sendPostData(url, data): |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
221 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
222 | Function generating a script to send Post data. |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
223 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
224 | @param url URL to send the data to |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
225 | @type QUrl |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
226 | @param data data to be sent |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
227 | @type QByteArray |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
228 | @return script to send Post data |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
229 | @rtype str |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
230 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
231 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
232 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
233 | var form = document.createElement('form'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
234 | form.setAttribute('method', 'POST'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
235 | form.setAttribute('action', '{0}'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
236 | var val; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
237 | {1} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
238 | form.submit(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
239 | }})()""" |
4741
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 | valueSource = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
242 | val = document.createElement('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
243 | val.setAttribute('type', 'hidden'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
244 | val.setAttribute('name', '{0}'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
245 | val.setAttribute('value', '{1}'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
246 | form.appendChild(val);""" |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
247 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
248 | values = "" |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
249 | query = QUrlQuery(data) |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
250 | for name, value in query.queryItems(QUrl.FullyDecoded): |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
251 | value = value.replace("'", "\\'") |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
252 | name = name.replace("'", "\\'") |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
253 | values += valueSource.format(name, value) |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
254 | |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4733
diff
changeset
|
255 | return source.format(url.toString(), values) |
4743
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 | def setupFormObserver(): |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
259 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
260 | 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
|
261 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
262 | @return script to monitor a web page |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
263 | @rtype str |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
264 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
265 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
266 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
267 | function findUsername(inputs) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
268 | var usernameNames = ['user', 'name', 'login']; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
269 | 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
|
270 | 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
|
271 | if (inputs[j].type == 'text' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
272 | inputs[j].value.length && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
273 | 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
|
274 | return inputs[j].value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
275 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
276 | 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
|
277 | 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
|
278 | return inputs[i].value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
279 | 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
|
280 | 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
|
281 | return inputs[i].value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
282 | return ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
283 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
284 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
285 | function registerForm(form) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
286 | form.addEventListener('submit', function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
287 | var form = this; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
288 | var data = ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
289 | var password = ''; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
290 | var inputs = form.getElementsByTagName('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
291 | 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
|
292 | var input = inputs[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
293 | var type = input.type.toLowerCase(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
294 | if (type != 'text' && type != 'password' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
295 | type != 'email') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
296 | continue; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
297 | if (!password && type == 'password') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
298 | password = input.value; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
299 | data += encodeURIComponent(input.name); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
300 | data += '='; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
301 | data += encodeURIComponent(input.value); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
302 | data += '&'; |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
303 | } |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
304 | if (!password) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
305 | return; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
306 | 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
|
307 | var url = window.location.href; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
308 | var username = findUsername(inputs); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
309 | external.passwordManager.formSubmitted( |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
310 | url, username, password, data); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
311 | }, true); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
312 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
313 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
314 | 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
|
315 | registerForm(document.forms[i]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
316 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
317 | var observer = new MutationObserver(function(mutations) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
318 | 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
|
319 | 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
|
320 | 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
|
321 | registerForm(mutations[i].addedNodes[j]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
322 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
323 | observer.observe(document.documentElement, { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
324 | childList: true, subtree: true |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
325 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
326 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
327 | })()""" |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
328 | return source |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
329 | |
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 | def completeFormData(data): |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
332 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
333 | 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
|
334 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
335 | @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
|
336 | @type QByteArray |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
337 | @return script to fill a form |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
338 | @rtype str |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
339 | """ |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
340 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
341 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
342 | var data = '{0}'.split('&'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
343 | var inputs = document.getElementsByTagName('input'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
344 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
345 | 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
|
346 | var pair = data[i].split('='); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
347 | if (pair.length != 2) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
348 | continue; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
349 | var key = decodeURIComponent(pair[0]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
350 | var val = decodeURIComponent(pair[1]); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
351 | 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
|
352 | var input = inputs[j]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
353 | var type = input.type.toLowerCase(); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
354 | if (type != 'text' && type != 'password' && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
355 | type != 'email') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
356 | continue; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
357 | if (input.name == key) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
358 | input.value = val; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
359 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
360 | }} |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
361 | |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
362 | }})()""" |
4743
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
363 | |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
364 | data = bytes(data).decode("utf-8") |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
365 | data = data.replace("'", "\\'") |
f9e2e536d130
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
366 | return source.format(data) |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
367 | |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
368 | |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
369 | def setCss(css): |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
370 | """ |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
371 | 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
|
372 | |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
373 | @param css style sheet |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
374 | @type str |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
375 | @return script to set the style sheet |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
376 | @rtype str |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
377 | """ |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
378 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
379 | (function() {{ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
380 | var css = document.createElement('style'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
381 | css.setAttribute('type', 'text/css'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
382 | css.appendChild(document.createTextNode('{0}')); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
383 | document.getElementsByTagName('head')[0].appendChild(css); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
384 | }})()""" |
4847
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
385 | style = css.replace("'", "\\'").replace("\n", "\\n") |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
386 | return source.format(style) |
a1a8eac81b54
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4783
diff
changeset
|
387 | |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
388 | ########################################################################### |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
389 | ## scripts below are specific for eric |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
390 | ########################################################################### |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
391 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
392 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
393 | def getFeedLinks(): |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
394 | """ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
395 | 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
|
396 | |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
397 | @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
|
398 | @rtype str |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
399 | """ |
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
400 | source = """ |
6127
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
401 | (function() { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
402 | var out = []; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
403 | var links = document.getElementsByTagName('link'); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
404 | 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
|
405 | var e = links[i]; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
406 | if ((e.rel == 'alternate') && |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
407 | ((e.type == 'application/atom+xml') || |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
408 | (e.type == 'application/rss+xml') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
409 | ) |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
410 | ) { |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
411 | out.push({ |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
412 | url: e.getAttribute('href'), |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
413 | title: e.getAttribute('title') |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
414 | }); |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
415 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
416 | } |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
417 | return out; |
128d9567a533
Some improvements of the Web Browser NG.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
418 | })()""" |
4758
c973eef8fef1
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4749
diff
changeset
|
419 | return source |