Commit Graph

499 Commits (3caa030c3978f59a36f570d253c03adfcf4967a0)

Author SHA1 Message Date
Chad Weider b29fc11e9d Upgrade to Yajsml bug fix. 2012-10-02 19:57:23 -07:00
Marcel Klehr 7656001cb5 Don't shut down the whole server, if error handling middleware is called.
The errors passed to error handling middleware aren't that severe, so it's fine to just stay alive...
2012-10-02 20:11:18 +02:00
John McLear 56453409a5 Update src/static/js/pad_editbar.js
Somehow </iframe> was no more.  Now it is back..  Oh boy.
2012-10-02 02:19:44 +02:00
John McLear 7f6a81b0ed Merge pull request #1006 from cweider/ace-cleanup
Ace cleanup
2012-10-01 13:05:10 -07:00
Richard Braakman 2e72a1e489 Prevent server crash in handleClientReady
The client might have disconnected between callbacks so don't try to
write to the session before checking this. The main callback of this
function now has a single check at its top.

Removed a redundant check halfway through the callback.

Also normalized use of client.id for the session index instead of a mix of
client.id and sessionId.

Added some explanatory comments.
2012-09-28 23:23:00 +03:00
Richard Braakman 413ddb393e Add some explanatory comments to handleUserChanges() 2012-09-28 22:49:20 +03:00
Richard Braakman 7aaef01346 Prettify session handling in handleUserChanges
Also add a comment to explain what's going on with thisSession.
No changes in behavior.
2012-09-27 23:07:00 +03:00
Richard Braakman f1b4206cad Fix crash when client submits changeset based on too-old revision
We had a problem with the server running out of stack space if a client
submitted a changeset based on a revision more than about 1000 revs old.
(944 was our cutoff but yours may vary). This happened in the wild with
about 30 people editing via flaky wifi. A disconnected client would try
to submit a fairly old changeset when reconnecting, and a few minutes
was enough for 30 people to generate that many revs.

The stack kept growing because pad.getRevisionChangeset was being answered
from the cache, so no I/O interrupted the callback chain. (This was seen with
mysql, I don't know about other backends.)

This patch forces a nextTick every 200 revisions to solve this problem.
2012-09-26 03:01:59 +03:00
Richard Braakman e16008b371 Fix sessioninfos race that can cause crash during USER_CHANGES handling
When stress testing etherpad-lite we occasionally got this error:

TypeError: Cannot read property 'author' of undefined
    at /home/etherpad/etherpad-lite/src/node/handler/PadMessageHandler.js:556:47

handleUserChanges was accessing sessioninfos[client.id].author in a callback,
after spending some time in the loop that updates the changeset to the
latest revision. It's possible for a disconnect request to be processed
during that loop so the session might no longer be there.

This patch fixes it by looking up the author at the start of the function.
2012-09-26 03:01:59 +03:00
Chad Weider 622819ba93 Make intialization of Ace2Inner analogous to other page controllers. 2012-09-21 22:09:55 -07:00
Chad Weider 9f5946c942 Reformat Ace2Editor frame boot scripts. 2012-09-21 22:09:55 -07:00
Chad Weider fa65f889ec Consolidate Ace2Editor frame's boot script. 2012-09-21 22:09:55 -07:00
Chad Weider 49915dfeb8 Upgrade to Yajsml with another Windows backslash fix. 2012-09-21 22:09:44 -07:00
Marcel Klehr a72ade4494 Fix async.forEach in MultiSession code 2012-09-19 17:48:26 +02:00
Marcel Klehr b9da0e187e Revert "Fixed foreach loop on session IDs, was breaking EP on single session in cookie."
This reverts commit 443a71bc9c.

	modified:   src/node/db/SecurityManager.js
2012-09-19 17:42:36 +02:00
John McLear 0883043eb9 Merge pull request #1014 from marcelklehr/feature/list-all-groups
Add listAllGroups API endpoint
2012-09-18 15:36:19 -07:00
johnyma22 443a71bc9c Fixed foreach loop on session IDs, was breaking EP on single session in cookie. 2012-09-18 16:30:26 +01:00
John McLear 923b51033b List 12 plugins instead of 4
4 was a bit stingy :)  12 is a bit more friendly from a UX persepctive.
2012-09-18 15:54:08 +02:00
Marcel Klehr f8f002adc0 Add listAllGroups API endpoint
Adds a database key that lists all groups
2012-09-17 23:03:56 +02:00
Marcel Klehr bbc8848af3 Still support API endpoints of v1 in v1.1 2012-09-17 16:29:39 +02:00
Chad Weider a0177e5d3c Remember, the `class` symbol is reserved in some environments.
Fixes issue introduced in 9be69ef258.
2012-09-16 18:07:55 -07:00
John McLear 6f37de2fae Update src/package.json
Bump to v 1.1.2
2012-09-14 17:33:45 +02:00
John McLear e9e3ea305b Merge pull request #992 from gedion/develop
Added hooks and made some ace functions available to editorInfo Object
2012-09-14 04:51:17 -07:00
John McLear ba8177fc6f Merge pull request #999 from lepidum/develop
Fixed international composition issues (e.g., Japanese Input method)
2012-09-14 04:50:08 -07:00
NAGOYA, Yoshihiko 71c9444694 fix for InternationalComposition(e.g., Japanese Input)
moved inInternationalComposition from Ace2Inner to top window
fix bindTheEventHandlers() because ie9 implement CompositionEvent
when inInternationalComposition, NEW_CHANGES msg and ACCEPT_COMMIT msg
are pushed msgQueue.
when handleUserChanges(), apply msgQueue.
2012-09-13 23:37:26 +09:00
Marcel Klehr ad16c0d0d4 Bump API version to v1.1 2012-09-13 16:13:54 +02:00
John McLear d44c7f0bb5 Merge pull request #994 from cweider/parent-plugins
Parent plugins
2012-09-12 04:52:38 -07:00
John McLear 389e0d09b0 Merge pull request #740 from cweider/plugin-cleanup
Plugin cleanup
2012-09-12 04:52:23 -07:00
Chad Weider feeab5c1b2 Fix cache headers for missing files. 2012-09-11 22:27:14 -07:00
Chad Weider b691606c4e Replace ParentRequire hack.
Instead of hacking with the internals of require, make client_plugins aware
and capable of sharing behavior.
2012-09-11 21:16:47 -07:00
Chad Weider 1258ed3a0d Split client and server plugin functionality.
There is virtually no shared code for the client, extract it into its own
module and do away with the switches.
2012-09-11 21:16:47 -07:00
Chad Weider 9394495364 Inject plugins into hooks. 2012-09-11 21:16:47 -07:00
Chad Weider 3631f0ece3 Inject special normalization behavior. 2012-09-11 21:16:47 -07:00
Chad Weider e375b6212a Static functions are static. 2012-09-11 21:16:47 -07:00
Chad Weider b0d71df604 Fix worthless indentation. 2012-09-11 21:16:47 -07:00
Gedion a25feed1c2 fixed indentation 2012-09-11 17:49:58 -05:00
Gedion 3364eb131e fixed comments 2012-09-11 17:02:53 -05:00
Gedion 9be69ef258 fixed plugins 2012-09-11 16:21:14 -05:00
Marcel Klehr d05d587f21 Don't break if there is no session cookie. 2012-09-11 20:59:19 +02:00
John McLear a4bd92c184 Merge pull request #983 from Pita/feature/multiple-api-versions
Add support for multiple api versions
2012-09-11 11:29:24 -07:00
Chad Weider 03bcd07741 Use packaged version of Tinycon. 2012-09-09 18:18:59 -07:00
Chad Weider 1541237654 Use packaged version of UNorm. 2012-09-09 18:18:59 -07:00
Chad Weider 19a7208c97 Clean up requires. 2012-09-09 18:18:59 -07:00
Chad Weider 0da4acfdb5 Use packaged edition of async. 2012-09-09 18:18:59 -07:00
Chad Weider 8e735b0841 Use packaged edition of underscore. 2012-09-09 18:18:59 -07:00
Chad Weider b47f6ae905 Use packaged edition of security module. 2012-09-09 18:18:59 -07:00
Chad Weider c4fa2ecddb Don't prefix libraries that are prefixed by '$'. #hack 2012-09-09 18:18:58 -07:00
Chad Weider 3b40850195 Add index paths in tar processing. 2012-09-09 18:18:58 -07:00
Chad Weider a5653c7192 Clean up tar file processing. 2012-09-09 18:18:58 -07:00
Chad Weider b8faf1f78b Serve libraries from node_modules. 2012-09-09 18:18:58 -07:00