Commit graph

1656 commits

Author SHA1 Message Date
Pranav Kant
631ae0f11f loolwsd: Get the first *live* connection
Sometimes there are situations when `connection` map is filled
with dead sessions. We don't want to deal with those dead ones.

Change-Id: I00dda77c39b5adbba69421eace0be0159e02505c
Reviewed-on: https://gerrit.libreoffice.org/22207
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-19 21:57:10 +00:00
Pranav Kant
10db02c208 loolwsd: Move document related callback logic to Document class
There are 5 LOK callbacks currently that are triggered on LOKit,
and not on LOKitDocument. These include status indicators, and
document password callbacks during document load. Lets move all
the callbacks called during document load in the Document container
itself, and keep the callbacks called after document load in the
Child session.

Change-Id: I8e43c2baaa12023b34822954dd494780ee6dd7ca
Reviewed-on: https://gerrit.libreoffice.org/22206
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-19 21:56:50 +00:00
Pranav Kant
a2549e3df7 loolwsd: Disconnect the child if there is no client
Don't let them hanging around, otherwise we would keep sending
messages to a dead peer (ToClient) indefinitely.

Change-Id: I9d4bb6edee351bd31f1faa30deaa4f37c3c7d031
Reviewed-on: https://gerrit.libreoffice.org/22465
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-19 21:56:12 +00:00
Pranav Kant
7ecde23422 loolwsd: Remove superfluous registration of callback
Our DocumentCallback is smart enough which checks all the
running connections, and send the callback notification to all of
them. Registering the callback only during the first loadDocument
call should be enough.

Change-Id: I82bcb9525814dae14def3bfb6c088337d0d0ea3c
Reviewed-on: https://gerrit.libreoffice.org/22202
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-19 21:55:50 +00:00
Pranav Kant
b902d80ec7 loolwsd: Add a unit test for password protected documents
Change-Id: Ia675d2750e11cb466b2e80b8f36f2ef04e0a7a09
Reviewed-on: https://gerrit.libreoffice.org/22466
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-19 21:55:07 +00:00
Pranav Kant
3667bef9a6 loolwsd: Handle password protected documents
Change-Id: Iceb5bb598ef1517bf640994c27bad4ca36bd72c1
Reviewed-on: https://gerrit.libreoffice.org/21894
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-19 21:49:45 +00:00
Ashod Nakashian
13f9b7a2db loolwsd: Storage Abstraction support
An abstract Storage abstraction class is added.
There will be a factory to instantiate concrete
implementation for a given backend.

For WebDAV and similar hosted backends, authentication
and authorization will be done by the implementation
with the help of the Auth abstraction.

Change-Id: I38ec5dad4c2c4ce16df30d65826df96751b10e2d
Reviewed-on: https://gerrit.libreoffice.org/22513
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-19 21:45:25 +00:00
Ashod Nakashian
d8df19d064 loolwsd: Authentication and Authorization support
An abstract class to request an access token, given
an authorization grant. The class should be
specialized for each authentication/authorization
type we support.

Currently it's not enabled in the code as it's
an early stage in developing an general API.

Change-Id: I4f2efd376d575640bd3e17c7257994020b11bbe8
Reviewed-on: https://gerrit.libreoffice.org/22512
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-19 21:44:55 +00:00
Marco Cecchetti
049633a644 loleaflet - user view does not follow the cell cursor
Change-Id: I7e877847de0c2c644948b47daa0bff0e5f7da3a0
Reviewed-on: https://gerrit.libreoffice.org/22489
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
2016-02-19 10:21:12 +00:00
Miklos Vajna
e3cc05ddcd loolwsd: fix indentation 2016-02-19 08:38:02 +01:00
Henry Castro
7037f07a38 loolwsd: re-work cppunit test websoket 2016-02-18 17:12:16 -04:00
Pranav Kant
10fcfdd210 loleaflet: Fix all ESLint errors
And we are now finally in a clean state.

Change-Id: Ifd949d925cc758a007d036e1de9df7dafd911c40
2016-02-19 01:02:55 +05:30
Pranav Kant
5332e3f48c loleaflet: Make tile benchmark test work again
This broke after we introduced 'tilecombine' message.

Change-Id: Id273a859b22cac6b50ba759241d0b36d27829700
2016-02-19 00:32:03 +05:30
Pranav Kant
9cf0cbf3a6 loolwsd: Allow sending 'tilecombine' messages with 'timestamp'
... and revert back with this parameter in 'tile:' response
messages so that client can identify the response.

This is also required to make client-side tile benchmarking tests
work again.

Change-Id: I307aabf622b17f4dce727d1faf3c83eb566ba905
2016-02-19 00:32:03 +05:30
Pranav Kant
cabb9d7fc3 loolwsd: Add a missing command, 'tilecombine' to documentation
Change-Id: Iedefef83cefca6e88e9676a0bc810ecb766b59ee
2016-02-19 00:32:03 +05:30
Henry Castro
e9de068423 loolwsd: fixes coding style naming convention rules in Util files 2016-02-18 13:00:37 -04:00
Tor Lillqvist
3d817e914e When running against a LOK_PREINIT=1 loolwsd, for some reason we get a BOM
So skip that.
2016-02-18 18:37:02 +02:00
Tor Lillqvist
7a97e1a1bc Remove pointless duplicated information from a log line
The log lines automatically have information telling which process
they come from.
2016-02-18 18:37:02 +02:00
Pranav Kant
cfe15bddee loleaflet: Fix incorrect function invocation
Thanks to 'jake lintspec'

Change-Id: Ie6af9e003bcdede5ff65c8aca4b6ab2827908310
2016-02-18 21:55:12 +05:30
Henry Castro
10070b11a9 loolwsd: fixes coding style naming convention in LOOLKit.cpp 2016-02-18 12:22:30 -04:00
Pranav Kant
f8b104b88c loleaflet: Silence ESLint errors
Moral - Run 'jake lint' before committing your code.

Change-Id: I401567360dfdfb16e99dafc3171ac158a90605e4
2016-02-18 21:34:46 +05:30
Henry Castro
87718e288d loolwsd: fixes coding style naming convention rules in LOOLBroker.cpp 2016-02-18 10:07:37 -04:00
Miklos Vajna
bad184ced8 loolwsd: -Werror=shadow 2016-02-18 14:45:44 +01:00
Tor Lillqvist
54a2ca8b2b Fix typo 2016-02-18 15:42:45 +02:00
Tor Lillqvist
dd33957904 Mention that the "no Hungarian prefixes" rule is ignored 2016-02-18 12:10:48 +02:00
Henry Castro
76f405af98 loolwsd: add Log::info Preinit stage OK 2016-02-17 23:56:30 -04:00
Ashod Nakashian
7aeeab46f8 loolwsd: Admin manager added with a sample stats command
Change-Id: I7d3c1a5ab573d20d285c1c184cfb88ace17991f8
Reviewed-on: https://gerrit.libreoffice.org/22430
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-17 15:30:02 +00:00
Tor Lillqvist
46e2446db1 Update from LO master 2016-02-17 15:28:00 +02:00
Tor Lillqvist
446035ca69 Make the loTemplate path work inside the chroot, in the preinit case
Create a corresponding symlink inside the chroot.

Now a LOK_PREINIT=1 loolwsd starts up for me successfully. (Note: I
did not say whether it actually works. I don't know yet.)
2016-02-17 15:26:43 +02:00
Pranav Kant
da729a2b74 loolwsd: Add missing callbacks
We have a new callback now in LO core.

Change-Id: I560e5e31d08cf2b9969b8c5f9614630c29ee89c6
2016-02-17 16:24:13 +05:30
Tor Lillqvist
268c48c473 Minor edit 2016-02-17 12:43:03 +02:00
Tor Lillqvist
86f1e5087c Say that running 'make check' is mandatory
(Too bad that it is broken after
9e3d5c0337f9cd1439d4b6b648eb6ac795ff792e.)
2016-02-17 12:35:15 +02:00
Andras Timar
d43cea2883 loleaflet: fix Khmer translation 2016-02-17 11:24:14 +01:00
Andras Timar
a178d445cd loolwsd: setcap loolkit 2016-02-17 10:42:00 +01:00
Andras Timar
6c761c297e loleaflet: use absolute URL 2016-02-17 10:38:43 +01:00
Andras Timar
4308d2a745 loleaflet: indentation 2016-02-17 09:41:49 +01:00
Pranav Kant
f6baed14c0 loleaflet: Handle outline levels as special case, for l10n
'Outline' is localized, 'Outline x', where x = number, is not.
Lets treat outline levels as special case so that we could get
their localized form also.

Change-Id: I96d1a0d715e5859f9d0f2da2c00c06232621555b
Reviewed-on: https://gerrit.libreoffice.org/22354
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
2016-02-17 08:33:25 +00:00
Pranav Kant
4947b8feb6 loleaflet: Change to browser language codes
The .po files imported from LO has some codes that browsers don't
recognize. Change them so that browsers recognize them.

Change-Id: Icf37812a579be171af33a62096b2326d6a66e3a4
Reviewed-on: https://gerrit.libreoffice.org/22370
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
2016-02-17 08:32:57 +00:00
Pranav Kant
816a43efb6 loleaflet: Added style translations
Translation of styles for writer, impress and calc
in all languages taken from LibreOffice translation submodule.

Change-Id: Id533463f63523cade53435d66ff85a90fc15736b
Reviewed-on: https://gerrit.libreoffice.org/22353
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
2016-02-17 08:32:14 +00:00
Henry Castro
a607159a8a loolwsd: catch exception requestTermination 2016-02-16 17:25:51 -04:00
Henry Castro
9b4099c41c loolwsd: check if the named pipes exists 2016-02-16 17:13:14 -04:00
Henry Castro
3ad641c7bd loolwsd: check if the pipe path exists 2016-02-16 17:04:21 -04:00
Andras Timar
b9856a7806 loleaflet: enable scrollHandler 2016-02-16 17:31:17 +01:00
Tor Lillqvist
33ecd5ea2d Introduce environment variable SLEEPKITFORDEBUGGER
Sleeps a "kit" process after fork() for the specified number of
seconds to give you time to attach it in the debugger.

Also, if set, have the parent ("broker") process wait indefinitely the
fifo to become writable.

Also clarify the informative message for SLEEPFORDEBUGGER.
2016-02-16 10:49:42 +02:00
Ashod Nakashian
90776a3c0d loolwsd: control preinit vs fork using envars and disable bind-now
Change-Id: I63dffa18da69751ab72463bb64065d235d811db5
Reviewed-on: https://gerrit.libreoffice.org/22381
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-15 23:18:24 +00:00
Tor Lillqvist
b276c3541c Probably we should pass loTemplate to globalPreinit(), not loSubPath
globalPreinit() does not run in a chroot as far as I see, so trying to
use loSubPath as an absolute path will not work. Probably what was
meant is loTemplate, then the libraries at least are found.
2016-02-15 22:59:03 +02:00
Tor Lillqvist
c62d612562 Clean up error reporing
If neither libsofficeapp.so or libmerged.so exist where we look for
them, say so explicitly.

Log the error message from dlerror(), too.

Log the mesage about not forking in all cases when doing that, not
just if lok_preinit is not found.

Execing is not an alternative to fork(), spawning is.
2016-02-15 22:33:56 +02:00
Andras Timar
71e283ca9d loleaflet: fix a typo in reference.html 2016-02-15 19:04:23 +01:00
Andras Timar
5cdbe3e837 loleaflet: fix unclosed tags in reference.html 2016-02-15 18:58:06 +01:00
Andras Timar
dbed8b8497 loleaflet: l10n related file renaming 2016-02-15 10:41:28 +01:00