Commit graph

4871 commits

Author SHA1 Message Date
Pranav Kant
f4d9d587b0 loleaflet: Listen to remove callbacks and remove comment when asked to
Change-Id: I4101cfa1e848f63e6ed14c131a35a14146427721
2017-02-22 15:48:16 +05:30
Pranav Kant
5078d31aa0 loleaflet: Do not check for anchorPos on remove callbacks
Otherwise our js errors out.

Change-Id: If70468ee12f70990f7d4e5c7cd8e01262437e769
2017-02-22 15:43:15 +05:30
Pranav Kant
f93c3e5660 loleaflet: Other things can change too
Modify callback is emitted even when the content changes, it doesn't
just signify a change in anchor position

Change-Id: I287efc6cd5f170a68ed73b303c50d55e6bfd45e8
2017-02-22 15:41:19 +05:30
Pranav Kant
5a3ac37798 loleaflet comments: Id is string type, not integer
Change-Id: I03f8881e70c0043cd14e5b2d7cf3ce5dd27870b4
2017-02-22 15:40:50 +05:30
Jan Holesovsky
7eff2294d9 We should be able to run with 5G of free space just fine.
Change-Id: Ie5df96388eeaa0ddf1a41564ec7d52c283e6b1bb
2017-02-21 19:55:04 +01:00
László Németh
cc3b521572 loleaflet: debug mode: fade out blue color of the tiles
after 1 sec, if it wasn't removed by a tile update.

From commit bc19f90dd4
(Don't send a tile that hasn't changed even if client asks for it),
blue color of the requested tiles isn't removed completely.

Change-Id: I0f4c152f61c2b0f70f1b7c23bd63d3e0bc80ec74
2017-02-21 11:22:20 +01:00
László Németh
0e4bc1c98f loolwsd: add Message.hpp/Replay.hpp to dist tarball
Change-Id: Ibcb584a877ed7290495d12c8bf5b43a96f36332f
2017-02-20 19:28:16 +01:00
Henry Castro
c30185f348 loleaflet: fix annotation when it has changed anchor position 2017-02-19 21:43:18 -04:00
Henry Castro
450f834248 loleaflet: simplify annotation operations
LO Core sends a list sorted by anchor positions, so no need to
have an additional anchor array list in client side
2017-02-17 14:25:02 -04:00
Pranav Kant
8fa0bb54bd loleaflet: fix readonly UI for spreadsheets
There is still one known problem - for some reason, when a spreasheet is
opened in readonly mode, the ViewRowColumnHeader request sent to server
has height=0 leading to server sending no rows information back to client.
Though the problem gets resolved when one scrolls the spreadsheet
window, but something to fix.

Change-Id: I2aefafd1a93c1bc5a9ad8581edb83018ec9a3f07
2017-02-17 22:16:58 +05:30
Pranav Kant
c3f9ebb888 loleaflet: Fix readonly UI for impress
Change-Id: I1434cad4f471a3f13c989d67b95b967345598148
2017-02-17 20:53:54 +05:30
Pranav Kant
e4ed4c1ad2 loleaflet: Vanish UI in readonly mode
Some of the related code was accidently commited in
8ebff4399c74a42463e1ec7578e6f5a028826682

Change-Id: Ia58e31bea7352541a89ae3f1b57c611acbe27e21
2017-02-17 20:09:10 +05:30
Pranav Kant
f75ccb414b loleafet: Revert accidently committed code
... from 8ebff4399c74a42463e1ec7578e6f5a028826682

Change-Id: I004ca52ba79b0a0e7c79c08a354f8d3179bf1daa
2017-02-17 20:09:10 +05:30
Pranav Kant
625a909902 loleaflet: Kill manual browser checking code; user our Browser class
Change-Id: Ia75e1f1bf79647c2eb6562fed8c549b3e272a953
2017-02-17 17:56:03 +05:30
Henry Castro
d4570130fe loleaflet: fix annotation author name 2017-02-16 09:46:17 -04:00
Henry Castro
4b5c667d23 loleaflet: sync annotations with server side 2017-02-15 17:47:46 -04:00
Henry Castro
aa751efbee loleaflet: modify and remove annotations 2017-02-14 16:37:16 -04:00
Miklos Vajna
f296c0ffeb wsd: avoid redundant string initialization
Change-Id: I5ac26d56c3b73e380d26226e83020ace3f1b54f4
2017-02-14 09:33:23 +01:00
Miklos Vajna
5c464d36b6 kit: strcpy -> strncpy in DummyLibreOfficeKit
Change-Id: I2e142efb6138a7712d9ba3953de9faa9fc0ab03c
2017-02-13 09:56:27 +01:00
Ashod Nakashian
9120fbabad wsd: use separate read/write locks in LOOLWebSocket
When two sockets send data to each other in blocking
mode, they can both wait until the other end-point's
buffers are free enough to receive the data being
sent. Since in LOOLWebSocket we lock both send and
receive with the same lock, this prevents the
reader thread from freeing the buffer while we try
to send data. But since our peer is in the same
dilemma, neither of us will make progress--deadlock.

Since sockets are full-duplex, they are capable of
handling two way communication concurrently. Poco
seems to not share data between them either, so
this seems safe.

Change-Id: I1fd68cd4fb3b4250b93c8f94cd42e49ee78f6650
Reviewed-on: https://gerrit.libreoffice.org/34194
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-13 06:53:38 +00:00
Ashod Nakashian
990d657672 loleaflet: reconnect silently when disconnected
Change-Id: I7761dcfd283e9b24fd70d255899d438209103a22
Reviewed-on: https://gerrit.libreoffice.org/34193
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-13 05:25:44 +00:00
Ashod Nakashian
2da90d0cfc wsd: explain the root of the document bifurcation bug
Change-Id: I9ac290c94296ed18dc25ce3b2d9c4939e4eeea91
Reviewed-on: https://gerrit.libreoffice.org/34192
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-13 05:25:13 +00:00
Ashod Nakashian
79c1791764 wsd: don't block on autosave
Change-Id: Id87465f0aeea9d4f29caea9c88d3a8c7837d8ec2
Reviewed-on: https://gerrit.libreoffice.org/34191
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-13 05:20:44 +00:00
Henry Castro
f9d54cd058 loleaflet: insert annotation 2017-02-11 21:22:59 -04:00
Henry Castro
b2b1dc8daf .gitignore loolwsd_fuzzer 2017-02-11 21:22:59 -04:00
Marco Cecchetti
66da85e0c8 Calc: Raise the row limit to 10.000 rows.
Change-Id: I5fe99f9d88f80cd9abbcf64d73a4b244739a0310
2017-02-10 19:13:07 +01:00
Miklos Vajna
f81ab32c57 wsd: remove remaining unused using declarations
Change-Id: I7d0d453194bdd069654f29105e3f17769036cd39
2017-02-10 09:07:40 +01:00
Ashod Nakashian
7f19d809b1 wsd: skip busy docBrokers when cleaning up
When cleaning up DocumentBrokers we hold
the global DocBrokersMutex. So we need
to keep this lock as short as possible
to serve new requests.

However when a given DocBroker is locked
and busy, or worse deadlocked, we'd end
up blocking any new client connection.

So here we skip busy DocBrokers while
cleaning up.

Change-Id: I188c9abc34fd90c4ba388894b47c1ab08d185129
Reviewed-on: https://gerrit.libreoffice.org/34119
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-10 07:12:45 +00:00
Ashod Nakashian
15862a5b5f wsd: we need to dump NewSession event on every connection
...and not just when loading a new document.

Change-Id: If5b19e500c59a8d1fcf96666ef244833c05e2b99
Reviewed-on: https://gerrit.libreoffice.org/34118
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-10 07:07:32 +00:00
Ashod Nakashian
2cff31d0fd wsd: decode URI before calling URI::getPath as it fails
Poco documentation for getPath says
"Returns the decoded path part of the URI."

Unfortunately, this isn't true for encoded URIs.
It ends up returning the full URI (albeit decoded).

So we decode the URI ourselves before calling
getPath to ensure it will be able to parse it
and return only the path, as promised.

Change-Id: I23ed65f753f7e5db74ce7833b812f566b1964037
Reviewed-on: https://gerrit.libreoffice.org/34117
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-10 07:06:28 +00:00
Ashod Nakashian
3831cd0169 wsd: drop bad sessions when send fails while replaying
Change-Id: I77c2ecd65f20a65e40d78fdc4d7d8ca2b4821270
Reviewed-on: https://gerrit.libreoffice.org/34116
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-10 07:05:37 +00:00
Ashod Nakashian
d0b9de7615 wsd: handle and ignore failed connection when replaying
Change-Id: I11c29b8c0076e9500f9df743f438bf6f4dbe88d1
Reviewed-on: https://gerrit.libreoffice.org/34115
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-10 07:04:48 +00:00
Ashod Nakashian
c7a5798abc wsd: handle exceptions so a bad session doesn't stop replaying
Change-Id: I2a92c8f16ab9f6a1a5d55472c5db0f9d6ed3fa67
Reviewed-on: https://gerrit.libreoffice.org/34114
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-10 07:03:55 +00:00
Ashod Nakashian
53a8101331 wsd: log the trace file duration and each record before executing
Change-Id: Ia5c21f01198de3dc655fe3bf247178dd04f5eaa7
Reviewed-on: https://gerrit.libreoffice.org/34113
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-10 07:03:26 +00:00
Ashod Nakashian
6cd1d511be wsd: avoid segfault when handling invalid paste command
The payload of paste can't have length 0.

Now we silently skip such cases, although perhaps we
should be more strict and disconnect the offending
client.

Change-Id: Iaa2e7373277f9e7d85209aec56a2f8ee0ef7e801
Reviewed-on: https://gerrit.libreoffice.org/34112
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-10 07:02:26 +00:00
Miklos Vajna
04b591b8c6 tools: remove unused using declarations in Stress
Change-Id: Icf4ca0f7532d0254513d5dd47f7914a52c60e46e
2017-02-09 10:09:38 +01:00
Ashod Nakashian
31fc9e1db2 wsd: fix fuzzer build
Change-Id: I121e5e24198e8906af27300752919592283bdb11
Reviewed-on: https://gerrit.libreoffice.org/34054
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-09 04:50:18 +00:00
Ashod Nakashian
3fb136170f wsd: extend timeout when nocaps is specified
Change-Id: Id10b38716cc184bf899120bbe18d9095fd2f48e5
Reviewed-on: https://gerrit.libreoffice.org/34053
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-09 04:36:17 +00:00
Ashod Nakashian
1e42b530e6 wsd: read memory RSS directly from /proc/pid/stat
There is no need to use `ps` here as reading
directly is trivial and has far less overhead.

Change-Id: I27d0432c1f3a9d35763d67fc445d8bd828f1b27e
Reviewed-on: https://gerrit.libreoffice.org/34052
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-09 04:35:24 +00:00
Ashod Nakashian
404111877a wsd: broadcast client messages from WSD not from the Kit
Change-Id: I9c179a2f41a0aaeef35b84208be8ab91af9ee53a
Reviewed-on: https://gerrit.libreoffice.org/34051
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-02-09 04:27:27 +00:00
Jan Holesovsky
963aeb5d1f Don't leak children that did not manage to send their PID to wsd. 2017-02-09 00:09:21 +01:00
Jan Holesovsky
c49e810437 Avoid crash on exit with trace file disabled. 2017-02-08 22:57:50 +01:00
Jan Holesovsky
ad20adce1a fuzzer: Don't handle signals when fuzzing.
Change-Id: I2febdf96bcbbd5c6edaf791d99a77674e6f0b0a9
2017-02-08 21:39:55 +01:00
Jan Holesovsky
cb3ccfe32d Fix crash on exit in the Admin console.
Change-Id: I5f90a12eb95f59d2b52a52e59526488b94975387
2017-02-08 21:39:10 +01:00
Jan Holesovsky
cd90d8adfe fuzzer: Add --dummy-lok command line option that bypases LibreOffice.
When provided, the DummyLibreOfficeKit is used instead of the real one that
calls LibreOffice.

Change-Id: Ic170d7b4adb72ba17a2b066c509c2b1e657dbccf
2017-02-08 12:34:16 +01:00
Jan Holesovsky
5873d15c62 fuzzer: Use the dummy LOK implementation when fuzzing.
Now it is possible to use:

  ./loolwsd_fuzzer --config-file=loolwsd.xml --o:storage.filesystem[@allow]=true --o:logging.level=fatal --fuzz=/tmp/looltrace

Ie. no need to specify the LibreOffice install location.  Ideally worth
disabling the logging output too, to gain higher performance.

Change-Id: I4fa5f275cd4f4a52fe2cd07e658cea726f6f31c2
2017-02-08 11:54:50 +01:00
Jan Holesovsky
ee79577960 fuzzer: Add a dummy LibreOfficeKit implementation.
This just returns empty values (or does nothing), instead of calling the real
LibreOffice.

Change-Id: Ie6fe0b554056ba73067a76c22067f088e1346b59
2017-02-08 11:25:21 +01:00
Jan Holesovsky
6dd581f635 fuzzer; Added --fuzz param that takes a looltrace file as input.
To perform one fuzzing iteration, use something like:

  ./loolwsd_fuzzer --config-file=loolwsd.xml --o:lo_template_path="/opt/libreoffice/instdir" --o:storage.filesystem[@allow]=true --fuzz=/tmp/looltrace

Change-Id: I27210d55a65f75e7d51e05c2f5f999acb758c4b1
2017-02-08 08:35:13 +01:00
Jan Holesovsky
964ae25ccf fuzzer: Factor out the replay functionality to a separate file.
Change-Id: Ief946b1703ef1ca0b17de3467dce66b4c3da2601
2017-02-08 08:35:13 +01:00
Miklos Vajna
836af6724f wsd: fix -Werror,-Wunused-function
Change-Id: I957440a2ac78f89d2f74aad66813b1ef56b5b532
2017-02-08 08:29:10 +01:00