1
0
mirror of https://github.com/kkapsner/CanvasBlocker synced 2024-09-22 17:41:41 +02:00
Commit Graph

389 Commits

Author SHA1 Message Date
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
kkapsner
231e33ffb7 Relative paths did no longer work for remoteRequire in nightly.
Also fixes #113 (first tab after restoration did not load frame script) - no clue why.
2017-04-23 00:27:40 +02:00
kkapsner
6fdf13bd10 Prevented error when canvas has size zero
Solves the third problem in #114
2017-04-19 19:32:37 +02:00
kkapsner
e55d0078d5 Modified functions need type.
Fixes #109
2017-03-03 00:55:32 +01:00
kkapsner
f85303065c Only interfecpt constructors that are present.
Fixes #108.
2017-02-22 17:46:17 +01:00
kkapsner
a8611230b1 Added option to store data for persistent rng.
Fixes #102.
2017-02-10 17:37:35 +01:00
kkapsner
b968e3e7a0 Firefox 45.7.0 (ESR) complained about function in block.
Fixes #105.
2017-02-10 17:29:38 +01:00
kkapsner
66536113e8 Fixed mode "fake at input". 2017-02-10 16:30:11 +01:00
kkapsner
6636e1d68b window objects of <frame>s with no url do get the "about:blank" too late -> treat blank URL the same way. 2017-02-01 11:15:05 +01:00
kkapsner
eb6494eca5 Shared persistent rnd between processes.
Fixes #103.
2017-02-01 10:49:33 +01:00
kkapsner
602d5a6bfd Switch from frameScript to require("sdk/remote/...").
Fixes #98. Fixes #100.
2017-01-31 21:51:08 +01:00
kkapsner
9c7e842f4b Prevented error message when notifications where triggered on preview, which is not possible. 2017-01-31 20:03:48 +01:00
kkapsner
ec1ae73cda about:blank pages are treated with respect to the opening page 2017-01-31 20:00:02 +01:00
kkapsner
b563a9d3ca removed error message when notification can not be closed 2017-01-30 11:31:04 +01:00
kkapsner
960f3c4f36 Only alter last bit also in non persistent rng mode.
Fixes #99.
2017-01-18 08:46:45 +01:00
kkapsner
6d7a9fc22a Removed bug with faking webgl and added readPixels for webgl2.
Fixes #96 and #97.
2016-12-26 14:36:01 +01:00
kkapsner
0eeaf84826 Improved performance for getImageData. 2016-12-03 17:29:30 +01:00
kkapsner
7b7583afe0 Performance increase when canvas bigger than maxSize.
Fixes #93.
2016-12-01 20:40:28 +01:00
kkapsner
c3c6c7a2e9 Fixes bug in fake function for readPixels.
Fixes #92.
2016-11-26 17:37:52 +01:00
kkapsner
d8a5cf2283 Dynamic notification id from message id. 2016-11-22 08:30:57 +01:00
kkapsner
fc07961c6b Completely remove function monitoring for white listed sites.
Fixes #84.
2016-11-19 15:35:00 +01:00
kkapsner
749b088fe9 Added button in options site to display release notes.
Fixes #83
2016-11-13 15:34:33 +01:00
kkapsner
82bb25d0f2 Monitoring only the necessary functions -> changes of the mode or the white/black lists only affects new loaded pages.
Fixes #84.
2016-11-13 15:09:03 +01:00
kkapsner
b2823cbd8d Added internal type handling for getContext.
Fixes #86
2016-11-13 14:55:42 +01:00
kkapsner
e4c65d415e Made checkStack available during interception. 2016-11-13 14:51:58 +01:00
kkapsner
d122f90655 Added notification display time.
Fixes #85.
2016-11-11 00:19:25 +01:00
kkapsner
26dcc31f5b Moved "use strict" to be ECMA 2016 compliant.
Fixes #80.
2016-10-31 16:43:49 +01:00
kkapsner
dc98a92e8f Direct access to exportFunction in intercept.js 2016-10-24 22:30:57 +02:00
kkapsner
a2fa00fb98 First implementation of the fakeInput mode. (And other improvements.) 2016-10-23 22:12:12 +02:00
kkapsner
b6d08459a5 Preworks for the new "fake-input" mode. 2016-10-22 13:32:48 +02:00
kkapsner
fcedf34b9f Fake notification was not shown in all cases. 2016-10-12 00:08:53 +02:00
kkapsner
827fd3124c Minor bug fixing and commenting in lib/randomSupplies.js
Fixes #76
2016-08-15 13:27:28 +02:00
kkapsner
1b2c4cb487 Added preference to control rng type. 2016-08-06 19:17:36 +02:00
kkapsner
447ff54222 Made random changes constant within the same domain. 2016-05-18 08:55:21 +02:00
kkapsner
699698f529 Improved faking performance. 2016-05-14 19:12:45 +02:00
kkapsner
37fd9f7a36 Suppressed notification if maxFakeSize triggers. 2016-05-11 08:58:45 +02:00
kkapsner
b8ba76300e Introduced maxFakeSize. 2016-05-10 08:01:21 +02:00
kkapsner
8240bf6007 .nodeName not readable on HTMLCanvasElementPrototype.
Fixes #66.
2016-04-30 15:05:20 +02:00
kkapsner
4465ff8435 Disabled faking in getImageData for bigger areas. 2016-04-21 23:54:48 +02:00
kkapsner
6ce7b81124 Code cleanup. 2016-02-13 12:48:22 +01:00
kkapsner
951277e922 e10s ready!
Fixes #60 and #42
2016-02-13 12:28:36 +01:00
kkapsner
424b88f04f Prevented bypass with empty <iframe>.
Fixes #58
2016-01-28 23:46:39 +01:00
kkapsner
d2f5a0cca1 Introduced stackList. 2015-12-31 13:37:27 +01:00
kkapsner
6c806583f0 Removed bug with "add to ignore list"-button & added translations for prompts.
Fixes #41.
2015-10-24 10:44:51 +02:00
kkapsner
0f575a7aed Added also prompt for adding to ignore list. 2015-10-11 13:56:28 +02:00
kkapsner
9255fb5813 Added prompts for domain and URL whitelist adding in notification as mentioned in issue #40. 2015-10-08 17:17:02 +02:00
kkapsner
5fe5ec1d64 Added support for webgl2 (?) 2015-09-10 01:58:38 +02:00
kkapsner
0640008459 Fixed bug with webgl-canvas. 2015-09-10 01:35:49 +02:00
kkapsner
0904d8e2a6 Linted all files. 2015-09-08 11:42:32 +02:00
kkapsner
6c46d28593 Reintroduced ask modes. 2015-09-08 11:41:33 +02:00
kkapsner
c10b382c93 Version 0.2.0
Reenabled notifications
Code cleanup.
2015-09-06 15:40:34 +02:00
kkapsner
97e0c6b9cd Removed pageMod and many not needed features.
Notifications not working.
2015-09-06 12:26:50 +02:00