Re-using an inherited file descriptor to /dev/urandom frees us
from problems with mount options including 'nodev' and removes a
capability from the set we need.
Change-Id: I70337e923f802d7efbd3159c11a4e39f6529b6e6
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This should be inherited by forked children, and kept alive at all
times. If we have it already open everywhere, there seems little
benefit to the getrandom / getentropy system calls.
Change-Id: I5d58f7216c65febd161cbd78c24308d9192830ee
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
after accessibility rework in notebookbar we use "-"
as separator between id sections for something...
this breaks getting the menubutton items by id,
let's avoid that character then
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I58f6c03bd635e981986b64ae2acfc43561146e8f
As in https://caniuse.com/?search=text-wrap
text-wrap property is not used in currently most
popular Firefox versions, let's change it to
more popular white-space property.
It fixed wrapping of text in statusbar in Firefox
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0fc68fbb128db56844ae8e0174fe292ee95c572a
- desktop shows userlist on the top, don't show duplicate in the statusbar
- make behavior compatible with previous version (23.05)
- remove unused signal: it is fired but nothing is listening for it
(updateuserlistcount)
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iabcb3b4a926c8941acf2e1425a9a28ede6e88311
This allows to share code and provide unified interface
for functionality like: show/hide/enable/disable/insert item.
Also restricted mode is supported for all the items.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4a4e7ea43a993751b28f685544827d00b2b3668f
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (110 of 110 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (110 of 110 strings)
Co-authored-by: Flavio F. M <flavius_androiduser@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-lib/pt_BR/
Translation: Collabora Online/Android app
Translation: Collabora Online/Android lib
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I8b69106c8f95d50ab2bda716cde84c71a12a149d
Initial background save implementation from the Kit perspective.
To do a background save we:
1. join known threads - we can't fork with >1 thread.
2. check all is well: one thread, nothing unusual...
3. create a socketpair to communicate with the child
4. fork
5. child: cleanup duplicated sockets
6. child: setup LOK to not damage our shared file-system
7. child: save
8. child: report status back to parent & _Exit
There is still a substantial TODO, but this can be built on.
Change-Id: Ibf2c492372e2b5133932773e230ad05e18521794
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Remove any stale elements from KitSocketPoll::KSPolls and
block until an element is added to KitSocketPoll::KSPolls
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: I25726171ef28d9107772f7665dd3cbb467e364e5
So watchdog won't fire for a stalling kit.
After a fork the child has only one thread, but a copy of the watchdog
object.
Stop the watchdog thread before fork, let the child discard its copy of
the watchdog that is now in a discardable state.
And allow it to create a new one on the next SocketPoll ctor.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I7dc166dca3996401fbdc20cd7643f944662454c8
- User avatar should first consider is there is already extract info available or not
- if we already have that image source data then please do not set default value
- also when mode change we do preform some refresh function on all icons
- `map.on('themechanged', setupIcon, this);`
- in that case as well, first check if we have user extract info or not
- and based on that set image source URL
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ifbd543322f5222fa7717b40a5ae565ed2f3c9891
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
For one, getting the selection HTML all the time when we create a text
selection is a waste of resources, since only a subsequent copy needs
that HTML. For another, the complex selection case required a confusing
"two step copy" workflow, where first you press Ctrl-C, then you
download the large selection, finally you press Ctrl-C again.
The underlying problem is the same: the document.execCommand() API for
copy (and cut) is synchronous, but network operations are async, which
don't play well together.
Fix the problem by trying to use navigator.clipboard.write() instead:
the write() call still has to happen inside a magic security context
(keyboard used, click happened), but it can take a callback as a
parameter, and inside that callback it's fine to perform async network
operations, which allows both using a one-step copy and getting rid of
the HTML download on text selection change (when most of the time we
don't need it).
Tested:
- Chrome and Safari; the behavior for Firefox is unchanged, unless
about:config opts in to expose the new Clipboard API.
- HTML, plain text and image copy.
- Cut, not only copy.
- Doing this with the notebookbar button & keyboard.
- A single cypress test now uses a fake clipboard to assert copy. The
rest of the tests are left unchanged for now, but likely we need to
get rid of this implicit assumption that the copy container is updated
on selection change: different behavior for automated vs manual testing
is ugly.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ifcf16474a339f3f1dae3dc99181836e645340048
So far we had duplicated snackbar code.
Desktop version was more advanced, mobile wasn't updated.
Mobile one used mobile-wizard as a base so we had to hide
currently presented menu to show small piece of information.
Let's use desktop snackbar on mobile as well. We will be able to
remove old code path from mobile later.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I1da7a6b75591913ca0fc66f6d0e81d136c874f62
Let's allow usage of JSDialog component previously
used on desktop and tablet only - in some cases on mobile.
This case are dropdowns which we do not want to show
as separate mobile wizard screen (eg. alignment selector
from toolbar).
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ibcfaea457c065c34644738c7bf56a2e4e53c50a3
So we can type our messages, callbacks and better manage
where message is sent
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3290f5cf9bc08669353d3e71785baffc6fb07003
If MenuButton has custom menu defined it should
use original data.id as a command to avoid warnings
about missing icon with "-menu" suffix.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I06dfcdb0412c7d087f4002cdfff83f8157c3f237
Remove toErase list; instead null socket pointers earlier
to make things more deterministic.
Simplify toErase path, by just removing null sockets.
Check _socketPoll array bounds to cope with a re-entrant
mutation - imperfect; but the fd comparison will help.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I27d81358a7d80b939b50ce4ccb1b2178a091a360