When asked to "convert" a document to a PNG image, i.e. what one can
call a thumbnail, check if we have a cached PNG for the same docuemnt
already, and in that case return it.
When we have done such a convert-to operation to PNG, save the result
in the cache for later re-use.
This change adds no thumbnail cache cleanup mechanism. That will have
to be implemented separately using a cron job or whatever.
There are further improvement possibilities: For instance, if the
document is of a type that contains an embedded thumbnail (like ODF),
just extract and return that. For ODF that embedded thumbnail even
already is in PNG format.
Change-Id: I882efe97acc1d81041dc7a4ccb222995940e4836
Reviewed-on: https://gerrit.libreoffice.org/57345
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
Make prints the sudo setcap commands it executes, no need to
additionally echo "Set required capabilities".
Especially as "set" can be misunderstood as being in the imperative
mood, telling the developer to do something, instead of being past
tense telling what was done on the previous line.
Change-Id: I1138fa28a4d08b57d55552d0e012dcfd778b423c
I think the general policy should be to always log errno using both
Util::symbolicErrno() and std::strerror(), never log a naked errno.
But only in cases where we know that it is highly likely that it is
the most recent system call that has failed, so errno makes sense.
Change-Id: I4a1fb31e375ea949e7da17687464361efe7c1761
For a developer, it is much nicer to see "EXDEV" in a log than "18",
for instance. (Sure, we often also log strerror(), but might that
perhaps be localised? And the symbolic names are what one uses when
coding anyway.)
Change-Id: I456a8c2589147dcad87f1b4c3a20b3bd5a35d097
Log all error: cases in ClientSession::handleKitToClientMessage(), not
just the case of cmd=load with kind= some password failure.
Change-Id: I53c959068f5642ae41157e8feb14fd34fc59dc9a
Although, at least for me, after calling LOK's saveAs with an
intentionally bogus file extension 'file:///user/docs/u0.frobozz'
retrying with 'file:///user/docs/u0.frobozz.odt' does not work either.
Actually, I am not sure how useful this retry feature is as it is now.
If the user tries to save as some unsupported format, why can we
assume that maybe they want to save in some other format instead, and
possibly overwrite an existing file? Maybe the retry should be done
only if the file name to saveAs was without extension? But that was
already discussed in gerrit, I see.
Change-Id: I8bd4fbf241cb492d9654ae893af4baaf28b6b3a0
Accept the same options, as applicable. Ignore irrelevant options
(like -env:userInstallation or --headless, but actually just ignore
anything we don't need). Handle options manually so that we can accept
them also with just one dash.
Drop superfluous verbosity. Succeed silently, as is The Unix
Philosophy (haha).
Change-Id: I05793b11886f61955db4746b864be97a6bef5674
We had:
auto ipv4 = (struct sockaddr_in *)&clientInfo.sin_addr
even if the clientInfo variable itself was a struct sockaddr_in.
And then we also had:
auto ipv6 = (struct sockaddr_in6 *)&clientInfo.sin_addr
which makes even less sense.
Instead, make clientInfo into a struct sockaddr_in6, which is big
enough to also to be interpreted as a sockaddr_in. Pass the address of
the correct field, either sin_addr or sin6_addr, to inet_ntop(). (Note
that sin_addr in sockaddr_in has a different offset than sin6_addr in
sockaddr_in6.)
At least on my Fedora 28, when I connect using IPv4, accept4() still
returns the client address as an IPv4 mapped IPv6 address, that is
::ffff:192.168.1.113 for 192.168.1.113. So the sample
net.post_allow.host value in loolwsd.xml.in should probably be changed
to have that ::ffff: prefix, too.
Change-Id: I0ad774616b210d94b904982e2f7dc928adc879ed
This change makes the zooming animation of the document while doing a
pinch gesture (closing and/or opening) match the finger movement much
better.
(But sure, there is till lots of weird jumping around after finishing
the pinch gesture.)
Change-Id: I9d5affe653c1a0ebaebced54629bc9e8d9de5854
Reviewed-on: https://gerrit.libreoffice.org/57089
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
It's irritating to have to manually align lines even when just adding
temporary console.debug() calls. Sure, these mode lines should be
added in all .js files; these are just some I happened to be touching
now.
Change-Id: I13b3a62e66e4430878713fd64a459c72c014ded1
Use conditional CSS, setting the ruler height to zero if it would be
too high. Now the ruler even shows up and disappears dynamically as
the window height changes, for instance when turning a mobile device
between landscape and portrait orientation. No JS conditional needed
after all.
Change-Id: Iebfbd182d1675f4d6abd2f252389fdcdf46ed4d3
Of course, for this to really be worthy of being called "responsive"
web design, we should update this decision also if the window is
re-sized dynamically, like when a desktop browser's window is
arbitrarily re-sized by the user, or a mobile device is rotated
between portrait and landscape orientation, or a mobile device enters
or leaves some kind of split-screen mode where another application
than the browser shares the display.
Also, it would be nice if the window height limit used here, 1280, was
some kind of global variable. (For width limits used to detect mobile
devices, we use 768 or 768px here and there in our JS code. (And,
interestingly, 767px, too.) Ideally this 1280 and those 768s should be
defined in some common place. No idea how to do that correctly in
JavaScript.
Change-Id: I02bb54f309bc116ae1a0b5264e72b9ba674f56e4
Reviewed-on: https://gerrit.libreoffice.org/56936
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
In case of integration with OC/NC, we have WOPISrc= as query param used
for load balancing. So, the earlier approach failed with integration.
Change-Id: Ib73f4f18eaec870dd53b67886b1b6016416a2e78
Reviewed-on: https://gerrit.libreoffice.org/56531
Reviewed-by: pranavk <pranavk@collabora.co.uk>
Tested-by: pranavk <pranavk@collabora.co.uk>