Commit graph

451 commits

Author SHA1 Message Date
Jan Holesovsky
fd3e6fb722 android: Even with debug, the loolkitconfig.xcu path is the same.
Change-Id: I28d72ce2776fb7640944a75d65586cf862fcbdbe
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89213
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2020-02-21 16:46:01 +01:00
Michael Meeks
6bdf561049 Share the Kit environment setup code.
Particularly configuration layers so we can tweak mobile config
easily.

Add core source files from configmgr for breakpointing convenience in
the iOS project. Add loolkitconfig.xcu to the iOS app bundle. Use
${BRAND_BASE_DIR} instead of a compile-time LOOLWSD_CONFIGDIR literal
on iOS (because there is no compile-time constant path to the app
bundle). No "registry" directory directly in the app bundle any longer
on iOS, a corresponding change in core.git moved that stuff to be
under "share", like on other platforms.

Change-Id: I6672efc0505abf27297c4758118a20992b10ceb3
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/88765
Tested-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-02-17 14:49:06 +01:00
Michael Meeks
701cb6a230 tdf#130673 - kill obsolete locking.
This dates back to 2016 and our pre non-blocking and pre-unipoll state.

It is no longer necessary - a single thread reads all data from the
socket and feeds events into the Kit process; much cleaner.

Change-Id: I46ad6806a1e0cdbb0e5cf4ea5d3e5e5078d3391a
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/88741
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-02-14 23:33:49 +01:00
Marco Cecchetti
a46fa588b1 calc: formula input bar: adding support for text selection handles
Change-Id: I6bc276945a7fd33f1358a3aa82ce0e7f45237771
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/88090
Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Tested-by: Marco Cecchetti <marco.cecchetti@collabora.com>
2020-02-06 15:58:36 +01:00
Michael Meeks
8f91659ae0 test: dung out redundant LOOL_TEST_CLIENT_PORT.
And cleanup other related oddities.

Change-Id: I2d179a2ece6a8553e10e406ad4e5da08a2ff58e5
2020-01-21 15:07:54 +00:00
Michael Meeks
c187f414c5 kit: show the correct documentLoad URL when a template is used.
Change-Id: Ib9b3ac3e166dfbece8c7212fc239d517ce1c0bba
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/87140
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-01-21 16:07:31 +01:00
Ashod Nakashian
4619ac73ff wsd: minor cleanup
Change-Id: I2c062e1f7d309c8d1c54e6d0e8ca4c40f288d09d
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/86723
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-01-14 13:01:05 +01:00
Michael Meeks
28acde16e6 Mention the nodev mount flag on failed mknod.
Change-Id: Iafd034149c0c2859a6705f33557d61b0b24a927a
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/86372
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-01-07 21:25:56 +01:00
Michael Meeks
873110de88 android: don't use std::vector allocation for large pixel buffers.
Amazingly more time was spent allocating, wiping and freeing these
vectors on Android than the actual rendering of pixels in a profile.

Change-Id: I49ea093816eba0f4187613ab6c8dc24d8dcba75b
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/86335
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-01-07 19:22:01 +01:00
Michael Meeks
8522cbdb9f android: pick a good value for threads.
Change-Id: I2a550257a6a9cb176c67a888b7838855db06fe4b
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/86334
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-01-07 12:43:47 +01:00
Ashod Nakashian
ad0256259b wsd: handle rectangle=undefined gracefully
Change-Id: Ib9058956143aae8151c5e76fddff5dea313ff5e7
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/86323
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-01-07 10:23:22 +01:00
Michael Meeks
9cef0f385d watermarking: create SessionMap template to canonicalize views.
Use a fully reliable uniqueness check, rather than a hash, and get
simpler ids as a bonus. Fetch view data from the session itself
rather than passing it in too.

Change-Id: Ibcd625156b5a98eb280e35d6537b5c8c026d0197
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/86150
Reviewed-by: Mert Tümer <mert.tumer@collabora.com>
Tested-by: Mert Tümer <mert.tumer@collabora.com>
2020-01-06 13:52:29 +01:00
Jan Holesovsky
de006eab17 android: Fix build.
Change-Id: Ie3359efb0518bcb2ae8ac369efb628efdb9ed0b5
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/85996
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
2019-12-30 14:20:54 +01:00
Henry Castro
9290981013 wsd: debug: add env variable "PAUSEFORDEBUGGER" to attach debugger
It is painful to check and search manually the PID to attach the LOKit
process when exists several pre-spawned waiting to load a document.

This patch helps to attach the debugger when the LOKit process is about
to load a document then send the "signal SIGUSR1" to resume it.

Change-Id: I3b15bd522c6ef3ef57dc3453b457dcf91f2661b9
Reviewed-on: https://gerrit.libreoffice.org/85430
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Henry Castro <hcastro@collabora.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
2019-12-20 19:57:47 +01:00
Miklos Vajna
d0fee8c6ad These can be made const
Change-Id: I952a7566176bda727f8c2e9618d41bfb7bb1240f
Reviewed-on: https://gerrit.libreoffice.org/85197
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-12-16 09:24:08 +01:00
Jan Holesovsky
f2d017a74a android: Fix crash on the 2nd editing start.
The failing scenario was reproducible on my old phone:

* start editing the document from the shell
* add a word
* leave the editing using the '<' in the top left
* start editing the document again => boom!

In the normali, non-crashing case, the order of destruction is that
~ChildSession is called first (and calls ChildSession::disconnect() that
consequently calls Document::onUnload() via _docManager->onUnLoad(...).
The Document::onUnload() then deregisters callbacks and all is fine.

The in the above described crashing case, the Document is destroyed
before ChildSession and calls resetDocManager() for all sessions.
Before this patch, this meant that the _docManager was set to nullptr,
leading to situation that later, in the ~ChildSession, the call of
onUnload() was avoided, the callbacks were not unregistered, and later,
on the next document load, the app crashed because it called stale
callbacks.

I suspect the change might be useful even for the non-mobile case, but
not 100% sure, so rather do it MOBILEAPP-only.

Change-Id: I279a160ccaab3080e84fe0437ed72684331b6e13
Reviewed-on: https://gerrit.libreoffice.org/84588
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
2019-12-06 09:30:04 +01:00
Tamás Zolnai
1e6ff55878 Spelling context menu: Fix execution of LanguageStatus
Change-Id: Ia309246ee37c6c598e518e66f96fc80e1320ce55
Reviewed-on: https://gerrit.libreoffice.org/84341
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2019-12-03 14:44:09 +01:00
Marco Cecchetti
836ce7d636 formula bar: function complete
lok clients can request to complete a function name partially typed in
the formula input box.

Change-Id: If8e4485c5ed9f91a594dfcec04e0c0b10becdcd0
Reviewed-on: https://gerrit.libreoffice.org/83985
Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Tested-by: Marco Cecchetti <marco.cecchetti@collabora.com>
2019-12-02 17:34:13 +01:00
Michael Meeks
1c1989ad77 insert image needs fps_office component these days.
Change-Id: I29a5d5a5c9c180f7cab3b008874f9f2a7ea323f0
2019-11-30 22:47:01 +00:00
Michael Meeks
8bb64b6554 lok: add viewId to window painting, to allow special-casing on render.
View switching should not cause the sidebar UX to re-build at all. So
pass the view-id into the render call so we can avoid this.

Change-Id: I194c1841df2cedfcdf82defb2712d20715d7ff1d
Reviewed-on: https://gerrit.libreoffice.org/84131
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2019-11-30 23:01:48 +01:00
mert
ba42356330 Fix minor comparison error
This patch is a follow-up for overflowing
watermarks patch

Change-Id: I8613736dc4fea49a22ae29aba209c95b1ea93557
Reviewed-on: https://gerrit.libreoffice.org/83635
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2019-11-27 05:34:27 +01:00
Marco Cecchetti
4574a98bff formula bar tunneling: function list wizard
Change-Id: I63670151a009ce0a67ba64cebf326e13219f2ded
2019-11-25 22:02:50 +01:00
Gabriel Masei
2164f5207c Add REST endpoint for admin metrics.
Change-Id: I701485631931334d27594c4907cb770f9888e5bf
Reviewed-on: https://gerrit.libreoffice.org/82492
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2019-11-25 13:06:01 +01:00
Tamás Zolnai
19e576772a SpellingPopup: Handle sapces in suggestion.
Change-Id: I09db2cd1db67797a50bc2943200f97aabb004fc6
Reviewed-on: https://gerrit.libreoffice.org/83607
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2019-11-24 14:12:42 +01:00
mert
ed2c34296b Fix watermarks overflow the document area
Change-Id: Ia767d0b4f935bc28e0fb0ed0f8c2ddcfb8093734
Reviewed-on: https://gerrit.libreoffice.org/83441
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2019-11-22 11:15:56 +01:00
Ashod Nakashian
b74306acd5 wsd: replace mutex in signal handler
There are a few things acceptable/safe in a
signal handler, and taking locks is not one of them.

This replaces the logic with a simple counter that
serves the purpose just as well.

If we get a double signal, we log and ignore.

Change-Id: If589c18492468c120d00c213805467bcbba05d27
Reviewed-on: https://gerrit.libreoffice.org/83150
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-11-19 16:12:29 +01:00
Iván Sánchez Ortega
55ac3da53f loleaflet: Draw column/row grid lines on the background
Based on information from UNO ViewRowColumnHeaders messages, this draws
the grid lines with Leaflet's SVG polylines, in a background pane.

To prevent visual glitches on touchscreens, this also reverts parts of
26aad36771ebd5a304b763912184acd2ea26dfdf - that introduced a regression
that prevented 'dragend' events from being fired when inertia-dragging.
Instead, inertia drag is disabled in the L.Map constructor.

[ Miklos: cherry-pick these early as they prevent automatic merging. ]

Change-Id: I86c68214822a0a2c2f8ced82ccf5a6c201e2cf04
2019-11-13 16:58:15 +00:00
mert
2c598ba4ef Rotate Watermarks with 45 degree angle
Change-Id: I9b399a4e1daf52f536d4becae2cc6dc692e16f7a
Reviewed-on: https://gerrit.libreoffice.org/81436
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-11-10 23:42:03 +01:00
Jan Holesovsky
efa293290c killpoco: Remove trivial StringTokenizer uses from some files.
Particularly those used on Android...

Change-Id: I47bf9692f5e99ba30140d698558472201168a198
Reviewed-on: https://gerrit.libreoffice.org/82302
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
2019-11-08 22:21:31 +01:00
Jan Holesovsky
5d0d3a4869 killpoco: Get rid of Poco/Thread.h from the rest of the Android-related files.
Change-Id: I724230a4428cab3cc26245ac4aa43a91af2e09ce
Reviewed-on: https://gerrit.libreoffice.org/82204
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
2019-11-07 12:24:26 +01:00
Jan Holesovsky
5b5e29b430 killpoco: Don't use POCO for app exit values.
Change-Id: I2948ac45a7b4243f7afde08d5245530fdbf9a070
Reviewed-on: https://gerrit.libreoffice.org/82125
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2019-11-07 12:23:47 +01:00
Ashod Nakashian
7a976488f0 wsd: cleanup the global flag accessors
The following flags are affected:
ShutdownRequestFlag
TerminationFlag
DumpGlobalState

Since it's common to grep for all places
that set or reset these global flags, it
makes more sense to have explicit functions
for each operation. Now we have set and reset
accessors where appropriate and get is reserved
for read-only access.

This changes the getters to only return
the boolean value of these flags rather than
a reference to the atomic object, now that
they are read-only.

Also, a few Mobile-specific cases were folded
either with other Mobile-specific sections, or
they were now identical to the non-Mobile case
and therefore deduplicated, making the code
cleaner and more readable.

Change-Id: Icc852aa43e86695d4e7d5962040a9b5086d9d08c
Reviewed-on: https://gerrit.libreoffice.org/81978
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-11-06 03:43:45 +01:00
Ashod Nakashian
887ecdb8d3 wsd: leaflet: Insert background
This adds support for .uno:SelectBackground
which inserts slide background image.

(cherry picked from commit 30a77e7e490e4e83bb6423f41388ee9adbccfae3)

Change-Id: I587b31f67d518aba348ae7e8d058ada23a61e858
Reviewed-on: https://gerrit.libreoffice.org/67500
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-11-06 03:43:02 +01:00
Tor Lillqvist
9d6c174462 tdf#128577: Close an already open document when asked to open a new one
Add a "singleton" class method to DocumentViewController to return the
(as for now) singleton DocumentViewController.

Change-Id: I0b8a8def558cfe7f9469b6062a86311dfa63f549
Reviewed-on: https://gerrit.libreoffice.org/82007
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
(cherry picked from commit 2807f907d947549a17c5bae586b85d412d552a09)
Reviewed-on: https://gerrit.libreoffice.org/82021
2019-11-04 15:25:54 +01:00
Ashod Nakashian
d110f4cc58 test: improve TileCacheTests
Sometimes core renderes with sub-pixel differences
(the crosshair at the corners of the Writer pages
show line anti-aliasing differences). This causes
failure of the tests that count the tile deduplication.

We now tolerate when we get an unchanged tile twice,
assuming it was due to such a rendering difference,
but we re-trigger another change and this time we
don't expect any extra tiles, no more than two
variations of the anti-aliased crosshair was
observed.

We also move some duplicate code into utility
functions to improve readability and reuse.

Reviewed-on: https://gerrit.libreoffice.org/81196
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
(cherry picked from commit 9603597fd1aaecb27893792cfd2d243e450b58b8)

Change-Id: I1a66732dd3443bfbd770d8dc65721571dfa08615
Reviewed-on: https://gerrit.libreoffice.org/81572
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-10-29 02:32:05 +01:00
Ashod Nakashian
10ffdc1e4a testSaveOnDisconnect: sync after pasting and better logging
Reviewed-on: https://gerrit.libreoffice.org/80898
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
(cherry picked from commit 230fcd2f07192f30fb6d6671d905800fde71495e)

Change-Id: Iaacbe0bdc6a7ba88d2f09c343d9579315033acbb
Reviewed-on: https://gerrit.libreoffice.org/81569
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-10-29 01:43:17 +01:00
Ashod Nakashian
a4a4d65632 wsd: logging improvements
Always log when we set the termination flag
so we can trace how (and implicitly why) we
terminated. In practice trace logging is not
enabled, so a key event such as termination
should be logged at info level.

Reviewed-on: https://gerrit.libreoffice.org/80324
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
(cherry picked from commit 3f8d516e1399df687c2935fc551b171cbd850b7b)

Change-Id: Id6615181c81ea56777f44b551b39925065b0e578
Reviewed-on: https://gerrit.libreoffice.org/81562
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2019-10-28 10:48:01 +01:00
Tor Lillqvist
07986199ad Just call lok_init_2() and LibreOfficeKit::setLanguageTag() once on iOS
... when the app starts.

Change-Id: Icac4a9e1074fb6c5f3c9b5282e20a4513717a323
Reviewed-on: https://gerrit.libreoffice.org/80881
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2019-10-16 13:16:42 +02:00
Miklos Vajna
1e36adb72a kit: also add missing modeline
Change-Id: Ibfc531b65d68928111df213bef08655ef21cea62
2019-10-15 22:18:05 +02:00
Miklos Vajna
fd21e2b34d kit: add missing header/footer
Change-Id: I111aeafb2e2376983e47bb09cc134883ffee64bb
2019-10-15 22:15:41 +02:00
mert
a1c58c04cc Added Watermark.hpp
Change-Id: I3619283031865f59f94157d5b8df14a94ac9327b
2019-10-15 20:25:26 +03:00
mert
86489d3dcd Include normalizedViewId to TileCache
Change-Id: Ib23afa023d79189f7fd7aca8b5b0e198c3011fbc
2019-10-15 18:13:03 +03:00
Szymon Kłos
74ce4a9261 jsdialogs: send events to the core
Change-Id: I23a5a14b93bda205c9c276a697e58d1dc4147f0c
Reviewed-on: https://gerrit.libreoffice.org/80838
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Szymon Kłos <szymon.klos@collabora.com>
2019-10-15 15:59:16 +02:00
Szymon Kłos
ca4351e6ef Revert "jsdialogs: send events to the core"
core not yet ready

This reverts commit 80ecaa60f6.
2019-10-15 14:06:08 +02:00
Ashod Nakashian
77e7cae689 wsd: fix password-protect file loading from multiple views
With password-protected files, the first loading attempt
always fails due to missing password. At that point the
client is notified of the missing password and the user
is prompted. The second attempt includes a (hopefully)
correct password and the document loading commences.

Due to the fact that an exception is raised when
the loading fails, this left the loading latch
triggered, which blocked subsequent attempts.

Change-Id: I7cc257a36eb1cc080f460aac8cdb7030783a5914
2019-10-14 21:35:27 +01:00
Szymon Kłos
80ecaa60f6 jsdialogs: send events to the core
Change-Id: I23a5a14b93bda205c9c276a697e58d1dc4147f0c
2019-10-14 19:18:07 +02:00
Miklos Vajna
bb8fc2df43 kit: fix UB in ChildSession::paste()
Seen during unit-large-paste with log level set to trace:

common/SpookyV2.h:139:13: runtime error: load of misaligned address 0x62500042b919 for type 'const uint64' (aka 'const unsigned long'), which requires 8 byte alignment
0x62500042b919: note: pointer points here
 74 6d 6c  0a 63 37 30 30 66 36 39  33 61 32 61 62 35 66 36  62 39 33 64 65 64 61 63  36 31 31 66 39
              ^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior common/SpookyV2.h:139:13 in

Change-Id: I6f15421bcdead839dac85adae5da10f4b41c04d1
2019-10-09 09:05:32 +02:00
Tor Lillqvist
e51d0a642d Fix build for MOBILEAPP where we don't have Log::shutdown()
(Because a mobile app is not supposed to ever exit voluntarily and
cleanly anyway.)

Perhaps we should call abort() in thse cases, though, and not just
continue as if nothing is wrong?

Change-Id: Iceb10cc767522c1fee587624ea6e810c62586207
Reviewed-on: https://gerrit.libreoffice.org/80446
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2019-10-08 14:08:23 +02:00
Andras Timar
d1ae1b36c2 typo fixes in comments and code
Change-Id: Idd98516d30d98dea18eda9bbec8ac9777063b553
2019-10-08 11:49:45 +02:00
Michael Meeks
5e0e6006e3 Fatal exceptions need to take the kit process down.
Otherwise the Kit main-loop continues while its event processing thread
is dead, leaving the client stalled.

Change-Id: I7089ed5b5bd8499623624ffdb84c22cedd80cc7e
2019-10-03 18:52:29 +01:00