Commit Graph

3131 Commits (42e164c1b6efa8c3962f917ec095aa9fcf7d60ff)

Author SHA1 Message Date
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 f478f99995 Merge pull request #1750 from ether/fix/authorship-once-and-4-all
Fix authorship sanitization
2013-04-17 08:13:22 -07: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
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
John McLear f9d23767f8 Merge pull request #1709 from ether/keep-list-order-on-paste
When you paste into a numbered list, keep some integrity
2013-04-11 09:07:22 -07:00
John McLear a81a40d75b Merge branch 'develop' of github.com:ether/etherpad-lite into develop 2013-04-11 17:05:24 +01:00
John McLear f4123d2904 bump v and readme 2013-04-11 17:04:54 +01:00
John McLear dc6e2e13fe Merge pull request #1723 from ether/expose-broadcastslider
expose broadcast slider so plugins can interact with it
2013-04-11 09:03:43 -07:00
Marcel Klehr 594757cc47 html10n.js: Don't break in getDirection if language hasn't been set
fixes #1724
2013-04-11 18:51:49 +03:00
John McLear 9581097dc7 remove cruft 2013-04-11 16:39:25 +01:00
John McLear 1fc906017c final css 2013-04-11 16:38:41 +01:00
John McLear e712f7665d working solution props to dmitryu for making me not be scared of modifying div clases 2013-04-11 16:33:03 +01:00
John McLear df8a31f241 Merge pull request #1726 from ether/fix/html10n.js-console-log-shim
Update html10n.js to correctly use the console.log shim
2013-04-10 08:57:42 -07:00
Marcel Klehr c755633f09 Update html10n.js to correctly use the console.log shim
fixes #1724
2013-04-10 17:56:09 +02:00
John McLear 4a5e63f105 Merge pull request #1693 from guyzmo/api_extension
extension of the API (versioned 1.2.8)
2013-04-09 14:49:11 -07:00
John McLear 9dfac79107 no need to declare var twice 2013-04-09 15:58:18 +01:00
John McLear 8836981e32 expose broadcast slider so plugins can interact with it 2013-04-09 15:55:14 +01:00