Commit graph

5380 commits

Author SHA1 Message Date
Ashod Nakashian
b52a8ac6e2 wsd: const correctness and avoid unnecessary shared_ptr promotion
Change-Id: I4352d82e7b5c6873837e73ec04d894dce9a716b7
Reviewed-on: https://gerrit.libreoffice.org/36036
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-03 05:16:49 +00:00
Ashod Nakashian
78d1cc4ac5 wsd: process callbacks before poll handlers
Callbacks are used to initialize handlers,
as is the case with addSession on DocumentBroker.

If the socket gets data before the callback is
invoked, the handler will fail since the expected
initialization hasn't happened yet.

This race indeed happens (rarely) with addSession.

100% (94/94) of old-style tests PASS.

Change-Id: Id9b4f63b45c5564add252e1671b7b0b08aff8150
Reviewed-on: https://gerrit.libreoffice.org/36035
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-03 05:16:05 +00:00
Ashod Nakashian
c81db87235 wsd: do child housekeeping on finishing DocBroker thread
Change-Id: I109737b79759986cb2a1cbfc6d711ee2f19ff59d
Reviewed-on: https://gerrit.libreoffice.org/36034
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-03 05:15:37 +00:00
Ashod Nakashian
6e596d11f3 wsd: catch exceptions from callbacks and wakup hook
Change-Id: Ib4579a34c91cfe43e5bd7038b175175a9ab0036a
Reviewed-on: https://gerrit.libreoffice.org/36033
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-03 05:14:58 +00:00
Ashod Nakashian
d7858b08b9 wsd: fix race in setting SocketPoll owner thread id
Change-Id: Idace925ab02425ed66ac07efc22ab933d229d42e
Reviewed-on: https://gerrit.libreoffice.org/36032
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-03 05:14:23 +00:00
Ashod Nakashian
bd82bf4c4b wsd: set DocBroker poll thread once
Change-Id: Ic6397893b2b9b04c6715c393c3f176785b1e2b77
Reviewed-on: https://gerrit.libreoffice.org/36031
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-03 05:13:37 +00:00
Ashod Nakashian
d6577654bd wsd: initialization and logging
Change-Id: Icd82a966b94875a65ddb3817c88a3c4c7bedd4ff
Reviewed-on: https://gerrit.libreoffice.org/36030
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-03 05:13:14 +00:00
Ashod Nakashian
e0822f8516 wsd: better thread affinity logging
Change-Id: I9e4bc3fe864aa409dc4874a9d6fc4ab22bfea592
Reviewed-on: https://gerrit.libreoffice.org/36029
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-03 05:11:57 +00:00
Ashod Nakashian
c9365ad679 wsd: log the DocBroker ID in the Kit as well
This matches the document between WSD and kit,
making logs much easier to read.

Change-Id: If55a9eb84b4a22d2dc4dd53f5f6ab322ebc3646e
Reviewed-on: https://gerrit.libreoffice.org/36028
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-03 05:11:23 +00:00
Ashod Nakashian
9936ac1869 wsd: fix alertAllUsers test
Issue the fake disk space error
only after fully loading the doc.

This prevents handling the error
while loading, which terminates
the session.

Change-Id: I5acd9454b1aa9fb5d1f886fb23a76a2d808d4852
Reviewed-on: https://gerrit.libreoffice.org/36027
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-03 05:10:51 +00:00
Ashod Nakashian
63ab3bcfa4 wsd: remove queueSession and simplify session loading
Change-Id: Ia03a4ed64b743da8fa7e27de853623126698b9c0
Reviewed-on: https://gerrit.libreoffice.org/36016
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-02 04:47:51 +00:00
Michael Meeks
aeb204fb14 Kill race during DocumentBroker shutdown over child process.
==20033== Invalid read of size 4
==20033==    at 0x466504: ChildProcess::close(bool) (DocumentBroker.hpp:111)
==20033==    by 0x44EA28: DocumentBroker::terminateChild(std::string const&, bool) (DocumentBroker.cpp:1313)
==20033==    by 0x45F70E: DocumentBroker::pollThread() (DocumentBroker.cpp:264)
==20033==    by 0x504B2F: SocketPoll::pollingThreadEntry() (Socket.hpp:486)
==20033==    by 0x7310E6F: execute_native_thread_routine (thread.cc:84)
==20033==    by 0x7AF60A3: start_thread (pthread_create.c:309)
==20033==    by 0x7DF002C: clone (clone.S:111)
==20033==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
2017-03-31 17:28:20 +01:00
Michael Meeks
2bca560feb Add hook for disk space check. 2017-03-31 17:18:41 +01:00
Michael Meeks
b9f18e63a3 UnitStorage - first cut at restoring this. 2017-03-31 17:06:47 +01:00
Michael Meeks
68bbd40bdc UnitTimeout: repair unit test timeout fidelity. 2017-03-31 16:00:32 +01:00
Michael Meeks
b70b171304 Tests: enable tilecache test and bin socket buffer size test. 2017-03-31 15:55:14 +01:00
Michael Meeks
ca24df225e Prefork children correctly on start, rather than after a delay. 2017-03-31 15:47:50 +01:00
Pranav Kant
2bd1dd9646 loleaflet: There's another socket object inside
Change-Id: I952b548e11b2456e3c9d64182444377190062b89
2017-03-31 19:58:51 +05:30
Michael Meeks
194c169f68 Remove obsolete write-lock.
The lock was used incompletely & inconsistently, and we should
always and only ever write in the associated SocketPoll's thread.
2017-03-31 14:58:37 +01:00
Marco Cecchetti
1e24c77c82 Loleaflet - Calc: horizontal scroll bar not updated on changed doc width
For big spreadsheet (> 100k rows) when the doc width is extended the
horizontal scroll-bar is not updated, causing to not be able toscroll
the document up to the whole width.

This was due to the fact that the old doc height was obtained through
L.DomUtil.getStyle, but the precision of the retrieved value is 6
digits only.

Change-Id: I430b08dd4c864cec09b62c61420414ad306da225
2017-03-31 14:44:04 +02:00
Pranav Kant
ca8bc37657 loleaflet: Close mobile-mode menu upon clicking any menuitem
Change-Id: Iaea20a9b364fc9f1b10d95694aa9b7e465249ca1
2017-03-31 17:45:26 +05:30
Michael Meeks
e79c5f9083 Use process name for a thread if no name is set (yet). 2017-03-31 11:21:35 +01:00
Pranav Kant
453a452ff9 Makefile: Simplify and link zlib properly
Without this, online doesn't link, atleast for me. The problem seems to
be because in presence of target specific _LDFLAGS, AM_LDFLAGS is
ignored and it is only the latter where we are specifying ZLIB_LIBS.

Further, since the LDFLAGS values are same for all targets, we can
simplify here and rather use AM_LDFLAGS and remove all target specific
LDFLAGS.

Change-Id: I2f1c30c7f34b32c638a4ac60fab709b32f1e6c9a
Reviewed-on: https://gerrit.libreoffice.org/35959
Reviewed-by: pranavk <pranavk@collabora.co.uk>
Tested-by: pranavk <pranavk@collabora.co.uk>
2017-03-31 09:17:56 +00:00
Pranav Kant
4b7904036a loleaflet: Annotate readonly users in userlist
Change-Id: Ia000a06baf9f88830dd30c4c4a4297eb10192fd6
2017-03-31 12:22:39 +05:30
Pranav Kant
bc98231119 loleaflet: Store and hide readonly view cursors
Change-Id: Ib2bec3158275e77d883308e25f1984491309234f
2017-03-31 12:20:43 +05:30
Pranav Kant
ce1084b74f wsd: Send readonly info to clients
With this every other client would be able to know about other client's
permission i.e whether they have opened the document as readonly. This
could be important eg: to hide the cursor overlay of readonly users in
the UI or to mark these users as readonly in the userlist.

Change-Id: I5dcb1b4e5a22c9b546d16b69b9216cc7653cff04
2017-03-31 12:20:09 +05:30
Andras Timar
ec5fb2a794 add missing default config values
Change-Id: Ic7829c8f97f43bf8f4f2ba4eccdbdf1da89665e4
2017-03-31 07:51:43 +02:00
Pranav Kant
30c9414d6d loleaflet: Context menu cut/copy/paste is always internal
If user wants to take something out of the document, he/she needs to
make use of keyboard shortcuts to do the same.

Change-Id: Id8237e0bfcb311d1a1465645042f160f7e1d8fb6
2017-03-31 11:07:27 +05:30
Michael Meeks
f20e931b29 Re-enable UnitPrefork. 2017-03-30 21:59:05 +01:00
Michael Meeks
a2398fc367 Improve debugging information. 2017-03-30 21:59:05 +01:00
Michael Meeks
eab89a0e70 Fix unit test delay time check. 2017-03-30 21:59:05 +01:00
Henry Castro
1cc621f2af test: remove duplicate common/Util.cpp
Change-Id: I65cfd6a0460a09f7ed3708082127a2ff939e7622
2017-03-30 15:37:21 -04:00
Michael Meeks
ae0dba1088 Cleanup prctl / gettid system-call thrash on logging.
Makes the strace look much prettier.
2017-03-30 18:14:40 +01:00
Michael Meeks
913c469aa8 Cleanup whitespace, return is not a function. 2017-03-30 17:34:52 +01:00
Pranav Kant
1507560e11 tdf#106842: Document DisableCopy mode
Change-Id: I4c9efc5a9a32b4eea8cc751fce418c85d9fa4f35
2017-03-30 18:49:02 +05:30
Pranav Kant
87c9b30f48 tdf#106842: Prefix 'Internal ' to cut/copy/paste strings
... in DisableCopy mode.

Change-Id: Id758d4654fbe129dd16a466050bf51686440909d
2017-03-30 18:11:49 +05:30
Pranav Kant
017fe90af1 loleaflet: Refine copy/pasting in DisableCopy mode
We always want internal document copy/paste to work and always want to
do a richtext copy/paste whenever possible.

Change-Id: I54705293bd34bc284ceff815ebdf556c7ca1587c
2017-03-30 18:11:49 +05:30
Michael Meeks
a4ac00d854 Add zlib cflags and libs to configuration. 2017-03-30 12:09:12 +01:00
dewana-dewan
4322045667 tdf#106579 - serving gzipped file content
Change-Id: I320b22babf1bf65a0f1d4b1809a6ffb1f5ec8344
2017-03-30 12:09:12 +01:00
Jan Holesovsky
1d335b92ce Avoid extensive warning about a normal situation.
Change-Id: Ie67a12847afddac087f74e4872744b2b8bb07b1e
2017-03-30 11:21:10 +02:00
Ashod Nakashian
7d3f5c0d2b wsd: terminate DocBrokers asynchronously
Remove locks and replace with isCorrectThread
assertions instead.

Crash recovery still needs some work, but
otherwise tests are clean (91/94 pass).

Change-Id: I9ac3e21854447d19a8e6106487dfd8be00fcf5ef
2017-03-30 02:19:24 -04:00
Ashod Nakashian
00f8232652 wsd: simplify getNewChild
Change-Id: Id939025fabdcd81ee3ab5ba3ae6c4ed446944a2a
2017-03-30 02:19:24 -04:00
Ashod Nakashian
2fa34440c5 wsd: handlePostRequest no longer blocks
Change-Id: Id5054ce3b8d5937154493959b1e71e1a0c7387bc
2017-03-29 23:55:19 -04:00
Ashod Nakashian
492b818022 wsd: warn if isCorrectThread will fail
Change-Id: I362b23e651c00a6514bd1e44fa0961269252bcdd
2017-03-29 23:55:19 -04:00
Ashod Nakashian
48ad9a2472 wsd: ClientSession::isLoaded -> isAttached
Since this doesn't necessary mean the document
was loaded completely (as the similarly named
flag in DocumentBroker signifies) rather that
the session was added to DocumentBroker.

Change-Id: Ibfc702bbd111ade2715dcb28ac3aa4e9e8e025dd
2017-03-29 23:55:19 -04:00
Ashod Nakashian
30d58f96a4 wsd: avoid unnecessary temp string construction
...when sending text messages over socket and
make return value indicative of success/failure.

Change-Id: Ie4d99103b0d49d238152f7da3155ebcb6ccd4e22
2017-03-29 23:55:19 -04:00
Ashod Nakashian
d77ede8954 wsd: consistent naming sendFrame -> sendMessage
Change-Id: I06c6bb42392a8982a8bb232eee33ece4c8dfc451
2017-03-29 20:03:01 -04:00
Henry Castro
ebf6bb389e loleaflet: simplify date format of the annotation object
Change-Id: I4d7adfa93f03b8fd639fd701066ed83b41a1bd82
2017-03-29 15:26:05 -04:00
Henry Castro
dc7cbaef0e loleaflet: re-work the arrangement of annotation objects
Change-Id: Idce433835bed16b943306e6ad1bb888f5e9e1ee5
2017-03-29 14:55:36 -04:00
Pranav Kant
9107b012e7 loleaflet: Prevent hscrollbar coming over context menu
Change-Id: Ie4f0fc67aad64e93fe4abc8ac624decc128f59b0
2017-03-28 18:47:18 +05:30