kkapsner
f565b8c32e
Enabled import of older storage versions.
2019-03-11 22:10:34 +01:00
kkapsner
e56df7160f
Added navigator protection
2019-02-27 23:49:00 +01:00
kkapsner
7bf1b2e595
Fix require.register
2019-02-26 15:59:44 +01:00
kkapsner
91b814ce7e
Improved audio API protection
...
reduced detection
more consistent faking
2019-02-10 02:55:45 +01:00
kkapsner
ea30fb3370
Fixed md5 and sha256 hashing
...
Fixes #315 .
2019-02-10 02:49:58 +01:00
kkapsner
e47f726abb
Added cache for getChannelData
...
Fixes #310
2019-02-07 20:12:12 +01:00
kkapsner
53cdf8347e
after reset the hidden settings and expanded views were not reset
...
Fixes #314
2019-02-07 00:44:16 +01:00
kkapsner
1bb5013a39
Protection for history.length did not work
...
Fixes #309
2019-02-04 13:40:44 +01:00
kkapsner
f38e55b538
Linting
2019-01-24 15:43:20 +01:00
kkapsner
b4b6fcdd13
Fix optional parameter
...
Fixes #302
2018-12-30 22:22:10 +01:00
kkapsner
43e2f59cba
Updated storageVersion to 0.5
2018-11-09 23:38:19 +01:00
kkapsner
947d9e0c59
added "share persistent randomness between domains"
...
Fixes #290
2018-10-25 13:42:18 +02:00
kkapsner
045379c349
constant rng did not work properly when protecting input
2018-10-23 23:39:47 +02:00
kkapsner
8b9197a68a
Decoupled block mode from protected part
...
Fixes #287
2018-10-23 08:26:23 +02:00
kkapsner
eff86ce4ed
Added search field to browser page popup
...
Fixes #268
2018-10-09 12:59:53 +02:00
kkapsner
3a7c15157c
Protected notification api calls
...
Firefox on Android does not support all of them.
Fixes #276
2018-10-02 19:23:59 +02:00
kkapsner
d4d0d80721
Linting
2018-10-02 13:27:01 +02:00
kkapsner
f3a6031f5a
Handle wrong content script order
...
For #273
2018-10-02 13:20:40 +02:00
kkapsner
0f07cde869
Added value cache for DOMRect
...
Fixes #272
2018-09-29 09:41:43 +02:00
kkapsner
18bbab50a5
Removed unused setting notificationDisplayTime
2018-09-23 12:40:05 +02:00
kkapsner
5ca27505eb
Messages were not passed to tabs.
2018-09-23 12:33:23 +02:00
kkapsner
2f4fca10ab
Ask mode did not show canvas canvas any more.
2018-09-21 16:42:58 +02:00
kkapsner
95605ef746
Search did not include button labels
...
For #242
2018-09-21 16:40:24 +02:00
kkapsner
ccc36a2154
Initilaize storage with correct version.
2018-09-21 16:32:47 +02:00
kkapsner
ecc55ad13f
Unknown classes might break CB
...
Fixes #267
2018-09-20 22:46:45 +02:00
kkapsner
5513bcbb61
Search refinement and bugfixing
...
Fixes #242
2018-09-19 09:15:19 +02:00
kkapsner
2271477376
fakeUint8Array called forEachIndex with wrong parameters.
...
Fixes #266
2018-09-18 21:52:15 +02:00
kkapsner
e3861e67b4
Create search in options page
...
Fixes #242
2018-09-18 13:14:39 +02:00
kkapsner
a1202f9a6e
Made audio cache url specific
...
Fixes #261
2018-09-18 00:03:42 +02:00
kkapsner
f8de9b9539
Merge branch 'whitelistedIndicator'
...
Fixes #241
2018-09-16 14:08:00 +02:00
kkapsner
55af2c3dc4
Moved url container initialization
...
Fixes #166
2018-09-16 12:27:50 +02:00
kkapsner
e4c2196131
Send only necessary notifications to main process
...
For #238
2018-09-16 12:15:04 +02:00
kkapsner
db79c0129b
Audio API notifies on every call
2018-09-16 12:09:48 +02:00
kkapsner
ee7f9b4dae
Separated setting containers
...
For #166
2018-09-16 01:22:40 +02:00
kkapsner
57ef8a4166
Simplified relation logging <-> settings
...
For #166
2018-09-15 21:13:25 +02:00
kkapsner
9d5e8b71ed
Separated settings migration
...
For #166
2018-09-14 16:29:30 +02:00
kkapsner
456c21cb04
Ignore port connection without tab
...
Fixes #255
2018-09-13 22:50:10 +02:00
kkapsner
b0e1e69ec9
Do not pass messages to internal tabs
...
E.g. about:addons
Otherwise this causes an error.
2018-09-13 18:40:18 +02:00
kkapsner
f73a4ee619
Save state of the arrow menu in options page
...
Fixes #251
2018-09-12 23:43:48 +02:00
kkapsner
fe1f1ec79a
Fixed caching issue
...
md5 was too slow.
Fixes #236
2018-09-12 22:23:29 +02:00
kkapsner
f05717836d
canvas content was not stored to be displayed when wanted
2018-09-11 23:56:44 +02:00
kkapsner
5e5011f208
Added setting to controll to save notification details
...
Fixes #236
2018-09-11 23:54:59 +02:00
kkapsner
0133af70f5
Add proper DOMRect ask texts.
...
For #236
2018-09-09 00:16:44 +02:00
kkapsner
1eacfe7dc5
Ignoring DOMRect did not work.
...
For #236 .
2018-09-09 00:15:47 +02:00
kkapsner
4c2fea8a90
Don't store ignored notifications.
...
For #236
2018-09-09 00:15:21 +02:00
kkapsner
e147c119ef
Only use whitelisted status of tab url
...
For #241
2018-09-08 00:44:37 +02:00
kkapsner
255c8e6bbf
DOMRect did not work because of protectedAPIFeatures
2018-09-08 00:05:56 +02:00
kkapsner
fa92c15dab
Converted apiWhiteList to protectedAPIFeatures
...
For #247
2018-09-07 23:52:29 +02:00
kkapsner
6477572f79
Added indicator for whitelisted tab
...
First draft for #241
2018-09-06 20:13:16 +02:00
kkapsner
d3d137beed
Fixed accidental blocking
...
See #243
2018-09-06 17:30:44 +02:00
kkapsner
bda97dbc38
Merge branch 'master' into DOMRect
2018-09-06 17:27:52 +02:00
kkapsner
aa8b202545
Fixed bug with "block" mode
...
window and audio API were always blocked when using any of the "block
..." modes
Fixes #243
2018-09-06 17:24:05 +02:00
kkapsner
e0729480fb
Fix dataUrls.js
2018-09-06 08:38:22 +02:00
kkapsner
360c4628ce
Corrected domain recognition
...
Domains with hyphens were treates like RegExps.
Fixes #244 .
2018-09-06 08:34:08 +02:00
kkapsner
fb31545604
Removed debugging statement
2018-09-05 17:02:36 +02:00
kkapsner
a01ccf458f
Corrected type and api on DOMRect changed functions
2018-09-05 16:47:32 +02:00
kkapsner
df1d59cf52
Added support for pixel fractions
...
Pixel fractions can be controlled by CSS. These fractions must not be
faked.
For #236 .
2018-09-05 15:53:01 +02:00
kkapsner
1d5953e8c7
Added protection from undefined properties.
...
DOMRect has some new properties that are only in nightly at the moment.
2018-09-05 15:50:59 +02:00
kkapsner
f00c3b674e
First DOMRect draft
...
For #236
2018-09-04 23:29:58 +02:00
kkapsner
bde8ac3e8e
Only use onHeadersReceived listener when necessary
...
As mentioned in #214
2018-08-28 21:09:03 +02:00
kkapsner
83efac5e49
Added protection for window.name and window.opener
...
As requested by #231 .
But this protection is disabled by default.
2018-08-27 00:33:39 +02:00
kkapsner
fd7c4fabbd
Added protection for history.length
...
As requested by #231 .
2018-08-27 00:30:48 +02:00
kkapsner
4c7b83aca6
Added support to fake getters.
2018-08-27 00:23:19 +02:00
kkapsner
da14aaff51
Added option to ignore APIs
...
As mentioned in #233
2018-08-24 19:39:34 +02:00
kkapsner
391deae6f1
Improved browser action title
...
As mentioned in #233 .
2018-08-22 22:37:06 +02:00
kkapsner
4a043b2c78
Typos and linting
2018-08-22 22:16:49 +02:00
kkapsner
f873bd84e5
protectAudio should be url specific
2018-08-22 14:41:48 +02:00
kkapsner
bfb959c290
Added badge
...
First draft for #233 .
2018-08-21 22:43:41 +02:00
kkapsner
c0563cd7d5
Theme settings
...
For #232
2018-08-21 22:03:16 +02:00
kkapsner
9d231c7b02
CSP cleanup
...
Should help with #223 .
2018-08-21 22:01:10 +02:00
kkapsner
c25e95f845
Added highlighting options for notification icons
...
Fixes #225 .
2018-08-20 21:48:05 +02:00
kkapsner
cedd2137e2
Added option "Don't show again on update." for options page.
...
Fixes #227 .
2018-08-19 00:13:43 +02:00
kkapsner
bf868eb6ae
Missing semicolon in CSP
...
Fixed #224 .
2018-08-02 20:56:01 +02:00
kkapsner
05a3429dbe
Change browser action icon depending on fake status.
...
As mentioned in #217
2018-07-31 13:36:34 +02:00
kkapsner
9b18631768
separate persistent random numbers for incognito windows
2018-07-28 14:13:14 +02:00
kkapsner
7f1fe0ed1c
Intercepting broken on getter.
...
Issue mentioned in #215
2018-07-28 13:44:21 +02:00
kkapsner
9a26baf5c1
Block blob in Firefox ESR (52)
2018-07-24 23:30:00 +02:00
kkapsner
942d74ce54
Optimized CSP
2018-07-24 21:30:57 +02:00
kkapsner
7bfd300f6a
Inject CSP only in the relevant requests.
...
Prevents detection of CB.
2018-07-21 19:34:24 +02:00
kkapsner
8389165b70
Allow blob and filesystem schemes
...
They are protected and do not need to be blocked (like data-URLs).
Fixes #212 and fixes #213 .
2018-07-21 13:25:15 +02:00
kkapsner
9ba9c48422
Block data URLs instead of their requests
...
Fixes #211
2018-07-21 00:32:15 +02:00
kkapsner
5077c86859
Added session white list
...
Fixes #197
2018-07-17 13:07:50 +02:00
kkapsner
9753681651
Return storage promise from settings.set().
2018-07-17 12:54:10 +02:00
kkapsner
1f5f5bccc4
Remove all traces of the addon in the displayed calling stack.
2018-07-17 12:50:40 +02:00
kkapsner
47a9519ceb
"Protect" data URL pages by blocking outgoing requests
...
Fixes #208
2018-07-16 00:14:44 +02:00
kkapsner
8db0774d7c
Added note where the dynamic content script fails.
2018-07-15 22:39:03 +02:00
kkapsner
a65855a587
Show page action when blocking
...
Fixes #207
2018-07-13 16:59:49 +02:00
kkapsner
26529a3653
Hide function replacement
...
Fixes #206
2018-07-13 16:58:13 +02:00
kkapsner
6dc08534a6
Improved logging on settings storage.
2018-07-12 01:18:49 +02:00
kkapsner
07c5585f5a
Added 10% and 100% fake rates for audio
2018-07-04 23:59:27 +02:00
kkapsner
720a9bc9a5
Added feature to hide settings.
2018-07-02 00:29:41 +02:00
kkapsner
22fda1eac7
Changed the way the random indices are chosen
...
Only the offset is random. The indices are then spaced evenly.
2018-06-30 23:34:59 +02:00
kkapsner
d580c35898
Added hashCode
2018-06-30 23:06:20 +02:00
kkapsner
8472e877a4
Corrected md5 hashing
2018-06-30 23:02:31 +02:00
kkapsner
4d71d6bc02
Added audio cache.
2018-06-30 00:34:20 +02:00
kkapsner
f7a0990a29
Also fake array entries that contain zero.
2018-06-29 23:27:20 +02:00
kkapsner
df5109bbf6
Refined audio faking procedure.
2018-06-21 00:20:41 +02:00
kkapsner
c13a6f88b3
Added fixed indices setting.
2018-06-21 00:19:49 +02:00
kkapsner
a41eba1dff
Notification should show up for every function.
2018-06-21 00:19:12 +02:00
kkapsner
21992121b9
Audio faking broke when using "storeImageForInspection".
2018-06-21 00:14:20 +02:00
kkapsner
0f44820e3d
Used api property to display correct text in ask mode.
2018-06-21 00:13:32 +02:00
kkapsner
1abc681e3f
Added api property to changedFunctions.
2018-06-21 00:09:07 +02:00
kkapsner
e9fbb7259e
Added grouping for keys in object setting.
2018-06-21 00:07:29 +02:00
kkapsner
4f18dc3ab6
Computed default value
...
Default values for settings can now be functions to be computed.
2018-06-21 00:03:17 +02:00
kkapsner
0f0f526fd5
Added protection for audio API
2018-06-16 00:22:31 +02:00
kkapsner
032bc2e424
Modified randomSuppies API
...
getRng now returns a 32 bit random Number
getIndexRng returns a random index in a range
getBitRng returns a random bit
getValueRng is the old getRng which alters the provided value
2018-06-16 00:09:06 +02:00
kkapsner
52e44e0eb2
respect RFP setting in isPointInPath and isPointInStroke
...
Fixes #189
2018-05-26 15:36:55 +02:00
kkapsner
f02246128e
Added setting to whitelist parts of the canvas API
2018-05-26 15:33:39 +02:00
kkapsner
a7e472f298
added isPointInPath and isPointInStroke to the readout-API list
2018-04-01 22:47:57 +02:00
kkapsner
6f8f9a7e9c
Split long clear timeout delays.
...
window.setTimeout can not handle big delays.
Fixes #180
2018-02-16 18:10:18 +01:00
kkapsner
2b92481004
Show options page on install or update
...
But only when pageAction is not available (i.e. Fennec)
2018-01-08 17:07:46 +01:00
kkapsner
77e079e5cc
Added showCanvasWhileAsking
...
Fixes #175
2018-01-04 13:36:18 +01:00
kkapsner
ab19ebd2c6
Enable asking in iframes
2018-01-04 13:30:48 +01:00
kkapsner
66336d1b65
prevent possible double faking
2018-01-03 10:59:56 +01:00
kkapsner
9f2f77dbc1
Secured dynamic content script
2017-12-24 21:54:39 +01:00
kkapsner
19a7a32e0f
Do not struggle on unknown settings.
...
Fixes #169
Fixes #168
Fixes #164
Fixes #170
2017-12-19 23:04:03 +01:00
kkapsner
4348c71b55
Removed trailing spaces in migration URL
2017-12-19 23:00:35 +01:00
kkapsner
30a3f9ea83
Added [CanvasBlocker] to logging
2017-12-19 22:59:30 +01:00
kkapsner
596a7ca33b
Switch to using beta channel
2017-12-19 00:28:42 +01:00
kkapsner
18ceb998e0
Secured logging color picking
2017-12-18 23:57:25 +01:00
kkapsner
41a8112920
Added better logging to pre intercepting
2017-12-18 23:55:13 +01:00
kkapsner
3d05b48089
Added colors to the logging
2017-12-18 23:47:24 +01:00
kkapsner
96b5291459
Added logging to dynamic content script.
2017-12-18 23:19:28 +01:00
kkapsner
22fd0e8be1
Discarded pre-intercept
...
It broke pinned tabs and JS in some cases.
Fixes #164 .
2017-12-16 19:27:29 +01:00
kkapsner
3bbbfc4a15
Force settings loading
2017-12-15 01:00:52 +01:00
kkapsner
a5f3e78292
Do not forceLoad depending on Firefox version
2017-12-15 00:48:00 +01:00
kkapsner
3fcc5774c2
Only Firefox < 57 block on pre-intercept
2017-12-13 20:15:50 +01:00
kkapsner
3e214ed967
Changed pre-intercept to block
...
... instead of forcing the loading of the settings with a synchonous
XHR.
2017-12-11 20:59:56 +01:00
kkapsner
871199cbc3
do not show notifications when canvas faking was aborted
2017-12-11 12:48:08 +01:00
kkapsner
096db123d7
Added setting for minimal colors
...
Fixes #162
2017-12-11 12:47:43 +01:00
kkapsner
d787b84b13
Activated settings migration to 0.3
2017-12-08 20:25:08 +01:00
kkapsner
94d62f5302
Background script never sends settings
2017-12-04 00:32:19 +01:00
kkapsner
ce7dc1b422
Only force setting loading when necessary
...
May help for #160 .
2017-12-04 00:26:26 +01:00
kkapsner
01780da9f5
Added URL specific settings
...
For blockMode and showNotifications.
Fixes #148 .
2017-12-03 23:47:49 +01:00
kkapsner
64ded9a342
Keepp logging in chronical order
2017-11-29 08:38:52 +01:00
kkapsner
5f5d36de23
Added dynamic settings content script
...
Not yet fully usable due to missing detection in frame.js
2017-11-27 12:28:01 +01:00
kkapsner
2bc0315c5b
Added "white" rng
2017-11-24 17:06:43 +01:00
kkapsner
9f242004c9
Changed settings loading URL
...
Fixes #155
2017-11-20 23:48:28 +01:00
kkapsner
dd3620cd08
Fixed page action display confusion
...
Fixes #149
2017-11-14 23:57:44 +01:00
kkapsner
d531abb2de
Added export and import for settings
2017-11-14 01:07:27 +01:00
kkapsner
41d9b7073f
Wait for settings in the frame script
...
Fixes #147
2017-11-14 01:04:20 +01:00
kkapsner
b3bb10d334
Cleaned up options page
2017-11-11 23:34:59 +01:00
kkapsner
a465303fff
askOnly once extended
...
API-types can now be combined in "askOnlyOnce".
Needed new storage version -> added settings migration
2017-11-10 23:45:09 +01:00
kkapsner
f75189f374
Added ask deny mode
...
Fixes #142 and some minor bugs.
2017-11-09 00:53:52 +01:00
kkapsner
e539a893b4
Removed updateContentScripts
...
It does not to seem necessary any more.
2017-11-08 17:47:09 +01:00
kkapsner
3cb1974b18
Added clear interval
...
Also ensures that the persistent data is loaded correctly in ESR.
Fixes #139 and #143
2017-11-08 17:46:41 +01:00
kkapsner
ec1c5ae7d8
Minor cleanups
2017-11-07 19:51:49 +01:00
kkapsner
2193313980
Centralized settings management
2017-11-07 00:36:44 +01:00
kkapsner
18df3f97fe
Merge branch 'settingsAPI'
2017-10-14 12:48:07 +02:00
kkapsner
03bf34d092
getImageData does not need to be faked in input mode when facing a non 2d context.
...
Fixes #137
2017-10-12 00:25:12 +02:00
kkapsner
e686b14106
Improved window intercepting.
2017-10-10 21:11:50 +02:00
kkapsner
68fb7730b9
Secured getWrapped from weird errors (Unexpected object).
...
Fixes #133
2017-10-10 21:11:05 +02:00
kkapsner
c5872ef5a1
Fixed broken webGl faking.
...
Fixes #136
2017-10-10 21:09:26 +02:00
kkapsner
eb62521adc
Trying to get wrappedJSObject of an wrappedJSObject is wrong...
...
Fixes #133 and #134 .
2017-10-07 23:26:04 +02:00
kkapsner
dcb878392e
Simplified require and further linting.
2017-10-06 16:06:31 +02:00
kkapsner
01c1145e28
Code cleanup.
2017-10-05 19:00:00 +02:00
kkapsner
ef38abe545
Code linting.
2017-10-03 15:35:31 +02:00
kkapsner
1689686935
Fixed logging to be able to use %s in the first logged argument.
2017-09-29 00:29:34 +02:00
kkapsner
17508d9ffa
Merge pull request #130 from spodermenpls/master
...
Slight code rot
2017-09-24 10:09:44 +02:00
kkapsner
f1a9708e41
Update all lists after loading of the settings.
2017-09-24 10:07:33 +02:00
spodermenpls
98f061d82b
Update main.js
2017-09-24 03:38:44 +02:00
kkapsner
eb0f936cb0
First steps.
2017-09-24 00:12:12 +02:00
kkapsner
26c5968b64
Fixed bug that the update of the lists sometimes did not use the new value but the old one.
2017-09-23 23:47:44 +02:00
kkapsner
2b1a32e078
Settings only need to be loaded when still in default state.
2017-09-23 23:40:57 +02:00
kkapsner
a4a92fc2f9
Ping back after the port opening to the background script now also returns the settings and the persistentRnd data.
2017-09-23 23:37:46 +02:00
kkapsner
e5e38e148e
Made the domain rnd setable for the persistent rng.
2017-09-23 23:34:29 +02:00
kkapsner
d5ac2aba4c
Cleanup of the default settings.
2017-09-23 23:30:54 +02:00
kkapsner
8fc5ee45c2
getImageData also faked when using fakeInput mode.
2017-09-23 23:23:12 +02:00
kkapsner
d8f6fb1ac9
Made readPixels consistent with the other faked readout functions.
2017-08-13 23:41:57 +02:00
kkapsner
73e4848ffd
Added setting for alpha channel faking.
2017-08-11 16:26:24 +02:00
kkapsner
b12dc3ad68
Added displayAdvancedSettings setting.
2017-08-08 18:11:45 +02:00
kkapsner
48dc965f7c
Added setting for canvas cache.
2017-08-08 18:08:18 +02:00
kkapsner
f853071d19
Added names to random supply objects.
2017-08-08 08:29:42 +02:00
kkapsner
1733be23f2
Added setting "ignoreFrequentColors"
2017-08-07 21:03:34 +02:00
kkapsner
9da251b14d
Added "constant" rng.
2017-08-07 17:43:57 +02:00
kkapsner
921c7dbd5f
Changed rng interface to use colors instead of separate channels.
2017-08-07 08:49:49 +02:00
kkapsner
9715eb09d2
Added logging lib with setting to control log level.
2017-07-27 19:14:04 +02:00
kkapsner
72a2904b0a
Removed log entry for missing unload - it's not possible in WebExtensions.
2017-07-18 16:19:06 +02:00
kkapsner
c8b451cf2f
Added more logging to frame script.
2017-07-18 16:18:36 +02:00
kkapsner
3c47eaf97f
Added loading of the current settings in the frame script.
2017-07-18 16:17:19 +02:00
kkapsner
bec157391d
Removed warning about unknown property.
2017-07-18 16:16:38 +02:00
kkapsner
6c47397d46
Do not intercept when the SOP is in the way.
2017-07-18 16:14:03 +02:00
kkapsner
5575c50a03
Added minimal fake size and respected the fake sizes in all fakeable functions.
2017-07-18 16:11:12 +02:00
kkapsner
0d7e8bdd8b
Formatting cleanup.
2017-07-16 00:26:59 +02:00
kkapsner
736d6b0fb2
Added some logging to frame script.
2017-07-16 00:25:19 +02:00
kkapsner
47729f81bb
Added storage version check.
2017-07-16 00:12:12 +02:00
kkapsner
0234a6d8cf
Removed obsolete files.
2017-07-14 08:58:48 +02:00
kkapsner
3cefcfe702
Added method to display faked canvas content.
2017-07-08 22:40:38 +02:00
kkapsner
8cec88f5f7
Restructuring of main.js.
2017-07-07 08:50:23 +02:00
kkapsner
18a2e32044
Added better logging to frame.js and separated settings update from defaultSettings.js
2017-07-07 08:49:12 +02:00
kkapsner
97c9f1c94b
Added function lists.updateAll() to account for later loaded settings.
2017-07-07 08:46:58 +02:00
kkapsner
5576b54883
Page action message display and buttons.
2017-07-02 12:21:16 +02:00
kkapsner
f70380aa67
Added test page for webGL - it is also working with the webExtension.
2017-06-29 20:19:00 +02:00
kkapsner
067ec6954c
Allow the page scripts to overwrite the faked functions.
...
Fixes #121
2017-06-29 07:31:55 +02:00
kkapsner
5cec9781c2
Added pageAction to display the notifications.
2017-06-29 07:21:36 +02:00
kkapsner
cba5680406
First working webExtesion.
2017-06-25 22:33:12 +02:00
kkapsner
4ea073132d
Changed library functions that may work in both types.
...
Added helper scripts for webExtension.
2017-06-25 22:22:17 +02:00
kkapsner
4d75ad4ca1
Fixed ask mode with input mode.
2017-06-25 21:14:13 +02:00
kkapsner
a6e1b05045
WebExtension: added embedded WebExtension to store the preferences for the transition
2017-05-21 13:17:35 +02:00
kkapsner
a9c7d97708
Prevented error when wrong object is passed to the faked functions.
...
Solves the fourth problem in #114 .
2017-05-05 09:18:11 +02:00