Commit Graph

4426 Commits (c47134b3ab3f105e9d46e52e62ee74852f17d579)

Author SHA1 Message Date
Richard Hansen 42026ff771 tests: Add a comment explaining why `Promise.all()` is not used 2021-07-25 02:23:50 +02:00
Richard Hansen 01184cd1aa tests: Remove unnecessary `includeJquery` parameter 2021-07-25 02:23:50 +02:00
snyk-bot 4a670e96ab
fix: upgrade express-rate-limit from 5.2.6 to 5.3.0
Snyk has created this PR to upgrade express-rate-limit from 5.2.6 to 5.3.0.

See this package in npm:
https://www.npmjs.com/package/express-rate-limit

See this project in Snyk:
https://app.snyk.io/org/johnmclear/project/d9a12bfb-7ccd-443f-9e22-f30d339cc8c5?utm_source=github&utm_medium=upgrade-pr
2021-07-23 04:22:23 +00:00
Richard Hansen c83bb058d1 PadMessageHandler: Fix stats null dereference
It is possible for the stats to be read before the
`expressCreateServer` hook is called (in particular: when there is an
error during startup), which is when the `socketio` variable is set.
Check for non-null `socketio` before attempting to count the number of
socket.io connections.
2021-07-22 13:07:03 -04:00
translatewiki.net 3d80409236 Localisation updates from https://translatewiki.net. 2021-07-22 13:03:00 +02:00
webzwo0i 62093adce5 tests: refactor inclusion of jquery and sendkeys via script tags
Readability is increased by explicitly checking if jquery/sendkeys was
already loaded before evaluating it in the context of ace_inner and the
enclosing container (pad.html). Note that sendkeys is no longer
evaluated in the context of ace_outer, as this isn't needed

Also removes some IE 8/9 legacy code
2021-07-21 01:53:05 +02:00
Richard Hansen 4ceb3ca4c8 Chat: Allow Shift-Enter to insert a newline 2021-07-19 23:44:33 +02:00
Richard Hansen cf86ae8b63 Chat: Use `KeyboardEvent.key` instead of deprecated `.which` 2021-07-19 23:44:33 +02:00
Richard Hansen faf84f0143 Chat: Display whitespace in chat messages 2021-07-19 23:44:33 +02:00
Richard Hansen 834e05fc9c Chat: Use a `<textarea>` for message input 2021-07-19 23:44:33 +02:00
Richard Hansen ce5ef9350f tests: sendkeys: Fix `{enter}` keypress event 2021-07-19 23:44:33 +02:00
translatewiki.net c6f643dd75 Localisation updates from https://translatewiki.net. 2021-07-19 13:02:46 +02:00
Xavier Mehrenberger ca4cc2d7c0 Fix settings.useMonospaceFontGlobal
When settings.useMonospaceFontGlobal is set to `true`, it sets the default
font to 'monospace'. This font seems to have been removed in
a5164dad43.

This commit sets the default font to "RobotoMono" which is a valid
option.

Tested in a Docker environment, setting `PAD_OPTIONS_USE_MONOSPACE_FONT`
to `true`

Signed-off-by: Xavier Mehrenberger <xavier.mehrenberger@gmail.com>
2021-07-14 04:33:38 -04:00
Richard Hansen 336d48add7 Add support for square brackets in URLs
This reverts commit 9022877cc6.
2021-07-10 22:22:31 -04:00
Richard Hansen 09f8ffbdb6 deps: Bump ueberdb2 to 1.4.11 2021-07-10 18:26:31 -04:00
Richard Hansen 5f39a1ee7f CSS: Underline links in error dialogs
Underlining was removed for unknown reasons by commit
d872b42e31.
2021-07-09 18:43:13 -04:00
webzwo0i a634bd8ee1 bump version 2021-07-04 07:05:34 +02:00
translatewiki.net 197e04ecd7 Localisation updates from https://translatewiki.net. 2021-07-01 13:42:31 +02:00
Richard Hansen 3d40ab7e8c CSS: Move author color padding to `setAuthorStyle()`
This prevents the padding from clashing with plugins that use the
`aceSetAuthorStyle` hook.
2021-06-22 14:43:22 -04:00
translatewiki.net 2745557127 Localisation updates from https://translatewiki.net. 2021-06-21 12:28:27 +02:00
Richard Hansen 9fcd86b3cd Pad: Fix `<script>` elements in `aceInitInnerdocbodyHead` hook
Using `.innerHTML` to create a `<script>` element does create a DOM
node, but the script is not actually executed. Fortunately, creating a
DocumentFragment does cause the script to execute.
2021-06-18 17:50:15 -04:00
Richard Hansen 7bdd0f2f09 bin/updatePlugins.sh: Many refinements
* cd to top-level Etherpad directory is now more robust.
  * Only attempt to update packages whose names begin with `ep_`.
  * Don't create `package-lock.json`.
  * Improve logging.
  * Improve error handling.
2021-06-18 04:34:37 -04:00
Richard Hansen 4b3e47bd23 bin/importSqlFile.js: Read the file one line at a time
This avoids running out of memory if the file is large.
2021-06-17 19:45:17 -04:00
webzwo0i 485538bd79 bump wtfnode to fix #5078 2021-06-17 06:14:45 +02:00
Richard Hansen 251cc7ab32 CSS: Fix button icon centering 2021-06-16 18:27:52 -04:00
Richard Hansen 53cca5a743 PadMessageHandler: Also send `USER_NEWINFO` messages on reconnect
Now the user list is correct after a reconnect. This also allows
ep_webrtc to automatically recover after a temporary network glitch.
2021-06-16 01:35:25 -04:00
Richard Hansen 7ca336c28e lint: Update eslint-config-etherpad and friends 2021-06-14 23:17:17 +02:00
Richard Hansen ef1ba21104 deps: Drop support for Node.js < 12.13.0 2021-06-14 23:17:17 +02:00
webzwo0i 66ee9c5ef9 update package-lock 2021-06-14 13:21:48 -04:00
Richard Hansen 5dcb7a7549 tests: Don't attempt to wrap non-functions 2021-06-14 13:45:13 +02:00
Richard Hansen 081b97c41d tests: Wrap more Mocha functions 2021-06-14 13:45:13 +02:00
Richard Hansen 3e4df68510 tests: Enable fake webcam on Microsoft Edge 2021-06-10 15:36:35 -04:00
Richard Hansen 565b1c5271 tests: Fix flexbox grow/shrink factors
* Make sure the `#mocha-report` div grows to fill the available
    vertical space.
  * Prevent the "Loading frontend test specs..." div from shrinking.
2021-06-10 13:28:55 -04:00
Richard Hansen acd11c3948 tests: Fetch frontend test specs in parallel 2021-06-09 20:28:03 -04:00
Richard Hansen 36d2af5318 tests: Display frontend spec loading progress 2021-06-09 20:18:22 -04:00
Richard Hansen e0ae997501 tests: Don't auto-scroll Mocha results if user scrolls up 2021-06-09 18:48:31 -04:00
Richard Hansen f5046f4b18 tests: Keep the `#mocha-stats` div visible 2021-06-09 18:48:31 -04:00
snyk-bot ea4500ef64
fix: upgrade express-session from 1.17.1 to 1.17.2
Snyk has created this PR to upgrade express-session from 1.17.1 to 1.17.2.

See this package in npm:
https://www.npmjs.com/package/express-session

See this project in Snyk:
https://app.snyk.io/org/johnmclear/project/d9a12bfb-7ccd-443f-9e22-f30d339cc8c5?utm_source=github&utm_medium=upgrade-pr
2021-06-09 22:13:02 +00:00
translatewiki.net 28f2acf98a Localisation updates from https://translatewiki.net. 2021-06-07 14:48:08 +02:00
Richard Hansen cccabf45b8 pad: Move error message to the top of the gritter box 2021-06-06 21:31:49 -04:00
Richard Hansen b2e94685fb pad: Display error name in the gritter box 2021-06-06 21:31:40 -04:00
Richard Hansen 63a5dc6599 tests: Configure Firefox to use fake webcam
This makes it possible to test ep_webrtc in Firefox.
2021-06-06 16:53:51 -04:00
Richard Hansen 8f0d70312d tests: Also pass `--use-fake-ui-for-media-stream` to Chrome
For testing ep_webrtc.
2021-06-06 16:25:27 -04:00
Richard Hansen 752e2488af tests: Migrate from `wd` to `selenium-webdriver` 2021-06-06 16:23:56 -04:00
Richard Hansen 1756415495 tests: Avoid jQuery when reading Mocha output 2021-06-06 16:20:13 -04:00
Richard Hansen 6c2f31a5cb tests: Add tests for `settings.json` parsing 2021-06-06 14:00:52 -04:00
Richard Hansen 428f8d1684 Settings: Deprecate null as the default default value 2021-06-06 14:00:52 -04:00
Richard Hansen c7bb18c6da Settings: Support null and undefined env var substitutions 2021-06-06 14:00:51 -04:00
Richard Hansen 299dbbe7e6 tests: Move split-grid to dev dependencies
This is only used for testing.
2021-06-06 06:45:00 -04:00
Richard Hansen 45ca82fd9f tests: Make the Mocha results area resizable 2021-06-05 03:51:55 -04:00
Richard Hansen c4239b6059 tests: Show a scrollbar if the pad is too wide 2021-06-05 03:51:11 -04:00
Richard Hansen fc3b811726 tests: Move iframe min width to iframe selector 2021-06-05 03:51:11 -04:00
Richard Hansen 960c2c0c0d tests: Tweak mocha report spacing 2021-06-05 03:51:11 -04:00
Richard Hansen b09b895ac7 tests: Remove border around iframe 2021-06-05 03:51:11 -04:00
Richard Hansen e9f08bdd11 tests: Fix frontend test CSS selectors 2021-06-05 03:51:11 -04:00
Richard Hansen 76634eb6ff tests: Add missing `<head>` and `<body>` tags 2021-06-05 03:51:11 -04:00
Richard Hansen d9782ac628 tests: Send frontend test spec list as JSON 2021-06-05 03:51:06 -04:00
Richard Hansen 20df34bb67 tests: Promisify `helper.init()` 2021-06-05 03:50:36 -04:00
Richard Hansen c714ff1014 tests: Let Express handle errors when serving `frontendTestSpecs.js`
Express v4.x doesn't understand Promises so we have to manually catch
Promise rejections and pass the error object to `next()`.
2021-06-05 03:50:36 -04:00
Richard Hansen e4f011df76 tests: Use `require()` to load frontend test specs
This makes core and plugin tests consistent with each other, makes it
possible to `require()` relative paths in spec files, simplifies the
code somewhat, and should make it easier to move away from
require-kernel.

Also:
  * Wrap plugin tests inside a `describe()` that contains the plugin
    name to make it easier to grep for a plugin's tests and for
    consistency with core tests.
  * Add "<core>" to the core test descriptions to make it easier to
    distinguish them from plugin tests.
2021-06-05 03:50:26 -04:00
Richard Hansen d8eb79428f tests: Recurse under frontend spec dir 2021-06-05 03:49:13 -04:00
Richard Hansen 5d54c1657a tests: Redirect `/tests/frontend/index.html` to `/tests/frontend/` 2021-06-05 03:49:12 -04:00
Richard Hansen 712b8c5769 tests: Redirect `/tests/frontend` to `/tests/frontend/` 2021-06-05 03:49:12 -04:00
Richard Hansen 573da027e5 tests: Preserve query string when redirecting 2021-06-05 03:49:12 -04:00
Richard Hansen 9cba96e5e9 tests: Use relative paths for scripts 2021-06-05 03:49:12 -04:00
Richard Hansen e144434571 tests: Use relative paths in `helper.init()`
This avoids problems if Etherpad is served under a path like
`/etherpad`.
2021-06-05 03:49:12 -04:00
Richard Hansen dfd649dbe9 tests: Use a relative redirect for `/tests/frontend`
This avoids problems if Etherpad is served under a path like
`/etherpad`.
2021-06-03 15:10:23 -04:00
Richard Hansen 617267ce71 tests: Use `plugin_defs` to get plugin frontend test spec paths 2021-06-03 15:10:23 -04:00
Richard Hansen 1b7b96f57e tests: Avoid deprecated `fs.existsSync()` 2021-06-03 15:10:23 -04:00
Richard Hansen ab824c728f tests: Move slashes to improve readability 2021-06-03 15:10:22 -04:00
Richard Hansen 1516bf473f tests: Delete unnecessary `staticDir` variable 2021-06-03 15:10:22 -04:00
Richard Hansen d69345bb4e tests: Use map+reduce to improve readability 2021-06-03 15:10:22 -04:00
Richard Hansen a8e77126e8 tests: Combine `.map().filter().map()` into single `.map()` 2021-06-03 15:10:22 -04:00
Richard Hansen 2414203434 tests: Remove unnecessary `return` 2021-06-03 15:10:22 -04:00
Richard Hansen 0852df74f1 tests: Unexport unnecessarily exported functions 2021-06-03 15:10:22 -04:00
Richard Hansen ed44449639 tests: Pretty-print `frontendTestSpecs.js` to make troubleshooting easier 2021-06-03 15:10:22 -04:00
Richard Hansen 4fa9f9e9d8 tests: Use `window.foo` instead of `var foo` 2021-06-03 15:10:22 -04:00
Richard Hansen aea2fb7448 tests: Rename `specs_list` to `frontendTestSpecs` 2021-06-03 15:10:22 -04:00
Richard Hansen 1be1b704f1 tests: Simplify iteration over frontend test specs 2021-06-03 15:10:22 -04:00
Richard Hansen b85a040f13 tests: Reuse `sanitizePathname` when serving frontend specs 2021-06-03 15:10:22 -04:00
Richard Hansen ade17490e0 tests: Combine frontend test file handlers 2021-06-03 15:10:22 -04:00
Richard Hansen 995e381243 tests: Only wrap `*.js` files in `describe()` 2021-06-03 15:10:22 -04:00
Richard Hansen e1c2c963f0 tests: URL decode test spec pathnames
Express automatically URL decodes route parameters.
2021-06-03 15:10:22 -04:00
Richard Hansen 998e77ec25 tests: Switch to promisified `readFile` 2021-06-03 15:10:22 -04:00
Richard Hansen 6cf27a7133 tests: Use `fs.promises` instead of wrapping with `util.promisify` 2021-06-03 15:10:22 -04:00
Richard Hansen f00f9aa14c tests: Avoid `.then()` inside `async` functions 2021-06-03 15:10:22 -04:00
Richard Hansen d87b4e0c20 tests: Use `async`/`await` instead of returning Promises
This makes stack traces more useful.
2021-06-03 15:10:21 -04:00
Richard Hansen 0d9476529e sanitizePathname: Move to separate module to facilitate reuse 2021-06-03 15:10:21 -04:00
Richard Hansen 926da57e34 Minify: Refine `sanitizePathname` to avoid pathname traversal 2021-06-03 15:10:21 -04:00
translatewiki.net 3bca85286b Localisation updates from https://translatewiki.net. 2021-06-03 15:12:59 +02:00
translatewiki.net 8f63671ea9 Localisation updates from https://translatewiki.net. 2021-05-31 10:02:43 +02:00
translatewiki.net a04089636c Localisation updates from https://translatewiki.net. 2021-05-27 15:37:31 +02:00
translatewiki.net c426e939d1 Localisation updates from https://translatewiki.net. 2021-05-24 14:00:35 +02:00
Richard Hansen 6f2f20233f lint: Fix straightforward ESLint errors 2021-05-12 11:26:35 +02:00
Richard Hansen 59c03bde20 lint: Re-run `eslint --fix` 2021-05-12 11:26:35 +02:00
Richard Hansen 30eadad79d lint: Bump ESLint dependencies 2021-05-12 11:26:35 +02:00
webzwo0i 24929d3417 package.json: bump npm from 6.14.11 to 6.14.13 2021-05-07 14:58:57 +02:00
webzwo0i 10f00906f8 update package-lock.json 2021-05-07 14:58:57 +02:00
snyk-bot ff245dbbeb fix: upgrade underscore from 1.13.0 to 1.13.1
Snyk has created this PR to upgrade underscore from 1.13.0 to 1.13.1.

See this package in npm:
https://www.npmjs.com/package/underscore

See this project in Snyk:
https://app.snyk.io/org/johnmclear/project/d9a12bfb-7ccd-443f-9e22-f30d339cc8c5?utm_source=github&utm_medium=upgrade-pr
2021-05-07 14:27:30 +02:00
translatewiki.net 4701cc43fa Localisation updates from https://translatewiki.net. 2021-05-07 10:50:38 +02:00
Richard Hansen b040ebf419 Revert "PadMessageHandler: Use a `Map` for `sessioninfos`"
Switching to a Map broke ep_webrtc and maybe other plugins.

This reverts commit eeead46437.
2021-05-05 18:09:10 -04:00
webzwo0i 3c087af038 caretPosition: fix loading when iframe is hidden 2021-05-04 23:56:13 +02:00
Richard Hansen 8baacd514e remote_runner: Always call `browser.quit()` 2021-05-03 01:48:08 -04:00
Richard Hansen 081f739a8d remote_runner: Update browser list
Use latest versions of Chrome, Firefox, Safari, and Edge. Keep the old
Chrome version.
2021-05-03 01:48:08 -04:00
Richard Hansen a7cd0a4b25 remote_runner: Avoid re-sending the same console text over and over 2021-05-03 01:48:08 -04:00
Richard Hansen 25275f2744 remote_runner: Treat no text as 0 lines, not 1 empty line 2021-05-03 01:48:08 -04:00
Richard Hansen a17556b876 remote_runner: Avoid searching the full text for "FINISHED" 2021-05-03 01:48:08 -04:00
Richard Hansen 3409e3f5e6 remote_runner: Prevent Sauce errors from interrupting other tests 2021-05-03 01:48:08 -04:00
Richard Hansen 68b041c4fb remote_runner: Use newline instead of backslash n 2021-05-03 01:48:08 -04:00
Richard Hansen 713e57b451 remote_runner: Don't break long lines
Breaking lines makes it harder to read and search the test output.
2021-05-03 01:48:08 -04:00
Richard Hansen 7d75e0ef8f remote_runner: Simplify `append()` 2021-05-03 01:48:08 -04:00
Richard Hansen bbb3046a87 remote_runner: Promisify 2021-05-03 01:48:08 -04:00
Richard Hansen 9059a55873 remote_runner: Improve readability of timeout duration 2021-05-03 01:48:08 -04:00
Richard Hansen c803ec81f1 remote_runner: Handle webdriver errors 2021-05-03 01:48:08 -04:00
Richard Hansen 7f57b17b2e remote_runner: Use Error objects to convey pass/fail 2021-05-03 01:48:08 -04:00
Richard Hansen 4ec02a9af9 remote_runner: Simplify finished test check 2021-05-03 01:48:08 -04:00
Richard Hansen b0e367a982 remote_runner: Simplify logging of console text 2021-05-03 01:48:08 -04:00
Richard Hansen 08856fe42e remote_runner: Move `logIndex` updates into `printLog()` 2021-05-03 01:48:08 -04:00
Richard Hansen a12c475776 remote_runner: Use an options object to create webdriver object 2021-05-03 01:48:08 -04:00
Richard Hansen 925f789d4c remote_runner: Simplify logging 2021-05-03 01:48:08 -04:00
Richard Hansen 014e19cf7d remote_runner: `await` each browser test 2021-05-03 01:48:07 -04:00
Richard Hansen 1f3a831cc3 remote_runner: Avoid duplication in task list 2021-05-03 01:48:07 -04:00
Richard Hansen 59be8d5c05 remote_runner: Delete commented-out browsers
Also delete useless and incorrect browser comments.
2021-05-03 01:48:07 -04:00
Richard Hansen a58fa4a2c5 tests: Add tests for `SkipList.atOffset()` 2021-05-03 01:42:03 -04:00
Richard Hansen c00031a8d8 skiplist: Use `Map.size` to get number of nodes 2021-05-03 01:42:03 -04:00
Richard Hansen 1cdfe9193b skiplist: Convert `_keyToNodeMap` to a `Map` object 2021-05-03 01:42:03 -04:00
Richard Hansen e2eb7327c2 skiplist: Sanity check inserted entries 2021-05-03 01:42:03 -04:00
Richard Hansen 9e2ef6ad5b skiplist: Move `propagateWidthChange()` to `Node` class 2021-05-03 01:42:03 -04:00
Richard Hansen fc103e7f2a skiplist: Define a new `Node` class 2021-05-03 01:42:03 -04:00
Richard Hansen 9fc88f3601 skiplist: Convert point operations into `Point` methods 2021-05-03 01:42:03 -04:00
Richard Hansen 3c1be95e07 skiplist: Move point creation to a new `Point` class 2021-05-03 01:42:03 -04:00
Richard Hansen 8ae40e80f9 skiplist: Save entry in `_insertKeyAtPoint()` 2021-05-03 01:42:03 -04:00
Richard Hansen 0e424fa8c3 skiplist: Remove unnecessary `newKey` arg from `_insertKeyAtPoint()` 2021-05-03 01:42:03 -04:00
Richard Hansen ab8c354f18 skiplist: Use ES6 class syntax
This makess it easier to examine state in dev console.
2021-05-03 01:42:03 -04:00
Richard Hansen 303fd297bd editor: Improve documentation comments 2021-05-03 01:42:03 -04:00
Richard Hansen cbbcef8e90 AttributeManager: Add sanity checks 2021-05-03 01:42:03 -04:00
Richard Hansen d40d59d9eb AttributeManager: Simplify logic 2021-05-03 01:42:03 -04:00
Richard Hansen e3d32a26b6 skiplist: Delete unused methods 2021-05-03 01:42:03 -04:00
Richard Hansen f650c3d73e editor: Delete unused `PROFILER` code 2021-05-03 01:42:03 -04:00
Richard Hansen ab4e99f67a editor: Delete commented-out code 2021-05-03 01:42:03 -04:00
Richard Hansen eeead46437 PadMessageHandler: Use a `Map` for `sessioninfos`
Maps are a bit more flexible, have clearer semantics, and have a
convenient `size` property.
2021-05-03 01:35:11 -04:00
Richard Hansen 14d4aadfe4 PadMessageHandler: Parallelize client updates
Multiple clients are updated in parallel, but multiple revisions sent
to a particular client are still sent sequentially.
2021-05-03 01:35:11 -04:00
Richard Hansen 770755debf PadMessageHandler: Assume sessioninfo stays valid during client update
...but add a try/catch around the message transmission just in case.
2021-05-03 01:35:11 -04:00
Richard Hansen c85391862b PadMessageHandler: Avoid unnecessary property lookups 2021-05-03 01:35:11 -04:00
Richard Hansen d5c6a44d9c PadMessageHandler: Improve documentation of `sessioninfos` 2021-05-03 01:35:11 -04:00
Richard Hansen 4c4415e14a PadMessageHandler: Register `activePads` metric only once 2021-05-03 01:35:11 -04:00
snyk-bot 6011d31b22 fix: upgrade underscore from 1.12.1 to 1.13.0
Snyk has created this PR to upgrade underscore from 1.12.1 to 1.13.0.

See this package in npm:
https://www.npmjs.com/package/underscore

See this project in Snyk:
https://app.snyk.io/org/johnmclear/project/d9a12bfb-7ccd-443f-9e22-f30d339cc8c5?utm_source=github&utm_medium=upgrade-pr
2021-05-03 01:31:53 -04:00
Richard Hansen 8f236b8687 Minify: Avoid crash due to unhandled Promise rejection if stat fails 2021-05-03 01:26:49 -04:00
Richard Hansen e8df643d75 Minify: Treat `ENOTDIR` like `ENOENT` when statting a file
This avoids an exception when require-kernel requests a path like
`existing-file.js/index.js`.
2021-05-03 01:26:48 -04:00
Richard Hansen aaacbd3a7a Minify: Refactor `requestURI()` for readability 2021-05-03 01:26:48 -04:00
translatewiki.net 3a8d66ba6a Localisation updates from https://translatewiki.net. 2021-04-30 08:49:17 +02:00
translatewiki.net 3afc77dae7 Localisation updates from https://translatewiki.net. 2021-04-26 15:20:55 +02:00
Richard Hansen 8384a7a67b deps: Bump ueberdb2 2021-04-20 21:56:44 +02:00
Richard Hansen ea8846154f favicon: Redo favicon customization 2021-04-20 13:33:55 -04:00
Richard Hansen 92e0bff80c favicon: Refactor handler and add tests 2021-04-20 13:33:55 -04:00
Richard Hansen d0d4b95980 favicon: Only serve from `/favicon.ico` 2021-04-20 13:33:54 -04:00
webzwo0i 3a5af19492 AuthorManager: await for more db methods 2021-04-20 11:27:44 -04:00
webzwo0i 35797e57fc AuthorManager: await db.set in createAuthor 2021-04-20 11:27:44 -04:00
webzwo0i 20c512c8a9 test for await db.set in createAuthor 2021-04-20 11:27:43 -04:00
Chocobozzz a001a13411 fix(perf): Disable wtfnode dump by default
Consumes a lot of CPU so it's better to enable it on purpose
2021-04-13 16:01:41 +02:00
Richard Hansen 951d369e3f padaccess: Delete useless try/catch 2021-04-12 22:51:06 -04:00
Richard Hansen 329d037431 Simplify read-only pad ID checks 2021-04-12 22:51:06 -04:00
Richard Hansen f63610bb12 tests: Test access bypass via read-only pad ID 2021-04-12 22:51:06 -04:00
pcworld 3c71e8983b Fix read only pad access with authentication
Before this commit, webaccess.checkAccess saved the authorization in
user.padAuthorizations[padId] with padId being the read-only pad ID,
however later stages, e.g. in PadMessageHandler, use the real pad ID for
access checks. This led to authorization being denied.

This commit fixes it by only storing and comparing the real pad IDs and
not read-only pad IDs.

This fixes test case "authn user readonly pad -> 200, ok" in
src/tests/backend/specs/socketio.js.
2021-04-12 22:51:06 -04:00
pcworld 0d33793908 tests: readonly pastes must be readable+exportable with authentication
readonly paste links should be readable even if authentication is turned
on, as long as the user provides valid login data.
This test currently fails.

Also test that readonly paste IDs can be exported under the same
condition, which currently succeeds.
2021-04-12 22:51:06 -04:00
translatewiki.net 7d5cad6932 Localisation updates from https://translatewiki.net. 2021-04-12 15:43:27 +02:00
Richard Hansen d01b593d3c chat: Ensure that `ctx.text` is interpreted as HTML 2021-04-11 06:20:29 +02:00
Richard Hansen a3a0ff7bc1 chat: Use jQuery to build the chat message DOM object
This reduces the likelihood of accidentally introducing an XSS
vulnerability.
2021-04-11 06:20:29 +02:00
Richard Hansen 74554d36a5 chat: Allow `chatNewMessage` hook to modify more values 2021-04-11 06:20:29 +02:00
Richard Hansen 1ad134a538 PadMessageHandler: Improve logging of pre-CLIENT_READY drops
This should make it easier to see what is emitting the the messages so
it can be fixed.
2021-04-09 18:43:02 +02:00
Richard Hansen 91e99c84ca import: Reduce log spam from unsupported elements 2021-04-09 18:43:02 +02:00
Richard Hansen 09c349e2a1 import: Use a Set for supported elements 2021-04-09 18:43:02 +02:00
translatewiki.net e31da37d00 Localisation updates from https://translatewiki.net. 2021-04-08 14:54:44 +02:00
webzwo0i a796811558 escape userId before setting it as HTML attribute 2021-04-07 23:29:27 -04:00
webzwo0i 9408d4395f remove custom timeouts 2021-04-07 17:47:11 -04:00
Mikk Andresen af19a010c5 DOCS: Fix broken links in TOC - use Marked to generate ID slugs instead of local implementation that was giving out different IDs in some cases - https://github.com/citizenos/citizenos-fe/issues/535 2021-04-06 21:42:01 +02:00
webzwo0i e483b91916 Don't make browsers fail on sync-xhr until require-kernel is dropped 2021-04-05 04:34:29 -04:00
snyk-bot e86547c4f5 fix: upgrade openapi-backend from 3.9.0 to 3.9.1
Snyk has created this PR to upgrade openapi-backend from 3.9.0 to 3.9.1.

See this package in npm:
https://www.npmjs.com/package/openapi-backend

See this project in Snyk:
https://app.snyk.io/org/johnmclear/project/d9a12bfb-7ccd-443f-9e22-f30d339cc8c5?utm_source=github&utm_medium=upgrade-pr
2021-04-03 16:54:52 -04:00
Richard Hansen e4754eb9df tests: Fix race in `timeslider_revisions.js` 2021-04-02 15:46:27 +02:00
Richard Hansen 27e5373050 tests: Fix race in `change_user_name.js` 2021-04-02 15:46:27 +02:00
Richard Hansen 58dac4c0fc tests: Fix races in `inner_height.js` 2021-04-02 15:46:27 +02:00
Richard Hansen 4ad80d4072 tests: Delete overly aggressive frontend test timeouts
This should reduce test flakiness.
2021-04-02 15:46:27 +02:00
Richard Hansen 7cbb3f565d tests: Speed up `helper.edit()` and `helper.clearPad()` 2021-04-02 15:46:27 +02:00
Richard Hansen 7a154b1e1d tests: Wait for commit instead of sleep in `timeslider_revisions.js` 2021-04-02 15:46:27 +02:00
Richard Hansen d15ff9ce8d tests: Add missing `await`s to `change_user_name.js`
Also increase the timeouts.
2021-04-02 15:46:27 +02:00
Richard Hansen bbf89dfcf9 tests: Refine frontend tests
* Switch from `helper.newPad()` to `helper.aNewPad()`.
  * Promisify.
  * Delete redundant logic.
  * Lint fixes.
2021-04-02 15:46:27 +02:00
Richard Hansen 3790c0e41c tests: Use `async`/`await` instead of returning Promises
This has a few benefits:
  * It's more readable: It's easier for a user of the function to know
    that they should use `await` when calling the function.
  * Stack traces are more useful.
  * Some code (e.g., the async npm package) uses introspection to
    determine if a function is `async` vs. takes a callback.
2021-04-02 15:46:27 +02:00
Richard Hansen b164a34e64 lint: Fix ESLint error in `helper/methods.js` 2021-04-02 15:46:27 +02:00
Richard Hansen 62403159df tests: Invert conditions to improve readability 2021-04-02 15:46:27 +02:00
Richard Hansen dd9c08d821 tests: Wait for commit rather than sleep 2021-04-01 14:31:56 +02:00
Richard Hansen 2776946627 tests: Use cookie libraries to manipulate cookies 2021-04-01 14:31:56 +02:00
Richard Hansen 202d65d2bb pad_cookie: Re-read prefs cookie on every call to `getPref()`
This makes it easier to write tests that clear the prefs cookie.
2021-04-01 14:31:56 +02:00
Richard Hansen 0df41a9a78 pad_cookie: Move initial cookie read+save to `init()`
Benefits of this change:
  * It avoids race conditions with tests that clear cookies.
  * Any attempt to get or set a value before `init()` is called will
    throw an error, ensuring the API is used properly.
  * Improved readability: It's easier to understand what the
    `pad.noCookie` check is doing.
2021-04-01 14:31:56 +02:00
Richard Hansen aeee5c0b69 tests: Fix cookie name in `helper.js` tests 2021-04-01 14:31:56 +02:00
Richard Hansen 137fa89d2a tests: Always set cookie path to / (to match non-test behavior) 2021-04-01 14:31:56 +02:00
Richard Hansen 5666c34061 tests: Fix encoding of prefs cookie 2021-04-01 14:31:56 +02:00
Richard Hansen 63e6e163b7 tests: Promisify some of the `helper.js` tests 2021-04-01 14:31:56 +02:00
Richard Hansen 701a40ac13 tests: Promisify `multiple_authors_clear_authorship_colors.js` 2021-04-01 14:31:56 +02:00
Richard Hansen 8b43f9eb5f tests: Promisify `authorship_of_editions.js` 2021-04-01 14:31:56 +02:00
Richard Hansen 056939cd22 tests: Refine `helper/multipleUsers.js`
* Rename "current"/"other" to "user0"/"user1".
  * Delete unnecessary `_createTokenFor*` functions.
  * Rename helper functions to remove unnecessary leading underscore
    and for brevity.
  * Use jQuery's `.attr()` to build the second iframe.
  * Use js-cookie to manipulate the token cookie.
  * Don't attempt to set the token cookie if the pad isn't loaded.
  * Use the token generated by the pad.
  * Only clear the token cookie at path=/.
2021-04-01 14:31:56 +02:00