Commit graph

356 commits

Author SHA1 Message Date
Michael Meeks
f2c6facb29 Don't combine tiles a long way from each other.
We currently combine only horizontally, but ctrl-right arrow in
calc can throw us to the other side of the sheet, creating a very
large area to re-render.

Change-Id: I7125ab815e3de1296b3af32632626005eeee0ec9
2019-07-26 10:12:00 +01:00
Henry Castro
393db38ce2 kit: take ownership when saving a document template
Otherwise, it causes error log:
ERR  Cannot save docKey [/filename], the .uno:Save has failed in LOK.

Change-Id: Ic99807848def72f76471c4f999ebeed9a7c0a2c8
2019-07-25 07:59:24 +02:00
Henry Castro
760864870f wsd: introduce "TemplateSource" WOPI property
Change-Id: I9df1d5d0d4be7fe10ee15c40c36195c86ccf857e
Reviewed-on: https://gerrit.libreoffice.org/76190
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2019-07-24 12:10:15 +02:00
Tor Lillqvist
f7a70ba9d3 tdf#125681: Get rid of ChildSession::getDocumentMutex() and associated code
Now with the "Unipoll" concept all this locking is unnecessary as the
kit process is single-threaded, and actually it is harmful as the bug
shows.

Michael explains in chat:

But in fact - we should be a single threaded kit process there now. We
are protected by the solar-mutex (which is recursive) while our
locking is not. This was the whole point of the Unipoll refactor: to
remove the extra threads, complex queues, etc. etc. I just left the
mutexes. Even a recursive mutex won't work there; since it needs to be
drop-able and transferable to another (LOK internal thread) in Yield,
so - we should remove them.

Change-Id: I7d1e1dfb0e20f14134be5f81da057539b0f86ab9
Reviewed-on: https://gerrit.libreoffice.org/75849
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2019-07-24 12:09:24 +02:00
Jan Holesovsky
92f83a84b0 android: Don't re-initialize LibreOfficeKit over and over again.
LOK is designed to be initialized just once, so avoid the
re-initialization here.

Change-Id: I7ad9235c36d5a4dee85437a95f358d13ca25a2a9
2019-06-20 14:11:13 +02:00
Jan Holesovsky
b2b3ccdee5 gtkapp: Avoid warning.
The gtkapp is to test functionality, not performance.

Change-Id: I357777f7bd5609af1e8b6658607c73b23b78e857
2019-06-20 14:09:37 +02:00
Miklos Vajna
54e5a1000b kit: mark Document as final
Document has to be final: its constructor calls sendTextFrame(), which
calls the virtual sendFrame(). So the only situation where this code
works correctly is when Document is never subclassed.

Change-Id: I7c13abdae57d9e1ba3416ec1963b58bce0d42e6f
2019-06-04 09:15:38 +02:00
Miklos Vajna
a4fd83794e Remove unused using declarations
Change-Id: I0d4336fc8f85a18b2c41de233166e725166385f6
2019-06-03 09:06:11 +02:00
Jan Holesovsky
ea2b77ce07 android: Make the LOK document accessible from the JNI.
For some operations like printing to PDF, we need to have access to the
LOK API to perform eg. saveAs().  iOS is using an extern for that, but
given that it is needed for Android too, let's introduce a proper getter
for that.

Change-Id: Ie2340a4ee0bdf9dc46e799e2567a828172d9a67d
2019-05-31 09:20:34 +02:00
Miklos Vajna
106b7fbd8e TestStubs: add more stubs for sanitizers
This is needed to compile the tests without undefined references when
using sanitizers. Previously it was possible to run loolwsd, but
building the tests failed.

Change-Id: I6babd1c43816cb2387c82316cc1bf9ff14d7a068
2019-05-28 09:10:45 +02:00
Tor Lillqvist
d59956aa3d Use consistent terminology in LOG_INF() calls around runLoop() call
Change-Id: I46d954250447dea6ffa60c6e0e341f23a9ad4ff9
2019-05-16 11:41:56 +03:00
Tor Lillqvist
8ae35c6348 No need to call Log::shutdown() in a mobile app
The process never exists voluntarily. It is killed by the OS when
inactive and its resources are needed.

Change-Id: I9a7fa8200a44bba8dfcd2b09882f1b87814025be
2019-05-16 11:41:08 +03:00
Michael Meeks
70eb802184 unipoll: remove now redundant SocketPoll parameters.
Change-Id: I8308a0b503db34ac43658a5461005a32132d392f
2019-05-10 18:03:11 +01:00
Miklos Vajna
eb376d122f Fix recently introduced clang warnings
kit/Kit.cpp:2166:17: error: private field '_socketPoll' is not used [-Werror,-Wunused-private-field]

/usr/lib64/gcc/x86_64-suse-linux/7/../../../../include/c++/7/ext/new_allocator.h:140:22: error: destructor called on non-final 'Document' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-abstract-non-virtual-dtor]

Change-Id: I47849db2b0bc64e811577e3a8cede0e2d2c0e2e6
2019-05-10 16:39:10 +02:00
Michael Meeks
73dc711e0a Unipoll: terminate repeated polling loop on wakeup.
Wakeup wakes up the nested SocketPoll::poll nicely, but that's no
use if we immediately ignore that and re-poll, so shorten the
timeout in this case.

Change-Id: I927d2375b92c9ce6c6ebe3f0ab33e2863894e2ef
2019-05-10 15:13:40 +01:00
Michael Meeks
8360f2c951 unipoll: process lots of events at once.
Change-Id: I8b0a37d114a55e5d64d7e5dd7df6c494971087ca
2019-05-10 15:13:40 +01:00
Michael Meeks
956f8bf5e8 Unipoll: move event processing into the same thread.
Change-Id: I15aff3b5f18201eca915da94dbaa05148026e244
2019-05-10 14:43:27 +01:00
Michael Meeks
8172885f74 PNG compression a bottleneck: thread it to accelerate things.
Also have a separate hash <-> wid cache to avoid re-rendering
older tiles as/when we see them.

Change-Id: I238fe6701a1d1cb486473c67faba8c56e9c98dcb
2019-05-02 22:36:52 +01:00
Henry Castro
6bb4edd62c wsd: allow paste content to tunneled dialog
Change-Id: I32fabaa533a0e9d853226b329d2d8b1c489dd776
Reviewed-on: https://gerrit.libreoffice.org/70960
Reviewed-by: Henry Castro <hcastro@collabora.com>
Tested-by: Henry Castro <hcastro@collabora.com>
2019-04-26 15:32:58 +02:00
Ashod Nakashian
83a73e24e0 wsd: set the language when creating a new view
This uses the new createViewWithOptions API to
set the language of the user at the point of
creating a new view.

Change-Id: Ibf3e0af1b0cc300126388c1217692d8d969be0f3
Reviewed-on: https://gerrit.libreoffice.org/67501
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-04-23 03:44:07 +02:00
Ashod Nakashian
2ec5023dbf wsd: assert on 0-sized tiles
Change-Id: I10a20bb5a3ad31e368f554bdc5e1701a7ff6a22d
Reviewed-on: https://gerrit.libreoffice.org/71072
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-04-23 03:02:09 +02:00
Ashod Nakashian
c7ac68e8e3 wsd: tile serializer now supports adding a suffix
Moves appending tokens into the serializer and
avoids making extra copies of itself.

Change-Id: I62d374e69d9c4a55643ea20cb5f8c2b9c75c88c5
Reviewed-on: https://gerrit.libreoffice.org/71022
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-04-23 03:01:30 +02:00
Ashod Nakashian
c053dc38b2 wsd: set vector size when constructing
Change-Id: I68718554017b47b6df1c6bf3b997483d4c753136
Reviewed-on: https://gerrit.libreoffice.org/71021
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-04-23 03:01:17 +02:00
Ashod Nakashian
90c8dd41b9 wsd: logging, comments, and const correctness
Change-Id: Ibfbef282e951a80fb145239df4bbcc9f3e4c8e13
Reviewed-on: https://gerrit.libreoffice.org/71017
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-04-23 03:00:19 +02:00
Ashod Nakashian
6b82d245fa Unipoll: integrate with the LOK mainloop in a single thread.
Unfortunately processing multiple events from the Kit socket
is causing massive document invalidations, for unknown
reasons. As such, for now we have to process one event
at a time, until the source of the invalidations is found
and fixed.

Without the invalidation, the average tile rendering
roundtrip is about 3x faster than with the invalidations
and the maximum roundrip is at least 2x faster.

Change-Id: Iafbf9ccc2b80656cb71c208b598080f72d201ca2
Reviewed-on: https://gerrit.libreoffice.org/70906
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-04-23 03:00:07 +02:00
Michael Meeks
a088e09193 re-factor PNG compression to share and protect TileDesc updates.
Change-Id: I3cbda6ecd78c7be8ca7fc767d9a5a288a020df7b
2019-04-20 01:26:50 +01:00
Michael Meeks
adfaa76ff6 Inline PngCache lookup to avoid redundant watermark blending.
Change-Id: I6fe5cca81b9268c903e011fe0e77f478befbc836
2019-04-19 23:56:20 +01:00
Michael Meeks
2871653bf4 Simplify legacy single tile rendering code-path.
Remove redundant _id member from TileCombined, add constructor
from TileDesc, and use it to shrink the code.

Change-Id: Idc0ded63166ed350ab81b07e191b7a60d4407cd4
2019-04-19 23:51:26 +01:00
Michael Meeks
729c124b3b perftrace: consume PROFILE_FRAME messages and chart lok ProfileZones.
Also - enable performance tracing in the kit when we're logging at
trace level.

Change-Id: I838e8d7769b0ead8508c4482c58e0e2564dcee91
2019-04-16 20:27:37 +01:00
Michael Meeks
ca619e6fd7 perftrace: annotate start events as idle as well.
Change-Id: Iaf603101426caca1f48ebe10918170287aee006d
2019-04-04 20:01:19 +01:00
Tor Lillqvist
9c02d82f7c Fix build in the MOBILEAPP case
Did not check how well it works.

Change-Id: I5ca1b349aafcfddaed517e51ca6bd25e9749779d
2019-03-31 14:34:24 +03:00
Michael Meeks
201bcb0762 Use peercreds to identify processes connecting rather than URL params.
Change-Id: I241e80962fb8cf2f3fff1bb4be81d9f0ee74c648
2019-03-30 21:37:05 +00:00
Michael Meeks
81a27e26aa Switch local prisoner sockets to abstract UDS
Unix Domain Sockets are inaddressable remotely, and more efficient,
as well as allowing future SCM_CREDENTIALS / SCM_RIGHTS.

Change-Id: Ia2472260f75feb43e9022cdfa0fe005ccd489454
2019-03-30 16:51:06 +00:00
Michael Meeks
9b4afbb460 Disable potentially problematic module loads for online.
Change-Id: Iaa30486977ad783e2af0f876d790f2a2b06904f9
2019-03-29 09:49:23 +00:00
Tomaž Vajngerl
02a07d62a5 tdf#124146 touch gesture support, send pan gesture in dialogs
Pan gesture should work for comboboxes, for which panning is
implemented in core.

Change-Id: I0a7e49e9335159a302716f666e2334a9d532c115
Reviewed-on: https://gerrit.libreoffice.org/69720
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2019-03-26 10:48:17 +01:00
merttumer
5e7401c2fe Added passing watermark text to saveAs for tiled watermark
Change-Id: I2cc7c942a646a57e39d3c5862bbcc45ddfbafe4c
Signed-off-by: merttumer <mert.tumer@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/67780
2019-03-18 13:04:12 +01:00
Ashod Nakashian
ef63472e1a wsd: more informative callback failure error message
Change-Id: I8d84af03be2bd051ec03d12528dd98b245b982d0
Reviewed-on: https://gerrit.libreoffice.org/67998
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Szymon Kłos <szymon.klos@collabora.com>
(cherry picked from commit f6a35eab4f7bcbbbb26d4fc1084d78bc3a19ad76)
Reviewed-on: https://gerrit.libreoffice.org/67506
2019-02-26 14:23:47 +01:00
Tor Lillqvist
76058ac270 Fix crash in iOS app: Just use a raw pointer as the lok_document hack
The lok_document pointer will only be used when it is valid anyway.
Fixes a crash when you open a second document after closing the first.

Change-Id: I362db282e4eccf419b56bf790ea58181594ab0fe
2019-02-26 14:07:59 +02:00
Tor Lillqvist
4dc340972c tdf#122582: Add slideshow functionality
Requires a couple of corresponding commits in core to its filter
subdirectory.

Change-Id: I3e6353752dd93e021fb6058fff5096f1d648d17e
2019-02-22 21:01:54 +02:00
Jan Holesovsky
835bb3db35 android: Perform the android-specific setup before initializing the LOK.
Change-Id: I935e6849dd41c5e66b768c7f2a79c139265c901f
2019-02-15 16:53:35 +01:00
Jan Holesovsky
f76b36193d android: #if(n)def MOBILEAPP -> #if (!)MOBILEAPP for better reliability.
Change-Id: I5f9c9420b6c83601db1c8fdba4ae5a10b17b2107
2019-02-12 12:20:11 +01:00
Andras Timar
6364ed0a2f we need share/template/common/internal/idxexample.odt for Insert TOC dialog
Change-Id: I1b33b3c74695605c0bf887d1e730f833f286c33f
Reviewed-on: https://gerrit.libreoffice.org/67117
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
2019-01-30 11:13:47 +01:00
Andras Timar
309cb05916 remove duplicated check for 'share/config/wizard'
Change-Id: I46f274825a7be024c87ec9b3cc491c5dc91ffa14
Reviewed-on: https://gerrit.libreoffice.org/67116
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
2019-01-30 11:11:11 +01:00
Szymon Kłos
3b93d5f61b Small conditions refactor 2
Change-Id: I11bb3a2ae2907e9cba46f3339b457812c6d1d246
2019-01-22 14:52:40 +01:00
Szymon Kłos
8613f11c75 Small refactor of conditions
Change-Id: Id3884d8385bf1c138eef2909220bfef352b95370
2019-01-22 14:52:40 +01:00
Szymon Kłos
d30ade3ff3 Show progressbar on loading
Change-Id: Id2f6b35843380726e10570c2c3e501921e882b52
2019-01-22 14:52:40 +01:00
Tor Lillqvist
669e90de20 exportSignAndUploadDocument() is not used on MOBILEAPP (and does not compile for iOS at least)
Change-Id: I23bdd461c8dffb407e6aee2a378c47dc38239618
2019-01-22 15:50:13 +02:00
Miklos Vajna
010d415e95 kit: make members private in DummyLibreOfficeKit
Change-Id: I2d29398b16272b683f9682f627b4a0574c9332b7
2019-01-18 09:07:20 +01:00
Tomaž Vajngerl
fe59a510fd send a signal that the export, sign and upload was successful
Change-Id: Ic55a2d5ea452c9153945d3bc9bcbb514a46e70e9
2019-01-17 16:58:20 +01:00
Tomaž Vajngerl
7137c953d8 add export, sign and upload as one function for PDF signing
PDF export, signing and upload needs to be done in one operation
as PDF doesn't change the current document. The workflow is just
a bit different to the ODF / OOXML that it needs a change in
behaviour.

Change-Id: I752b293494a2d677fa7f12f2317954cfcf47859b
2019-01-13 23:50:18 +01:00