This sets the "launchMode" of the LOActivity to "singleTask" and
implements "onNewIntent". This is necessary so that we don't
duplicate LOActivity instances, as that isn't handled correctly
and can cause a freeze or in some cases that text input from one
instance is sent to the other. The back button stack isn't ideal
as it still can return us to LibreOfficeUIActivity even when the
activity is started from some other app, but this at least is
consistent with how some other apps work.
Change-Id: Idd11214578ec124661e2612bb49ba7e4bc4f3cea
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89811
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
It is a flexible bundling of the loleafet source files
and each platform (ANDROID, IOS, DESKTOP) can prevent to
bundle some files that is not necessary.
(i.e Mouse handling in native mobile devices)
Change-Id: If018bcc8682df5ae4bf5dd9943aa977e18c0de36
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89734
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Tested-by: Henry Castro <hcastro@collabora.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
Debian 8 has gcc-4.9, which emits -Werror in case a parameter and a
member function has the same name. Given that we also use -Werror
unconditionally, this breaks the build. Newer gcc/clang versions relaxed
this warning, so this was not a problem in those cases.
Change-Id: I7ad09370d96aa7384b2c117dd8de421644898b50
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89785
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
This way we can easily extend the "preparing for the 1st start" to the
follow-up "loading..."
It should also look better while the webview is being initialized etc.
Change-Id: I8de2dd96a726fa8302df558f691b1db82c9c8e71
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89733
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
This was needed before we switched to using the Content provider
framework.
Change-Id: I3906069ad3dc04a957f768b9ed02463aeaa4470f
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89732
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
All the code that is using them is compiled out on Android anyway.
Change-Id: Ica349135202211ecdcb095bb82aa677f2dee19ba
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89714
Tested-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
This is meant to reduce lots of small allocations and instead have
pointers into the single string for the various tokens instead.
This has a few requirements, though:
1) It's no longer OK to modify the tokens, changing their length would
invalidate the start/length of other tokens. Rework
DocumentBroker::load() to avoid such mutation.
2) The iterators no longer expose zero-terminated strings, so
Poco::cat() doesn't work anymore: add an own cat() instead and use that
in e.g. ChildSession. The own cat() has the benefit that it won't read
past the end of the array if the begin index is out of bounds to add
more safety.
(This nicely works towards killing Poco usage in general.)
3) If zero-terminated strings for all individual tokens is needed, a
copy has to be made, as done in spawnProcess().
(For all of these requirements, the build fails if there are problems.)
Change-Id: Iea40e4400e630b2d669f5c72aea85cb40edf9a2c
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89711
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
The bulk of this commit just changes std::vector<std::string> to
StringVector when we deal with tokens from a websocket message.
The less boring part of it is the new StringVector class, which is a
wrapper around std::vector<std::string>, and provides the same API,
except that operator[] returns a string, not a string&, and this allows
returning an empty string in case that prevents reading past the end of
the underlying array.
This means in case client code forgets to check size() before invoking
operator[], we don't crash. (See the ~3 previous commits which fixed
such crashes.)
Later the ctor could be changed to take a single underlying string to
avoid lots of tiny allocations, that's not yet done in this commit.
Change-Id: I8a6082143a8ac0b65824f574b32104d7889c184f
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89687
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
We are in state to bundle Javacript files for different platforms:
Android, IOS, desktop. And each platform could add specific chunk
Javascript code according its specific requirements.
Change-Id: Ib52ae816cb9443c8605fdf70aaa4c5e4c81b962d
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89557
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Tested-by: Henry Castro <hcastro@collabora.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
For some reason, the parsed jsdialog message for piecharts
in calc has element(s) with children that evaluates to undefined.
Although we need to fix why there is such an child for any ui object,
this is a quick fix that skips such entries, so that the chart dialog
is shown without a crash in the console. Else the dialog wont appear.
Change-Id: Iff11051bf775ece63ac9f0ca180b3c76d7d14e84
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89563
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
==15956==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x0000007cd2f7 bp 0x7ffe96c7cd70 sp 0x7ffe96c7c4e8 T0)
...
#7 0x11a9d31 in ClientSession::filterMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const wsd/ClientSession.cpp:977:27
#8 0x11925d6 in ClientSession::_handleInput(char const*, int) wsd/ClientSession.cpp:741:14
#9 0x19395d0 in Session::handleMessage(bool, WSOpCode, std::vector<char, std::allocator<char> >&) common/Session.cpp:230:13
This seems to be a recurring pattern, I'll consider reworking
LOOLProtocol::tokenize() in a follow-up commit to have a return value
that is safer than std::vector<std::string>.
Change-Id: I0e71214a55af2e71e4787cb0dba0ddf7825bf9d9
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89637
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I1f419d485cefa387c35a9c42c9ac6671df909434
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89639
Tested-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Reviewed-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Admin::instance().dumpState(std::cerr) at the end of a run shows:
Poll [0] - wakeup r: 11 w: 12
callbacks: 103
fd events rsize wsize
This is more a problem in the fuzzer itself than in the code, the
unprocessed callbacks reached the intentionally set 2GB limit in about
20 mins, so process them at the end of each run.
Change-Id: Ic12d3e8555417371f4ca44228fc1ff515d704592
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89632
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Now that we don't re-compress PNG images since core.git commit
8fc1b60f62c213a0476f3acc9f89cd5eccbf335d (sw SVG export: try to reuse
original bitmap data for JPG and PNG bitmaps, 2020-02-27).
Change-Id: I869ae0a21f834e6f05bf9b897b15cf3392320cd8
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89621
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
This test case is covered by cypress tests. See
shape_properties_spec.js. Those tests will fail if
SVG rendering is broken.
Change-Id: I1a3434f9696c6a323a23ded0b1b2816d74373c7a
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89590
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Change-Id: I2b6a96865f770315d5a0b990ecc24b839271f763
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89547
Tested-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Reviewed-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Change-Id: Ib10f93b66ab2f3f5f50e8ae520ec8755361ae0cf
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89534
Tested-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Reviewed-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Instead of using the data of rolling average, using original data would
reflect the real network traffic.
Change-Id: I3f5a277b6ee8e7d760f5623eb4aae9f6c999e10f
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89494
Tested-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
We now don't change the keyboard state when the user
drags the selection markers.
Change-Id: Ic3dec8011808df8d1028e1925190854a50588e1c
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89492
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
The cursor visibility can change rapidly, and the formula-bar
seems to do this when typing into it. The result is that
because of losing the input focus we lose some of the input.
Instead, we only use the dialog cursor update to show the keyboard
rather than to hide it. For hiding, other messages will do it.
Change-Id: I0e8674170aa9d05b6ddc15de8d35792377b6725b
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89490
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
This makes searching work again, but typing 'r'
still triggers F3, which simply matches the next
hit (on desktop, on mobile it works fine).
So (on desktop) typing 'your' will match the first 'you'
and the 'r' will move the search results to the
second 'you' (assuming there are at least two 'you'
entries in the document and one 'your').
Change-Id: Iab425afdfb3848ecff97f5599ceb7cae160b097d
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89357
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
We can't rename a file in the Xcode project, so copy it to
ios/Mobile/loolkitconfig.xcu in the configure script, and use from
there.
Change-Id: I1e50235c06f528dd24d0d968aaccc994418b57d8
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89466
Tested-by: Tor Lillqvist <tml@collabora.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
... decide based on the DownloadAsPostMessage wopi value instead.
The idea is that the Nextcloud app actually sets the DownloadAsPostMessage
wopi value to true, which means that all the downloading (including
slideshow) is passed as Download_As postMessage anyway.
So deciding here based on the existence of the Nextcloud app is
not necessary, because there might be others who set the
DownloadAsPostMessage and rely on the Download_As postMessage,
but would get a non-functional iframe over the top of the editing
window.
Change-Id: I4a5c1d9ef6276908a1b3910a4269091955cdc490
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89382
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
we copy dictionary files more than necessary
only the required ones are included
Change-Id: I200a95b2593109ff10e7214476fe6ddd2e792ae5
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89384
Tested-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Also get the path right in the CMake .in file.
Change-Id: Ib0f02c5e4a71d04e40b7c353caea872a5ea9cfd6
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89386
Tested-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
It's unstable now, how focus behaves with shape.
Change-Id: If429420852599315bff5d71f33f263f1d79a356c
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89380
Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>