Commit graph

4727 commits

Author SHA1 Message Date
Ashod Nakashian
b9c900d459 wsd: format the time directly in the log prefix
Change-Id: I6ad5faf8fdfa16831863bf4b8fa0568e88d0d0f8
Reviewed-on: https://gerrit.libreoffice.org/33416
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-23 04:33:09 +00:00
Jan Holesovsky
fbf3249fce Debug console: Add a setting to disable going to inactive state.
Combined with the automatic typing, very useful for testing with many users
connected.

Change-Id: Ia3dd9ff59b81849a740d65e8e1ee8ce9918ce843
2017-01-20 13:18:45 +01:00
Jan Holesovsky
717e0fb4d4 Rename Close -> Close document.
Change-Id: I7e10e4e8f24f863483f9332719cdc1a00d766f25
2017-01-19 11:44:41 +01:00
Andras Timar
ee1b291a91 loleaflet: updated pot files
Change-Id: Ia19360f624ad9a6fc4aa2db459d95f107ce5261b
2017-01-19 11:02:26 +01:00
Andras Timar
f9beb022e6 loleaflet: l10n of RecalcPivotTable and ReplyToComment commands
Change-Id: Ic322e1559858e7338074d0f85761f272b47f5ce2
2017-01-19 11:00:06 +01:00
Marco Cecchetti
c466c77fe2 Loleaflet - Calc - Added context menu command RecalcPivotTable
Change-Id: Idc750b37dddfee3b8c451aa31a679e4869f5a6ee
Reviewed-on: https://gerrit.libreoffice.org/33272
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2017-01-18 15:26:44 +00:00
Tor Lillqvist
55010980aa Avoid misleading logging
If Poco::Bet::WebSocket::receiveFrame() returns 0 or -1, flags is
likely meaningless.

Change-Id: Ia1d7cbcbfc338f9d0c60e14a6b460ddc090d0b6d
2017-01-18 15:45:33 +02:00
Miklos Vajna
0026f580a3 wsd: clean up redundant .c_str() call
Change-Id: I83e6160dec6cdbd8b621e1b783c9ea51be6b9125
2017-01-18 10:39:20 +01:00
Jan Holesovsky
1cf4334ec6 partpagerectangles is useless, and causes trouble for many documents.
When invoked too early after the document load, on slower servers it is
executed before the layout of the document is performed, leading to crashes.

It is useless for loleaflet, so let's disable it here, and remove it in
master for good.

Change-Id: Icf08d9df5efc8b0488c94048803e703b40f67e24
2017-01-17 19:18:54 +01:00
Jan Holesovsky
91bf720ba3 Fix error handling in reading of the cached values.
Change-Id: I9f56f09786feb11326707d19cc0367a027ebefff
2017-01-17 16:55:20 +01:00
Andras Timar
7c111a4be2 loleaflet: update pot files
Change-Id: Ie81b9c7b4fb5f3d74f63c15d3b1e64661afc5b9f
2017-01-17 14:57:25 +01:00
Andras Timar
48b14a5240 loleaflet: grammar, '0 user' -> '0 users'
Change-Id: If2251c0dc302752820f7a6f70a4a81431a9fc6f2
2017-01-17 14:55:56 +01:00
Miklos Vajna
4b980530e5 common: remove unused using declaration
Change-Id: I51d4d1f555ed5508370e4b9a7b8f04f266a2ca4a
2017-01-17 09:58:50 +01:00
Ashod Nakashian
73cd57d09c wsd: not spawnining is not failure to rebalance children
Change-Id: Iab29073a610ba19f3c25584fbdd08a7407258e1b
Reviewed-on: https://gerrit.libreoffice.org/33201
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-17 04:13:13 +00:00
Pranav Kant
962cc570cd loleaflet: More document space, use space reserved for scrollbars
Don't give extra pixels to scrollbars and reduce the document
area that is visible on the screen. Instead put these scrollbars
on top of the content and show them only when user hovers over
the scrollbar.

Change-Id: I7f7b34d0efde24bfad04324f5dfe3e3e35c752fc
2017-01-16 20:27:46 +05:30
Miklos Vajna
2c978b0359 wsd: these enum values are intentionally from different enum types
Which is dangerous in general, but here the values are from
non-overlapping ranges. Make it a bit more explicit that this is not an
accident.

Change-Id: I56897473a755e28cd9e7f74ceacecbab2db5e829
2017-01-16 13:50:16 +01:00
Tor Lillqvist
32b92dcd91 Bin default values for parameters that were defaulted at just one call site
Change-Id: I965b0be1ad4f706a06d06d5c6c3f940c1b3cc33c
2017-01-16 14:05:10 +02:00
Tor Lillqvist
79e08f3de2 Drop parameter that always was defaulted anyway
Change-Id: I6eee99db120e8a4aeb0e27586390bdc1bad9e219
2017-01-16 12:59:03 +02:00
Tor Lillqvist
2f900a3a1d Skip unit-oob.la for now as loading it fails with an undefined symbol
Which is not odd, as it seems to be a forkit process that tries to load
unit-oob.so, and the symbol in question,
UnitWSD::testHandleRequest(UnitWSD::TestRequest,
UnitHTTPServerRequest&, UnitHTTPServerResponse&), is in LOOWSD.cpp.
Oh well. Whatever.

Change-Id: I0e0409b7247acdcd00e830d6fa63e73f27ea6c3a
2017-01-16 11:23:58 +02:00
Pranav Kant
f182c53a66 loleaflet: Override default evo-pop z-index
... so that these pop ups doesn't come over the inactive overlay.

Change-Id: I2e4ff68da7549e42283211ef4aed04d0efe7e6f5
2017-01-16 13:45:18 +05:30
Pranav Kant
84c73eccb2 Fix fontcolor, backcolor popup getting truncated
Open them from the right edge of the popup to the left and wrap
them inside wrappers to make it possible.

Change-Id: Ib97fe6a3e306c8cc8612304b53ec42607234d5a7
2017-01-16 13:45:18 +05:30
Pranav Kant
6901ad9251 tdf#103777: Fix inserttable popup truncates when no space on right
Easy solution is move the popup to open from its right edge
instead of the left.

This also overrides overflow: hidden from w2ui-toolbar class,
that doesn't seem to have any side-effect, hopefully there really
isn't.

Change-Id: Iab258cf7e3473b178aa9acdb746b51a5ca582b46
2017-01-16 13:45:06 +05:30
Pranav Kant
ebd5b377d7 Fix z-index of insertable popup
Reduce it to 1000, its sufficient and also allow inactive overlay
to come over the popup, not under it as was before this commit.

Change-Id: If078dc929027dfb938000c5a0135c83704da7d6f
2017-01-16 12:45:57 +05:30
Ashod Nakashian
6246e74433 wsd: copy jail files when symlinking fails
Change-Id: I1f56d1489820a0689495e09151101d41a2322b82
Reviewed-on: https://gerrit.libreoffice.org/33143
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 06:27:45 +00:00
Ashod Nakashian
42b11e21af wsd: unittest for document load failure validation
Change-Id: I798fa411ab0fcefa6ae1d85e69d8d77f5ca5c919
Reviewed-on: https://gerrit.libreoffice.org/33142
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 06:27:00 +00:00
Ashod Nakashian
dc57cf8d3c wsd: 0-byte files are valid and LO loads them as new docs
Change-Id: Icf0cdd05ca7397f29bf66139d4ef15ef86ec05fd
Reviewed-on: https://gerrit.libreoffice.org/33141
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 06:26:22 +00:00
Ashod Nakashian
6b3d2bd7ce wsd: notify the user when document loading fails
Also do not segfault in the event.

Change-Id: I80c4c5c0d1d5f1a4cde9a6a3458f69a3df9dc647
Reviewed-on: https://gerrit.libreoffice.org/33140
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 06:26:04 +00:00
Ashod Nakashian
63dd8fca9b wsd: improved forkit crash recovery
Refactored the forkit process wait and
re-fork into separate function.

Change-Id: If6106ea3820d10b4448bb27740d757afcea4779f
Reviewed-on: https://gerrit.libreoffice.org/33137
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 02:17:10 +00:00
Ashod Nakashian
bccb2fcad6 wsd: forkit process id is now a static member
Change-Id: I4bb6a419a83ecd30745681848e93629658baa763
Reviewed-on: https://gerrit.libreoffice.org/33136
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 02:15:19 +00:00
Ashod Nakashian
c74c2b8f47 wsd: increment outstanding forks counter when forking
Change-Id: I6360ea582cc060c51e54fe8bb55eac2f709fbabc
Reviewed-on: https://gerrit.libreoffice.org/33134
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 02:14:07 +00:00
Ashod Nakashian
f3fb3beeea wsd: block new requests when recovering forkit
Change-Id: Ibed650b52f2398cd336332b5264439752ff9e290
Reviewed-on: https://gerrit.libreoffice.org/33133
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 02:13:38 +00:00
Ashod Nakashian
e3aec0e6c4 wsd: detect and fail child forking when forkit is down
Change-Id: I97ba133b0285403b7dfa4b6a6cbef26b818dcaf3
Reviewed-on: https://gerrit.libreoffice.org/33132
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 02:11:33 +00:00
Ashod Nakashian
818329d66e wsd: update outstanding forks only on successfull write
Change-Id: I312b3f860d98a31e8a28742915df32eb7e737037
Reviewed-on: https://gerrit.libreoffice.org/33131
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 02:10:20 +00:00
Ashod Nakashian
373b464645 wsd: logs and cosmetics
Change-Id: I67b0a929a50b05cd44de056ce6f8baafb8574dbf
Reviewed-on: https://gerrit.libreoffice.org/33130
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 02:09:41 +00:00
Ashod Nakashian
b1ff72e13f wsd: move shutdown web socket helper into LOOLWebSocket
Change-Id: Ide377fe3a8c950490bb6c04382464f0fdfd66088
Reviewed-on: https://gerrit.libreoffice.org/33129
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 02:08:28 +00:00
Ashod Nakashian
be5659d534 wsd: simplify preforking of children
Forkit always spawns a single child.
This is done to validate that forking
children is working and to be ready to
serve clients.

However, this initial forking can be slow,
mostly due to cold file reading and loading.
This often causes multiple child spawning
and other undesirable effects.

This patch makes sure that a single child
is always at the ready before proceeding
while simplifying the code. Otherwise, if
forkit fails to fork a single child within
4x an expected command-timeout (currently 5
seconds) then we fail the service altogether.

Change-Id: Ie2a441a2479db98a54f7fb9b9c8e98cda2f07c1c
Reviewed-on: https://gerrit.libreoffice.org/33128
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 02:04:21 +00:00
Ashod Nakashian
bc36241d89 wsd: cosmetics
Change-Id: I250590b105dbfdd6a0589327fece752481253863
Reviewed-on: https://gerrit.libreoffice.org/33127
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:59:15 +00:00
Ashod Nakashian
05620be4c5 wsd: autosave on disconnecting based on loaded sessions only
When a client disconnects, we autosave only when there
are no other sessions. The idea being that it'd be
wasteful to save on every client disconnect, so long
that we have a later chance of saving.

This doesn't hold, however, when the only other
remaining session is one that had just connected
and hasn't loaded a view yet. WSD wouldn't
know about this, but when unloading the
disconnecting session, Kit will exit the process
as the last view is gone, losing all unsaved changes.

This patch tracks the sessions in WSD that have
loaded a view and takes that into account when
deciding to autosave on disconnect or not, thereby
fixing this corner case that may result in data loss.

Change-Id: I699721f2d710128ed4db65943b9357dff54380f5
Reviewed-on: https://gerrit.libreoffice.org/33126
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:58:54 +00:00
Ashod Nakashian
a31e606a98 wsd: retry loading DocumentBroker and adding session
In some cases when the last session is destroying
and we expect the DocumentBroker to be removed,
while waiting for autosave, a new client might
connect to the very same document.

In those cases we shouldn't fail but should retry
loading the document again once it has been unloaded.

Change-Id: I97ebb73991b9739cfb4e93b7de9115bdb48fda7a
Reviewed-on: https://gerrit.libreoffice.org/33125
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:56:20 +00:00
Ashod Nakashian
1c67d9387f wsd: addSession now must be called under lock
Change-Id: I6148d7ac3edd88f922d258f39ea22b372dba84f0
Reviewed-on: https://gerrit.libreoffice.org/33124
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:55:10 +00:00
Ashod Nakashian
087f993040 wsd: use refactored createNewClientSession
Change-Id: I7d9128865eea6c5fd9f48b469fb35ede3c811b4b
Reviewed-on: https://gerrit.libreoffice.org/33123
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:53:59 +00:00
Ashod Nakashian
296d25d24c wsd: refactor create new client session
Change-Id: Ida08901563c5d2aa4e3708f8d21a7e7bc0685ac6
Reviewed-on: https://gerrit.libreoffice.org/33122
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:52:58 +00:00
Ashod Nakashian
fa795d8c9b wsd: refactor DocBroker session removal and cleanup
Change-Id: I7019aa7c0c44c6a02e2ee54f280e95fdf1bbe35c
Reviewed-on: https://gerrit.libreoffice.org/33121
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:52:16 +00:00
Ashod Nakashian
a06c23e18a wsd: refactor create new DocBroker
Change-Id: I3d099bfbd60d68ea0f6fcd38ddaddd4d74c1f017
Reviewed-on: https://gerrit.libreoffice.org/33120
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:52:00 +00:00
Ashod Nakashian
b8160c1c1a wsd: return 0 when fail to proc get memory
Change-Id: Ie7f0fdc031a71c76484705cfb2feee1744bbbd8b
Reviewed-on: https://gerrit.libreoffice.org/33119
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:49:07 +00:00
Ashod Nakashian
2be0d16e7b wsd: improved crash kit test
Change-Id: Iddc056383aa37bfe278d4f4003b56696b8f2bf13
Reviewed-on: https://gerrit.libreoffice.org/33118
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:48:43 +00:00
Ashod Nakashian
8cbf478bfe wsd: improved getErrorCode
Change-Id: I89b36b5e69cbbe05ac7b1730633d695bc5185823
Reviewed-on: https://gerrit.libreoffice.org/33117
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:45:03 +00:00
Ashod Nakashian
e0dcc7a972 wsd: retain the Core callback object
Since we have no control over when Core might
use the callback object, we should retain it
indefinetely. This is safer and has no impact.

Because Core uses a timer to flush callbacks,
it can issue the callbacks for a view after
it had been destroyed, thereby segfaulting.

Change-Id: I2ef87234d0b4dff83ded320b480abce53188fec4
Reviewed-on: https://gerrit.libreoffice.org/33116
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:44:39 +00:00
Ashod Nakashian
6bcd793a8b wsd: don't exit Kit process when new sessions exist
When a new session is created in Kit, it means
a new view is about to be created. However if
in the interim the last session closes and
view is destroyed, Kit should not exit.

Instead, we unload the document and
prepare to reload it again.

Change-Id: Idbc3a663b4d6921440736499f2d439fc2b7e33dc
Reviewed-on: https://gerrit.libreoffice.org/33115
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:43:20 +00:00
Ashod Nakashian
0e5a75c46b wsd: exit the kit only when no more sessions exist
Change-Id: I26cd8876fd564f537dac4fb1748aee5b4dbdff04
Reviewed-on: https://gerrit.libreoffice.org/33114
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-16 01:43:08 +00:00