Commit graph

3244 commits

Author SHA1 Message Date
Siebrand Mazeland
9c69753a35 Localisation updates from http://translatewiki.net. 2013-05-20 09:30:23 +00:00
Siebrand Mazeland
8ee15d4003 Localisation updates from http://translatewiki.net. 2013-05-12 18:40:40 +00:00
Siebrand Mazeland
923c01745b Localisation updates from http://translatewiki.net. 2013-05-09 13:39:04 +00:00
Marcel Klehr
90d1598688 Merge pull request #1751 from goldquest/dev_IE8-fix
Fixing IE8 errors
2013-05-08 07:19:15 -07:00
John McLear
42e164c1b6 Merge pull request #1770 from ether/feature/travis_fix
Fixed sauce labs key in travis config file
2013-05-04 05:20:23 -07:00
Peter 'Pita' Martischka
97bbff05d4 Let travis use sauce labs key of the etherpad user 2013-05-04 13:14:39 +01:00
John McLear
2273cf9ed6 Merge pull request #1740 from ether/feature/add-cs-queue
add a changeset queue
2013-04-28 13:58:08 -07:00
John McLear
9f2bab2ba3 Merge pull request #1760 from bemeric1/develop
Issue #1652: Fix to client-side-induced changeset spamming.
2013-04-28 13:11:34 -07:00
Siebrand Mazeland
702a300164 Localisation updates from http://translatewiki.net. 2013-04-28 17:48:19 +00:00
Marcel Klehr
2c855de6f6 Add a server-side changeset queue per pad
fixes #1573
2013-04-27 23:04:42 +02:00
Brian Emerick
e7d8f124ad Issue #1625: Fix to client-side-induced changeset spamming.
THE BUG - HIGH LEVEL:
- When client A sends out an attribute change, client B applies that change to itself but
  also thinks that it made the change itself, which is incorrect. This means that when client B
  next makes a change, he will send out that he made the attrib change that A actually made.
- Ex: Have 2 clients on the same pad. Have A apply bold on some text. Next, have B type a character.
  B will broadcast that it both added a character AND applied bold, when in reality it did NOT
  apply bold at all, that change was done by the other client and this client incorrectly adopted it as its own.
- This root bug behavior results in clients continuing to think that they each made the other client's change,
  thus resulting in an infinite loop of changeset spamming that bogs down clients and harms server stability.

THE BUG - IN DEPTH:
- The root issue is in the way that Changesets are combined in Changeset.follow(). Specifically, in the case of a
  changeset with ONLY new attrib changes (no text changes) being merged with an identity changeset (has no ops).
- In this case, Changeset.follow() copies the ops of the new CS and fully overrides the other CS.
- applyChangesToBase invokes Changeset.follow to determine the final client document CS state after applying the new CS.
  If the final client document CS state is NOT the identity CS, then the client broadcasts that it made a change.
- When client A changes just attribs, client B's applyChangesToBase calls Changeset.follow() and passes client A's
  changeset (attrib change) and Client B's current changeset state (identity).
- As per the noted bug, Changeset.follow() returns client A's changeset as a result, causing client B to adopt
  client A's changeset as its own document state. Thus, client A ends up thinking it has made client B's changes.

THE FIX:
- Changeset.follow() should NOT copy the ops of the new CS passed in if those changes are only attrib changes.
  This allows applyChangesToBase to properly set the client's CS back to the identity after applying an
  external attrib change, instead of incorrectly adopting the external client's changes.
2013-04-24 15:18:25 -07:00
Siebrand Mazeland
f0f98b41fe Localisation updates from http://translatewiki.net. 2013-04-21 12:29:25 +00:00
John McLear
acd2e9ff68 Merge pull request #1754 from goldquest/patch-1
Just a missing character in README
2013-04-18 04:34:03 -07:00
Timo Welde
b527c6ead2 Just a missing character 2013-04-18 12:54:09 +03:00
John McLear
bf4c86ed94 better message for admins 2013-04-17 23:48:11 +01:00
John McLear
63b00b9010 Merge branch 'feature/add-cs-queue' of github.com:ether/etherpad-lite into dont-crash-noauth 2013-04-17 20:04:25 +01:00
John McLear
3b8621c6a0 dont crash on no auth, ust a bandaid 2013-04-17 19:50:05 +01:00
goldquest
98c43aff43 fixed spacing 2013-04-17 18:17:14 +02:00
John McLear
f478f99995 Merge pull request #1750 from ether/fix/authorship-once-and-4-all
Fix authorship sanitization
2013-04-17 08:13:22 -07:00
goldquest
896f72311f use document, not doc 2013-04-17 16:51:54 +02:00
goldquest
566034ddf0 IE8 don't knows the Array.forEach function (simple version fix) 2013-04-17 16:51:43 +02:00
goldquest
b08a6e522f IE8 complains, if catch block is missing 2013-04-17 16:51:21 +02:00
Marcel Klehr
146c75e703 Remove console.log in content collector
fixes #1731
2013-04-17 16:37:45 +03:00
Marcel Klehr
560fd55bf2 Fix authorship sanitization
author colors wouldn't get disttributed, if their id was greater than 9
(due to apool encoding them to base 36)
2013-04-17 15:24:40 +02:00
Marcel Klehr
cd288c70cb Don't block changeset queue with delivering changeset 2013-04-17 14:26:11 +02:00
Marcel Klehr
1c8b7a3661 Add a server-side changeset queue per pad
fixes #1573
2013-04-17 14:25:23 +02:00
John McLear
a3ed936d5f Merge branch 'develop' of github.com:ether/etherpad-lite into develop 2013-04-16 00:12:57 +01:00
John McLear
e7a80b7b77 still express is stuck at 3.1.0 2013-04-16 00:12:11 +01:00
John McLear
2e0c8dbc4f Merge pull request #1745 from ether/master
Pull tags
2013-04-15 16:05:03 -07:00
John McLear
c19b7b8f55 Merge pull request #1743 from ether/dont-crash-on-export-abiword
catch error on export
2013-04-15 15:32:14 -07:00
John McLear
f987299a5d catch error on export 2013-04-15 23:01:08 +01:00
Marcel Klehr
76e50e2c4d Refactor SocketIORouter 2013-04-15 20:29:06 +02:00
John McLear
fac4058e83 Merge pull request #1739 from ether/update-connect
Update connect and express
2013-04-15 11:09:34 -07:00
John McLear
9b952da692 Merge branch 'develop' of github.com:ether/etherpad-lite into update-connect 2013-04-15 19:07:01 +01:00
John McLear
9a863824c9 update connect and express 2013-04-15 19:06:22 +01:00
John McLear
0b2e1a0c31 Update .travis.yml 2013-04-15 17:33:41 +02:00
John McLear
a670158e78 Update .travis.yml 2013-04-15 17:33:20 +02:00
John McLear
c5a58d392c Merge pull request #1737 from ether/develop
Patch allow spam to be sent :|
2013-04-15 06:38:42 -07:00
John McLear
9b7dca5427 Merge pull request #1736 from ether/dont-avoid-spam
undo avoid changeset spam as it breaks functionality
2013-04-15 06:37:49 -07:00
John McLear
4989f56673 undo avoid changeset spam as it breaks functionality 2013-04-15 14:36:25 +01:00
John McLear
2872a824de Merge branch 'release/1.2.10' 2013-04-15 12:24:44 +01:00
John McLear
2c8699506d push express back as it breaks sessions 2013-04-15 12:21:10 +01:00
John McLear
c3c7a3d128 Merge pull request #1721 from ether/dont-send-same-cs-spam
temp patch for #1652
2013-04-15 04:20:05 -07:00
Siebrand Mazeland
8a2977381f Localisation updates from http://translatewiki.net. 2013-04-14 11:54:26 +00:00
John McLear
08b54ef61b Merge pull request #1732 from ether/authorID-2
Correct authorID in Changeset on modification
2013-04-12 06:36:39 -07:00
John McLear
337179fddd remove console logs and cruft 2013-04-12 14:34:07 +01:00
Marcel Klehr
f4de7f6a90 Use a string instead of an array! 2013-04-11 21:23:38 +02:00
Marcel Klehr
49013b18c7 We need to replace all new author attribs with thisSession.author, in case someone copy/pasted or otherwise inserted other peoples changes 2013-04-11 21:12:59 +02:00
John McLear
b137f301e2 MAGIQ 2013-04-11 18:34:40 +01:00
Marcel Klehr
e8d953a15c Use the correct version number 2013-04-11 19:08:07 +03:00