Commit graph

857 commits

Author SHA1 Message Date
Michael Meeks
74a1047452 deltas: pure re-factor, store pixels in each DeltaBitmapRow.
Un-necessary allocation overhead for now, but more follows.

Change-Id: I1012678daf021cf63d8fc6e52d25d2dec703c4fb
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-06-21 10:00:10 +01:00
Michael Meeks
675c41c644 deltas: pure re-factor: extract out diffRowTo.
Change-Id: I908a486c0c67beaee7b41a85a3bde911f9fe141a
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-06-21 10:00:10 +01:00
Caolán McNamara
1063fdbcba cid#318963 Uninitialized scalar field
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I459f70a41e5c1bab2e575c8d9ee699e213f2456e
2023-06-14 10:10:46 +02:00
Caolán McNamara
c8c49c5b53 cid#318908 Uninitialized scalar field
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I24f1ec683651439761fda48d2db68fee19afcc62
2023-06-14 10:10:46 +02:00
Caolán McNamara
2d6b190805 cid#318977 AUTO_CAUSES_COPY
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Idea2efdb46d1b819b8210a380bd026789d666e2b
2023-06-14 10:10:46 +02:00
Tomaž Vajngerl
d23ddf1342 support callback for changing the color palette
Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: I8d0dec4afd91bcdf66799f3afba1fd77cbc223db
2023-06-09 14:30:45 +02:00
Miklos Vajna
a901db436c kit: fix missing init of _isDumpingTiles in ChildSession
This was forgotten in commit 21966e1a9c
(Fix copy command going out of bounds during delta creation,
2023-05-31).

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I91ce26f46cc6cb7a2dc3ab0665dc9aeea8a5c00f
2023-06-09 01:36:58 +03:00
Marco Cecchetti
d01bedc09c a11y: add config for enable/disable accessibility in general
A new section about accessibility has been appended to coolwsd.xml
config file

Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I086abdf73646639283eb655ae60f200fb64e495a
2023-06-08 00:00:51 +02:00
Paris Oplopoios
21966e1a9c Fix copy command going out of bounds during delta creation
When creating a delta, the copy command could copy from rows that are
bigger than the height of the tile. This would go unnoticed on light
mode because the js side that applied the delta would apply these out of
bounds rows with a white color, but it is noticable in dark mode. Made
it so the copy command stops copying from out of bounds.

Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: I4d05cb411958d0945933edb5c812de2dfd9c1abd
2023-06-05 08:59:39 +01:00
Paris Oplopoios
baaecac852 Add debug option that allows tile dumping
Added a debug option (triggerable using the about debug menu) that
allows you to dump tiles as they come in

Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: If5939b816c1e3598e50c2db4971710524f855909
2023-06-05 08:59:39 +01:00
Paris Oplopoios
b6d4c88f90 Replace documentbackgroundcolor with applicationbackgroundcolor
Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: I31dc013f239daec039b194a2b15365a6f3d71621
2023-06-05 08:59:39 +01:00
Marco Cecchetti
b9f9cef60a a11y: populating editable area with focused paragraph
We handle notification from core about currently focused paragraph:
content, caret position, text selection start/end.
Notifications are sent on any text changes, even when the text has
been modified in another view.
Moreover we can request such info to core at any time.
That allows AT software to read focused paragraph and selected text.
All that keeping editing still working.
A set of new cypress tests for checking clipboard content has been
developed.

failing cpp unit test:
- HTTPWSTest::testInactiveClient
'unexpected message' assertion was failing since an idle client can
receive an a11yfocuschanged message when the same paragraph has focus
in both view and the active view is editing the paragraph.

failing cypress tests:
desktop
- calc/autofilter_spec.js
  - added more wait time before performing clickOnFirstCell
- impress/undo_redo_spec.js
  - Repair Document was broken
    - we need to select 'Hello world' in order to overwrite it

mobile
- impress/spellchecking_spec.js
  - Apply suggestion
    - better use selectTextOfShape instead of Ctrl-A

Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I070d390543fa66fe786c4a0661fa09f891b9883e
2023-05-31 22:43:51 +02:00
Ashod Nakashian
cec4cf087a wsd: test: initialize logs before unit-tests
Make sure that the logging subsystem is
already initialized before starting
unit-tests.

Change-Id: I2ce3ffdb2d3b0094ae7ed496d7cacfc02af89c21
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-05-31 07:40:11 -04:00
Szymon Kłos
376e8fdd97 linking-api: zoom document to avoid empty space on thumbnail
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I572dc8bd239265a9ab9311aa109e82b1d4e06efb
2023-05-17 16:43:54 +02:00
Ashod Nakashian
fd87ab6b32 wsd: clang tidy fixes
Change-Id: I7b3b08c8040ba4397ce660c5eaa1d0413c3ec611
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-05-15 08:47:26 +01:00
Ashod Nakashian
ff1657934a wsd: simplify log streaming
Change-Id: Id22de0bc06680f957e7475f142bcaf1131fdbdb9
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-05-10 08:46:11 -04:00
Gökay Şatır
9d6296e4b3 Remove unused document signing code.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I30cf381d1fa282cf222ab5abc676374ab7eefb6c
2023-05-08 21:51:47 +03:00
Paris Oplopoios
26c55fc417 Handle LOK_CALLBACK_APPLICATION_BACKGROUND_COLOR in ChildSession
Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: Icef1e490e847ca21bc525dfd989190940b746b78
2023-05-05 12:38:59 +03:00
Michael Meeks
f6bd976f00 Jail cleanup - include coolwsd pid + hash into a jails sub-directory.
This avoids removing the jails of other running coolwsd that share
the same jails/ directory, such as unit-tests, cypress tests etc.

Assert on fatal system error to help catch this during test builds.

Remove old unit-test specific approach, and generalize it, since
apparently we did a recursive cleanup of other people's jails anyway.

Remove over-complicated recursive approach, for a rather simpler
one-level scheme. Avoid following symlinks too for safety.

Remove obsolete lo_jail_subpath setting.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I371f8c0e22f64fb2befb4b58f72cefa39567f3b5
2023-04-25 10:41:57 +01:00
Tor Lillqvist
bc6b3bbaee Fix build for iOS (and possibly for Android)
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I5eb5187b896b7e80aaab5660a8f10268b565dc8f
2023-04-24 17:15:47 +03:00
Ashod Nakashian
2097e936f5 wsd: only external insertfile names
Change-Id: I76e63dcbf724249e23003353a6fdd2237570fd39
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-04-24 14:04:43 +02:00
Michael Meeks
07d1260058 Consistency checking at various points: load, save.
Check that everything is where it should be; catch and warn
about jails that are corrupted beyond our control, or perhaps
manually un-mounted etc.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ib5f7769ded119d7c6126984b040d0e5565ca8055
2023-04-21 19:20:50 -04:00
Ashod Nakashian
fecad56715 wsd: shutdown the Kit socket before terminating to flush
In some rare cases we can't write to the socket
before we terminate, and the last message is
lost. This is observed in tests and especially
when we simulate socket write failure.

Change-Id: I9fb298edfe53de3c7ea0c2f31c02ba370167f96e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-04-14 11:30:14 +01:00
Michael Meeks
7444decf9f trim memory when user is inactive.
Builds on a new LOK API to do the same in the core.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I4443cd2ffbb6c7af0726162aec2ba78fc354d901
2023-03-23 11:31:24 +00:00
Paris Oplopoios
8ade29f112 Handle LOK_CALLBACK_VIEW_RENDER_STATE in the Kit
Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: Ie4d03a3600cb9ebdf9b76ee4779d62da30ad3eb6
2023-03-17 17:34:05 +00:00
Paris Oplopoios
ab176b13a8 Move canonicalId creation to the Kit
Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: I943bfa0436487e517b25d3fce19157ebd576604f
2023-03-17 17:34:05 +00:00
Paris Oplopoios
d26c425dae Move _canonicalViewId out of Session
Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: I9c06440ed47eb217e973d2f530f2c3646d55d85b
2023-03-17 17:34:05 +00:00
Tor Lillqvist
43a8ed3f1c Rename variables to match meaning and add a few comments
It is misleading to use the word "pixel" in a variable name when the
variable specifies a size in twips.

Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Idc59c3dafd63a9ae73601f9c367b37c495e1593a
2023-03-13 12:33:49 +01:00
Tor Lillqvist
12c22706f9 We aparently want thumbnails to be of size 1200x630 pixels
Tweak the "zoom" variabe to be 1 so that with this thumbnail size, for
a typical document we get more of it into the thumbnail.

Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I419afccbf57eae23062ab4c849dd41293f068f00
2023-03-13 12:33:49 +01:00
Tor Lillqvist
b72edec3b5 There is no separate paintThumbnail() API in LibreOfficeKit any longer
It was just a thin wrapper around paintTile() anyway.

Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I7cca1b05b1ded754ae1f50a0e9d434b505247e70
2023-03-10 19:41:16 +00:00
Szymon Kłos
7cb8005df9 Send thumbnail in binary format
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iad5aec0cfa699f7e38a28c3c6812426ea345bafb
2023-03-10 19:41:16 +00:00
Szymon Kłos
50b5c06ad7 Scroll to target
using URL parameter we setup documents position on load.
example: ...&target=image6.png|graphic

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I855bdb148819966e0d51dde217a94474003a6437
2023-03-10 19:41:16 +00:00
Szymon Kłos
e82aa05293 Handle target in get-thumbnail
Using target parameter we move cursor to the desired position.
Thumbnail then is created and sent to the client.
Example target: "image7.png|graphic"

Original author was Mert Tümer.

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I170f6af6fd29c420565feca69b8bef034fd91a66
2023-03-10 19:41:16 +00:00
Szymon Kłos
3bec642b02 Add get-thumbnail endpoint
Which generates PNG of selected link target in the document

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Icfdca2f0b58ea370ca0125c188759e942aacc2e0
2023-03-10 19:41:16 +00:00
Szymon Kłos
18e304e87c Add extract-link-targets endpoint
Original author was Mert Tümer.

Example output for: POST http://localhost:9980/cool/extract-link-targets/

{
    "Targets": {
        "Tables": {
            "Table1": "Table1|table"
        },
        "Frames": {},
        "Images": {
            "image7.png": "image7.png|graphic"
        },
        "OLE objects": {},
        "Sections": {
            "Table of Contents1": "Table of Contents1|region"
        },
        "Headings": {},
        "Bookmarks": {
            "_lh2zfxamp5al": "_lh2zfxamp5al"
        },
        "Drawing objects": {}
    }
}

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iab55ec631d78dbe25b2800ed9296bc0cb8997e97
2023-03-10 19:41:16 +00:00
Ashod Nakashian
9c39ebad1f wsd: string::empty() is clearer than size() == 0
Change-Id: If2e25d344b5718c35cb9ae7b7519010ee88f0f60
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-03-10 07:45:12 -05:00
Ashod Nakashian
74d6739f0d wsd: time the duration of fork
Change-Id: I92f624139f274df95a47f430802a29d33d587689
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-03-06 08:43:37 -05:00
Ashod Nakashian
3fda293103 wsd: name fields in logs and standardize bracketing
Change-Id: I3fe0acf47ebdb0b2551ad20299fe7d720872cbb2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-03-06 08:43:37 -05:00
Ashod Nakashian
0f9dc9460b wsd: support per-user timezone
Change-Id: I5e2318a34cb39d8d56ec3cf4977ebd75588a7627
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-01-31 15:38:08 +01:00
Ashod Nakashian
ecc8bc5bbc wsd: exit code 0 for the exit command to kit
No reason to consider the 'exit' command
unexpected or a cause for error, so the
process exit code needs not be anything
but 0.

Change-Id: I352f706c6f174b66e9a4814fc35bb95b1a3bf3d6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-01-27 08:44:53 -05:00
Szymon Kłos
b0dd943089 Add export as pdf
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I61853fb2213e57acd02d7a3eee53e86f43cb36b5
2023-01-26 13:06:57 +00:00
Michael Meeks
bc3684026e kit: default timeout to ~5 seconds when we get a negative wait.
I can only assume that recent LOK's often don't have any lingering
timeouts for cursor blinking or whatever, such that we get an
infinite wait passed as a negative microseconds-count.

Best not to interpret that as a zero wait to avoid a busy loop.

Change-Id: If79228af969f4598f07681deb355c72f72602d19
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2023-01-15 06:22:24 -05:00
Szymon Kłos
85ada3b6f8 Add UserPrivateInfo
it will be used to store user data which shouldn't
be shared between views

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I58b7f22e4364ce9e07bb6cc74e8431363912a872
2023-01-06 10:36:43 +01:00
Szymon Kłos
924a2cea9c Handle exported pdf correctly
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib3adbaeed30227fcb108fdb6c2e1188fd1bc0320
2022-12-14 15:56:07 +01:00
NickWingate
cc508630e5 Add callback logic for LOK_CALLBACK_EXPORT_FILE
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: I3ca6be3ff26c5f847abc64f1c38b67d131191143
2022-12-14 15:56:07 +01:00
Andras Timar
a077c4288b Put all Zotero logic to browser
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib1b071b96322511b7f319ff6b851e902b3556fbb
2022-12-12 13:35:29 +01:00
Pranam Lashkari
2cfae369af initial zotero skeleton
add zotero UI only if user is logged in
when zotero citation edit button is clicked,
fetch the library with zotero API.
Let user select what to insert

at this stage its not a complete solution but just first stage

Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Id67d8409bcd6416994713acd9ace495b24823fb0
2022-11-30 20:37:48 +01:00
Michael Meeks
dadfbf0579 allow more verbose log-level during startup to be configured.
Previously this defaulted to 'trace' - now it can be configured, but
still defaults to 'trace'.

Change-Id: I0ecf2f0b991cd8cc29dbde866dd4589be4ca7957
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2022-11-21 21:44:05 +01:00
Michael Meeks
8ebdde2cb8 zstd: tune for speed, and compress deltas.
Small deltas were not compressed at all, now they are.

Change-Id: I0543a488723816b4140b27c5690f657aea26226e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2022-11-21 11:53:59 +01:00
Ashod Nakashian
145f490e76 wsd: when loading fails exit Kit
In rare cases when we have a corrupted document, or
we run out of memory while loading, we end up with
a Kit that has no document and would not be reused.

If we exit the Kit, we immediately cleanup DocBroker
on the WSD side and allow for retrying.

Change-Id: I3e811a066365e94f0606b9458be1272607cc45cf
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-11-20 07:50:12 -05:00