Commit graph

1857 commits

Author SHA1 Message Date
Ashod Nakashian
f5bf8aa64a loolwsd: support for imgsize field in tile and tilecombine messages
When sending back response of tile or tilecombine type the
payload of the PNG image is implicitly the remainder of
the WS message. While this works fine for single-tile cases
it prevents us from combining tile responses into one to
reduce latency and overheads.

Change-Id: Iefeeed7e1a46be322c973ccf74f2bdb668d7cf30
Reviewed-on: https://gerrit.libreoffice.org/25338
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-23 01:46:01 +00:00
Ashod Nakashian
126060fd7f loolwsd: TileCombined class to parse, serialize, represent tilecombine
Change-Id: I00457fc0f2cd9d987972a1d5b9a17c204d42984c
Reviewed-on: https://gerrit.libreoffice.org/25337
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-23 01:45:40 +00:00
Ashod Nakashian
f4fc6d0c29 loolwsd: new name=value pair parser for strings
Change-Id: I01c56f9c452fe0ac75b3d9f2aa67787c5bb4d8c6
Reviewed-on: https://gerrit.libreoffice.org/25336
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-23 01:45:18 +00:00
Ashod Nakashian
65ed424199 loolwsd: new tile performance test
Change-Id: I08d477ec5f04de9f82c49263f35ebbf38a968f31
Reviewed-on: https://gerrit.libreoffice.org/25335
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-23 01:44:36 +00:00
Ashod Nakashian
1134b17e96 loolwsd: logging
Change-Id: Ic08b32104db1154573b9e0774cda23167a5cddf3
Reviewed-on: https://gerrit.libreoffice.org/25334
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-23 01:42:55 +00:00
Ashod Nakashian
5d9140c3bb loolwsd: simplify checkBlackTiles test
Black tiles are returned when rendering fails.
This happened due to bccu#1610 where internally
core collected cell info on the first 1024 rows
only. Anything beyond that always failed.

This limitation is now removed using dynamic
array to collect the cell info.

Regardless, the test here needs only check that
the last tile (really, anything beyond the 1024th row)
doesn't return a black tile.

This single tile still takes over 10 seconds to render,
which is the other issue that Core suffers from when
collecting cell info on a huge tab.

Change-Id: I7a1a5b7c2b2ed2cc4399160e096be5e57895af77
Reviewed-on: https://gerrit.libreoffice.org/25333
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-23 01:39:20 +00:00
Henry Castro
22db071689 loolwsd: test: add checkBlackTiles 2016-05-22 19:53:24 -04:00
Henry Castro
166edb66eb loolwsd: test: move getDocSize to helpers 2016-05-22 18:52:36 -04:00
Ashod Nakashian
74304fc08e loolwsd: ChildSession error propegation and cleanup
Change-Id: I8e5c87b6989fd090c98ca35e2584a7dd6d1c6a60
Reviewed-on: https://gerrit.libreoffice.org/25267
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 16:34:54 +00:00
Ashod Nakashian
3f03860a79 loolwsd: moved and localized png bits to Png.hpp
Change-Id: I4f27143bc2e5f638c8e84c32616b2820136a20e5
Reviewed-on: https://gerrit.libreoffice.org/25266
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 15:57:57 +00:00
Ashod Nakashian
6e033a4c25 loolwsd: use TileDesc in LOOLKit
Change-Id: I8800cc5625db4b333933ec056649c3efbd486f68
Reviewed-on: https://gerrit.libreoffice.org/25265
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 15:56:14 +00:00
Ashod Nakashian
56ae463bea loolwsd: minor TileDesc comment fix
Change-Id: I35b11797151a26a1c420afa5296c67ca54a5bdc9
Reviewed-on: https://gerrit.libreoffice.org/25264
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 15:55:49 +00:00
Ashod Nakashian
44a0e5785e loolwsd: cout -> cerr
Change-Id: I80ee313621ce093d75f2c331f3fef6125a187a42
Reviewed-on: https://gerrit.libreoffice.org/25263
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 15:53:11 +00:00
Ashod Nakashian
fae850189d loolwsd: include cleanup and organization
A source file (.cpp) must include its own header first.
This insures that the header is self-contained and
doesn't depend on arbitrary (and accidental) includes
before it to compile.

Furthermore, system headers should go next, followed by
C then C++ headers, then libraries (Poco, etc) and, finally,
project headers come last.

This makes sure that headers and included in the same dependency
order to avoid side-effects. For example, Poco should never rely on
anything from our project in the same way that a C header should
never rely on anything in C++, Poco, or project headers.

Also, includes ought to be sorted where possible, to improve
readability and avoid accidental duplicates (of which there
were a few).

Change-Id: I62cc1343e4a091d69195e37ed659dba20cfcb1ef
Reviewed-on: https://gerrit.libreoffice.org/25262
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 15:52:54 +00:00
Ashod Nakashian
b2fa9d6f2e loolwsd: moved TileDesc into own file
Change-Id: I54162f7ebaaca51f9c52a30af1e278db212562fa
Reviewed-on: https://gerrit.libreoffice.org/25261
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 15:49:10 +00:00
Ashod Nakashian
9347adc66f loolwsd: UnitPrefork can't use the more recent child
Change-Id: I6f60761498e61d9ceb48bc5f9a41967152293590
Reviewed-on: https://gerrit.libreoffice.org/25246
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:47:39 +00:00
Ashod Nakashian
5a0162f95c loolwsd: cleanup and improvements to UnitPrefork
Change-Id: I15394fa9199f0d2489a184d4c07602da02cbab64
Reviewed-on: https://gerrit.libreoffice.org/25245
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:43:45 +00:00
Ashod Nakashian
958f6ffcbd loolwsd: fix UnitPrefork deadlock/corruption
Reading from the socket in the test is not
thread-safe, and was causing all sorts of
problems.

The new code adds a test API and reads the
incoming data through it and not directly
from the socket. In addition, the read is
synchronized.

Change-Id: Id13821a40a59e32fd8a14f733a47306aee42ada8
Reviewed-on: https://gerrit.libreoffice.org/25244
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:43:15 +00:00
Ashod Nakashian
71cd345fd6 loolwsd: cleanup and reformatting of PrisonerSession
Change-Id: I26ea5a1bf5010458b1da9b2d25b4236ef104c4b9
Reviewed-on: https://gerrit.libreoffice.org/25243
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:41:28 +00:00
Ashod Nakashian
80786cc79d loolwsd: propagate error from forwardToPeer
Change-Id: Icea02f3ca48f9f4eb8aed14181c7b6101bfa1c2e
Reviewed-on: https://gerrit.libreoffice.org/25242
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:40:01 +00:00
Ashod Nakashian
81d7ccc2c3 loolwsd: handleInput returns socket send return
Change-Id: I9fb9fabad60993ef558803fb2d5cbfe8aa727f1d
Reviewed-on: https://gerrit.libreoffice.org/25241
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:33:08 +00:00
Ashod Nakashian
3cc295b7d2 loolwsd: remove thin wrapper
Change-Id: Id84a404aecd7f553665e65c1959dcca45309199e
Reviewed-on: https://gerrit.libreoffice.org/25240
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:29:51 +00:00
Ashod Nakashian
32ee3d0650 loolwsd: socket sending returns success or failure
Change-Id: I3f486b236e5b6a83292a9d7f3e4931e5235f3a33
Reviewed-on: https://gerrit.libreoffice.org/25239
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:28:16 +00:00
Ashod Nakashian
7f62bb54fd loolwsd: unified forwardToPeer
Change-Id: Ib12626adad1ff3cf647d6a32f9b1eae35f794b2f
Reviewed-on: https://gerrit.libreoffice.org/25238
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:26:15 +00:00
Ashod Nakashian
c6454ff9ed loolwsd: protect against null lok::Document
Change-Id: Iffa9c7f708d04bede5d98ba311e499a0874605fc
Reviewed-on: https://gerrit.libreoffice.org/25237
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:22:34 +00:00
Ashod Nakashian
46c5ce3041 loolwsd: remove unnecessary dispatchChild and simplify
Change-Id: I6edb5a51bc2d58b58f53f6689e9d37613fc508de
Reviewed-on: https://gerrit.libreoffice.org/25236
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:20:59 +00:00
Ashod Nakashian
7444ad4348 loolwsd: check for null WS before shutdown
Change-Id: I47ad44cdfdbcac61bf64bf9e698f23c502a748a5
Reviewed-on: https://gerrit.libreoffice.org/25235
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:19:46 +00:00
Ashod Nakashian
f3a1e6e81e loolwsd: replenish children on finishing a prisoner socket thread
Change-Id: Id6b1a12439431819910f6c5c99cb630b48c87805
Reviewed-on: https://gerrit.libreoffice.org/25234
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:19:27 +00:00
Ashod Nakashian
e797ae9861 loolwsd: logging improvements
Change-Id: Ic28e8f523f67e3339cae20adcf6cab966b610f24
Reviewed-on: https://gerrit.libreoffice.org/25233
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:19:04 +00:00
Ashod Nakashian
6ce9868a9c loolwsd: more frequent zombie reaping in forkit
Change-Id: I10d859880cfd933c38572852f506eedf603e8fad
Reviewed-on: https://gerrit.libreoffice.org/25232
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-21 03:16:56 +00:00
Andras Timar
625de77dd3 loolwsd: packaging, setcap cap_sys_admin=ep /usr/bin/loolmount 2016-05-20 15:51:05 +02:00
Andras Timar
2c2073231e loolwsd: fix deb dependency, will depend on collaboraoffice metapackage 2016-05-20 15:46:56 +02:00
Andras Timar
baedc87858 add LibreOfficeKit.hpp to tarball 2016-05-19 17:24:11 +02:00
Miklos Vajna
b0b9648e28 Remove unused 'using' decls
Change-Id: Ibdcf0a0fe2390712059e6e70c47bd60f6416c6be
2016-05-19 16:42:41 +02:00
Ashod Nakashian
312b9ee6cb loolwsd: less naked pointers
Change-Id: I5f352a80a181f410c002d60b9ec5c61fb88d0cf0
Reviewed-on: https://gerrit.libreoffice.org/25095
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-18 11:32:16 +00:00
Ashod Nakashian
5a8b3c8169 loolwsd: LibreOfficeKitDocument* -> shared_ptr<lok::Document>
Change-Id: Ie94882482729e4d6bb69c9f92badd375231fece2
Reviewed-on: https://gerrit.libreoffice.org/25094
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-18 11:31:10 +00:00
Ashod Nakashian
35ecc2b8d0 loolwsd: LibreOfficeKit* -> shared_ptr<lok::Office>
Change-Id: I55cbd600a7000dbb356304c8f5493195c7778149
Reviewed-on: https://gerrit.libreoffice.org/25093
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-18 11:30:30 +00:00
Ashod Nakashian
a21bcc2341 loolwsd: LibreOfficeKitDocument* -> shared_ptr<lok::Document>
Change-Id: Iafc48317c225f93b7d58708dd26f04d6bb13988e
Reviewed-on: https://gerrit.libreoffice.org/25092
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-18 11:29:05 +00:00
Ashod Nakashian
8d24d5dbf2 loolwsd: new wrapper classes of LibreOfficeKit and LibreOfficeKitDocument
Heavily built on LibreOfficeKit's own class, this adds
logging and thread-safety (when lock is held).

Change-Id: If0f4b1f44b1982468c0d1e002b92e189b9d68a62
Reviewed-on: https://gerrit.libreoffice.org/25091
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-18 11:27:46 +00:00
Henry Castro
eb8350afd4 loolwsd: log info, rename to PrisonerSession 2016-05-17 18:38:56 -04:00
Henry Castro
6c31bd8bca loolwsd: log, rename to ClientSession 2016-05-17 18:33:37 -04:00
Ashod Nakashian
76991dd325 loolwsd: disable editlock in multiview
Change-Id: I4df2d8a321e160ce226c2e22aa754cd6e5b2c755
Reviewed-on: https://gerrit.libreoffice.org/25063
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-17 13:57:36 +00:00
Ashod Nakashian
b41f0a6ea3 loolwsd: ChildProcessSession -> ChildSession
Change-Id: I24f001cb4d17d1ddc5cbd4f48134ec4eb8777afb
Reviewed-on: https://gerrit.libreoffice.org/25062
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-17 13:56:45 +00:00
Ashod Nakashian
7ce6e67731 loolwsd: ChildProcessSession.{cpp,hpp} -> ChildSession.{cpp,hpp}
Change-Id: Ic0c7f0992c9024d8fb8478b41205394372094af8
Reviewed-on: https://gerrit.libreoffice.org/25061
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-17 13:56:21 +00:00
Ashod Nakashian
7f767e7cf6 loolwsd: MasterProcessSession splitting: removed MasterProcessSession
Change-Id: If132e8787f6ed7fa21d235cc355d7a29395b3c4d
Reviewed-on: https://gerrit.libreoffice.org/25049
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-17 03:23:07 +00:00
Ashod Nakashian
d1d5cff3e3 loolwsd: MasterProcessSession splitting: moved forwarding and shutdown
Change-Id: I3c84d9be328e58263cac9c3b1b501ef91ea30170
Reviewed-on: https://gerrit.libreoffice.org/25048
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-17 03:22:41 +00:00
Ashod Nakashian
410123e2aa loolwsd: MasterProcessSession splitting: moved dispatchChild
... and PrisonerSession ctor

Change-Id: I4c3707d71eb308ab739e5c264be1905453f9d719
Reviewed-on: https://gerrit.libreoffice.org/25047
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-17 03:22:10 +00:00
Ashod Nakashian
b2881306f1 loolwsd: MasterProcessSession splitting: moved input queue
Change-Id: Id1c2b0f76a96ca48905d354c02a96b35ba29fadc
Reviewed-on: https://gerrit.libreoffice.org/25046
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-17 03:21:44 +00:00
Ashod Nakashian
1e84102aae loolwsd: MasterProcessSession splitting: move edit lock
Change-Id: I8339f28cb9ed0ed1a5b1f4cf38d6083450cb4fdc
Reviewed-on: https://gerrit.libreoffice.org/25045
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-17 03:19:18 +00:00
Ashod Nakashian
8acc293af5 loolwsd: MasterProcessSession splitting: mark document load failure
Change-Id: I3167b9ddb985e20ff500962a856a70888abf0684
Reviewed-on: https://gerrit.libreoffice.org/25044
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-05-17 03:18:50 +00:00