Overview
Comment: | More work Duktape-based chrome-alike environment |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: | d73ab988adc8175b6bc1e0253027a5b43a275b0d |
User & Date: | rkeene on 2019-06-12 19:39:48 |
Other Links: | manifest | tags |
Context
2019-06-12
| ||
19:40 | Tcl-based interface to JS SSH Agent check-in: 7ef094be65 user: rkeene tags: trunk | |
19:39 | More work Duktape-based chrome-alike environment check-in: d73ab988ad user: rkeene tags: trunk | |
19:38 | Handle converting from buffers which cannot be converted to byte arrays check-in: af11332c35 user: rkeene tags: trunk | |
Changes
Modified build/tcl/chrome-emu.js from [cfc05731e7] to [37c439b24d].
1
2
3
4
5
6
7
8
9
10
11
12
13
..
22
23
24
25
26
27
28
29
|
console = { log: function() { /* XXX:TODO: Logging */ } } chrome = { runtime: { connectCallbacks: [], onConnectExternal: { addListener: function(callback) { if (!callback) { return; ................................................................................ return; } chrome.runtime.connectCallbacks.splice(idx, 1); } } } } |
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
|
<
>
>
>
|
|
>
>
|
>
>
>
>
>
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
...
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
console = {}; console._formatArgs = function(argInfo) { var idx, outArray; var arg; idx = 0; outArray = []; for (idx = 0; idx < argInfo.length; idx++) { arg = argInfo[idx]; if (typeof(arg) === 'string' || typeof(arg) === 'number') { outArray.push(arg); } else if (typeof(arg) === 'undefined') { outArray.push("<undefined>"); } else if (arg === null) { outArray.push("<null>"); } else { outArray.push(JSON.stringify(arg)); } } return(outArray.join(' ')); } console.log = function() { runtime.puts("CON> " + console._formatArgs(arguments)); } console.error = function(message) { runtime.puts(runtime.stderr, "ERR> " + console._formatArgs(arguments)); return; } console.debug = function(message) { runtime.puts(runtime.stderr, "DBG> " + console._formatArgs(arguments)); return; } if (!Array.from) { Array.from = function(source) { var result, idx; result = new Array(source.length); for (idx = 0; idx < source.length; idx++) { result[idx] = source[idx]; } return(result); } } if (!Array.prototype.slice) { Array.prototype.slice = function(start) { var result, idx, outIdx; result = []; outIdx = 0; for (idx = start; idx < this.length; idx++) { result[outIdx] = this[idx]; outIdx++; } return(result); } } if (!String.prototype.padStart) { String.prototype.padStart = function(len, char) { if (this.length >= len) { return(this); } return((char + this).padStart(len, char)) } } if (!RegExp.prototype.compile) { RegExp.prototype.compile = function() { return; }; } if (!Uint8Array.prototype.forEach) { Uint8Array.prototype.forEach = function(callback) { var idx; for (idx = 0; idx < this.length; idx++) { callback(this[idx]); } } } if (!Uint8Array.prototype.map) { Uint8Array.prototype.map = function(callback) { var result, idx; result = []; for (idx = 0; idx < this.length; idx++) { result.push(callback(this[idx])); } return(result); } } navigator = { userAgent: "" }; crypto = { subtle: { digest: function(hash, data) { var bufferData; bufferData = new Buffer(data); return(crypto.subtle.digest.internal(hash, bufferData)); } } }; chrome = { runtime: { connectCallbacks: [], onConnectExternal: { addListener: function(callback) { if (!callback) { return; ................................................................................ return; } chrome.runtime.connectCallbacks.splice(idx, 1); } } } }; chrome.runtime.externalConnect = function(data) { chrome.runtime.connectCallbacks.forEach(function(callback) { callback(data); }); }; |