This replaces the synchronous loading logic
with the new asynchronous one.
Change-Id: I20fd7903cffbbd7c524d8051295113439ef75d5b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This moves ClientRequestDispatcher and all
its direct exclusive dependencies to its
own file and adjusts formatting.
No functional changes were performed,
although namespaces were restored and
other minor changes were done for
consistency.
The resulting file is still rather large
at around 2000 lines, but that makes
COOLWSD.cpp smaller by about 30% now.
Change-Id: I59bcd997ad08702ce7029c6791095e75ad9b23b0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
File names with spaces or non-ASCII characters are encoded in the URL so
use -[NSURL path] to properly decode and convert the URL to its system
path.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: I156bde25e299f1fa42f02c8516c6603eadfe0691
Have the document's DocumentViewController display a save dialog and
export a copy of the file written by the LibreOffice code.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: Idf8136bc321893f18010eb74f9c39b21f0f698d5
The new WKWebView.inspectable property must be set to YES in order
for Safari to connect to a debug version of the iOS app whether the
app is running on an iOS device or on macOS.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: I873a25a149e3ec967ab0775ba8105ecce26f07ac
When building the iOS app, the %SAVED_UI_STATE% does not get
replaced with a quoted string during the build and the resulting
unquoted string causes document loading to stop.
Also, eliminate warnings when running in Xcode by adding missing
CFBundleTypeRole entries in the iOS app's Info.plist.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: Ie398955241a078be45af28e54c49387ff673870b
Extract some functions from ForKit.cpp and COOLWSD.cpp to new files
so we can do a kit in process mode without using ifdef directives.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: I7529f8f46a8026318244666b27d1ce72ed5ad4ca
Currently translated at 63.3% (340 of 537 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 61.6% (331 of 537 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (5 of 5 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 59.4% (319 of 537 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (22 of 22 strings)
Co-authored-by: DPE <danpe_jobo@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-lib/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ios-app/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/nb_NO/
Translation: Collabora Online/Android lib
Translation: Collabora Online/UI
Translation: Collabora Online/iOS app
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Iaabb7ffb88433e624d58dad43f3fbadd5aacd681
use the xml token "use-window-font-color" to toggle auto color on.
https: //github.com/CollaboraOnline/online/issues/6546
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib14b144ce6f593114a8130f5816f479d5cd4fe85
Still needed to add a bunch of #if !MOBILAPP to disable all of the
Online server's unit testing classes so that the iOS app won't crash
when opening a document.
TODO: the iOS app will not accept text input at all. Is some code
unexpectedly consuming message data sent over the mobile fake socket?
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: Ie874ee8e452188a7b4cdf6d5f87708e5ed9b0235
The +[NSString string...] selectors won't be released until
an enclosing autorelease pool is released. But since we use
ARC, we don't know where the compiler has inserted the
autorelease pool so JS messages may not be released until
after a very long time potentially causing an out of memory
crash. So, use the -[[NSString alloc] init...] selectors
instead.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: Iff0be8ee5b322347e746dc030948b82d117c43a1
Also, don't set webView.configuration.userContentController to nil as it
generates a "nil not allowed" compiler warning.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: Ibb49228a65f102fa6d97d4e5affafae8ad528c0d
This avoids an excessive number of reallocations. This is overkill
for non-binary messages, but most non-binary messages appear to be
under 1K bytes in length. In contrast, it appears that binary
messags routinely use at least 75% of the maximum possible length.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: I522fe74bc355a78b6b561ec9475a1afb27cf54b2
Many .png tile messages are very large so avoid using
-[NSString stringByAppendingString:] calls to create the JavaScript
string.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: I8163ef93da315122f938c9ed2b66b49a443f283f
LANG values such as en_US.UTF-8 trigger an assert in the LibreOffice
code so replace all "_" characters with "-" characters.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: Icba29a8e647eaf0887cc801d4b8763ffd821ffbf
Setting modalInPresentation to YES will ignore all events outside of
the view so set self.modalInPresentation to NO.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I5e886079edec6f7e37676be29bfaa3061e8eb4ae
Mobile apps don't substitute these values so set them to zero length
strings.
Also, the iOS app sets the base text direction via the "dir" parameter
so add handling of that parameter in cool.html. TODO: check if the
Android and GTK apps need to implement the "dir" parameter to handle
RTL layout.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: Ied8268ec256011281961ef610d53baeee0efe9cd
Limit escaping of non-ASCII text and splitting on the first newline to
only certain message types on iOS.
Also, fix mangled UTF-8 text on iOS in jsdialogs when using languages
like Greek and Japanese by only setting the image bytes for only the
same set of message types.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I9cd088509ba9724108da3c9457cd3d098b45723f
Passing non-ASCII, UTF-8 text from native to JavaScript works
fine, but images become corrupted if any non-ASCII bytes are
not escaped.
The Socket._extractTextImg() JavaScript function assumes that,
in the iOS app, the first newline separates text from image data
so assume all bytes after the first new line are image data.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I06f4377bb3b7002a76041a198076decfee9e3733
This is a near duplicate of pull request #5898
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: Ib05a285f3642ec0ca745b0c74157190fda5bd3ed