Commit Graph

3182 Commits (d4e67cdc9a56011dbfba4a5cc515939b7a3b03ce)

Author SHA1 Message Date
John McLear d4e67cdc9a Merge pull request #1837 from rgbkrk/patch-1
Grammar fix
2013-07-18 11:53:39 -07:00
Kyle Kelley 406c9e38ea Grammar fix 2013-07-18 13:44:13 -05:00
John McLear 53fb4fc3fe Merge pull request #1833 from digitalbazaar/fix-chrome-longlines-slowdown
Make pads with long lines usable with chrome.
2013-07-14 14:59:21 -07:00
Siebrand Mazeland 3a9ef306a6 Localisation updates from http://translatewiki.net. 2013-07-14 21:25:00 +00:00
Dave Longley 5688350bf1 Adapt and add slowness test from @JohnMcLear.
- The test now ensures that all three key events are fired when
  sending keys. Previously, only the 'keypress' event was sent,
  which failed to trigger very slow code on webkit browsers (as
  it is triggered by 'keyup'). All three events should really be
  sent whenever sending keys to the browser to ensure that we're
  adequately testing real behavior. See the 'sendkeys' plugin
  for more; it only sends 'keypress'.
2013-07-14 16:46:12 -04:00
Dave Longley 3a47e719d4 Make pads with long lines usable with chrome.
- Do not use incorpIfQuick on keyup because it's not ever quick
  on chrome. Calling incorpIfQuick calls incorporateUserChanges
  which sets a flag on the current callstack state indicating
  that the selection has changed (since something was typed).
  Whenever this flag is set, the event handler will run code
  to update the selection (and possibly scroll the view as
  well), which is a very costly operation in webkit browsers.
  Instead let the user changes be incorporated by the idle worker,
  scheduling it to run ASAP on keyup. This isn't a perfect
  solution, but may make pads running on webkit browsers more
  usable with otherwise fairly unnoticeable changes in the UI.
2013-07-14 01:51:39 -04:00
John McLear d5a3d9d03b Update README.md 2013-07-01 19:54:09 +01:00
John McLear fb917b3d78 Update LICENSE 2013-06-26 23:34:35 +01:00
John McLear 98a9a24d02 repo url as latest npm shows warn if non existant 2013-06-26 20:19:38 +01:00
John McLear 53529cd031 Merge pull request #1815 from bit/patches
Some Patches
2013-06-25 06:54:51 -07:00
John McLear ba1a5da76d bump and changelog 2013-06-24 13:35:17 +01:00
John McLear 306c4047ea Fix broken git guide link 2013-06-23 16:09:08 +02:00
John McLear ee8af3454c Merge pull request #1753 from ether/dont-crash-noauth
dont crash on no auth, just a bandaid
2013-06-18 07:52:34 -07:00
j@mailb.org 9dd6471921 Add userLeave hook 2013-06-17 15:53:01 +02:00
j@mailb.org bc5dc74f90 pass pad in postAceInit hook
no way for plugins to access current pad otherwise.
2013-06-17 15:52:51 +02:00
j@mailb.org a554552bed Simpify CSS for sticky chat 2013-06-17 14:47:28 +02:00
Siebrand Mazeland 315e229c83 Localisation updates from http://translatewiki.net. 2013-06-17 11:28:14 +00:00
John McLear 3d65f3d052 Merge pull request #1807 from dummys/develop
added log4js 0.6.6
2013-06-15 00:17:50 -07:00
John McLear 71c62af8df Merge pull request #1810 from clkao/travis-fixes
Fix sauce configuration
2013-06-15 00:17:28 -07:00
John McLear ae78c6731d Merge pull request #1811 from clkao/author-style-hook
Document author style hook and provide outer_ace dynamic css manager
2013-06-15 00:17:09 -07:00
Chia-liang Kao 837d3bcfbf Update sauce key 2013-06-15 11:16:40 +08:00
Chia-liang Kao 8f262d0ede document aceSetAuthorStyle 2013-06-15 11:07:13 +08:00
Chia-liang Kao f31db205da allow cssmanager to manage outer_ace 2013-06-15 01:38:46 +08:00
dummys 8278ef3c7c added log4js 0.6.6 2013-06-13 15:10:32 +02:00
John McLear f086cd1f9a Merge pull request #1805 from rgbkrk/proto_cleanup
Delete URL schemes which don't have an RFC standard
2013-06-12 10:47:11 -07:00
Kyle Kelley 82de797642 Only kept URL schemes which have an RFC standard 2013-06-12 12:31:38 -05:00
John McLear 5b9c5a18ab Merge pull request #1804 from rgbkrk/proto_cleanup
Cleaning out gophers
2013-06-12 09:24:21 -07:00
Kyle Kelley b4f155c028 Cleanup gophers 2013-06-12 11:20:36 -05:00
Siebrand Mazeland 4c264aec4d Localisation updates from http://translatewiki.net. 2013-06-10 08:45:19 +00:00
John McLear 3e22ebf843 Merge pull request #1797 from clkao/author-style-hook
Author style hook
2013-06-09 16:37:31 -07:00
Chia-liang Kao f8729d2188 use SAUCE_ACCESS_KEY 2013-06-07 01:00:22 +08:00
Chia-liang Kao 548f31a46a new hook: aceSetAuthorStyle 2013-06-06 13:03:40 +08:00
Chia-liang Kao eae9faa28c refactor setAuthorStyle 2013-06-06 12:30:48 +08:00
John McLear cd277e5810 Merge pull request #1786 from clkao/saferun
Fix safeRun that tries to shift on subsequent restarts
2013-06-02 05:43:17 -07:00
Chia-liang Kao 67b513216a Fix safeRun that tries to shift on subsequent restarts 2013-05-29 10:40:30 +08:00
John McLear 0aa0c69ba3 Merge pull request #1785 from interesse/saferun_args
Pass arguments from safeRun.sh to run.sh
2013-05-26 16:03:35 -07:00
Jens Herrmann cbbf9a82ac Pass arguments from safeRun.sh to run.sh 2013-05-26 23:06:15 +02:00
Siebrand Mazeland 7d81a6d042 Localisation updates from http://translatewiki.net. 2013-05-26 09:36:03 +00:00
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