So the setting fetched at ctor time for UserInstallation (and
BRAND_BASE_DIR) may no longer be true, so expanding variables based
on those earlier seen values results in unwanted paths.
add XInitialization to SubstitutePathVariables (like done for
PathSettings) to allow reiniting these explicitly once.
Change-Id: Ia930ea71cb09adc91d6d47ee047c44b24222e8a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175961
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 410f6b50eb44276b1d2095c844244ef4d0ddefaa)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177109
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
and add setting 'BRAND_BASE_DIR' alongside existing 'UserInstallation'
which necessitates moving this block after aAppPath is determined
Done so that PathSettings will use the new locations set in bootstrap
for UserInstallation directory and not the locations detected during
preinit.
So autotext can be found relative to the final UserInstallation dir.
Change-Id: Ib6dadbec85a380475537027a8ce3972e31089711
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175960
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176905
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
which becomes more obviously required since:
commit d85cb38322
CommitDate: Fri Feb 2 22:47:28 2024 +0100
preload: open and close empty documents of main types in preinit.
because since then SdModule has called GetVirtualRefDevice to create the
long-life virtual device that is used to set the lists of available
fonts before "addfonts" has been called to add extra fonts to the kit
so impress/draw remains unaware of any changes there.
It was actually "true" here before:
commit ab61263300
CommitDate: Wed Apr 13 20:09:54 2022 +0200
Follow-up fix to Collabora Online "addfont" handling: avoid assertion failure
but its uncertain what assertion is referred to here, perhaps the same
assertion as later fixed by:
commit d1ed24ba34d422128fd48184dbc3b344b5922d3a
CommitDate: Wed Oct 2 16:19:47 2024 +0200
Get SolarMutex before calling ImplClearAllFontData
Change-Id: Ibc81191ba3b88d9b4def90b6d9662a83295ec9cf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176032
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176823
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
i.e. ChangeEditMode doesn't do anything if the EditMode is unchanged
but the PageKind was switched from Notes to Standard. So the same
page of the other mode is still selected. An explicit SwitchPage
is required to change the page from the other mode.
This results in the reported mode of "2", but rendering actually still
rendering as if in "mode 0", so a request to render a 'standard' page
returns an image of the currently still-selected 'notes' page, which
confusingly can be cached and not shown until served as a reply to a
later request of the 'standard' page.
See DrawViewShell::ReadFrameViewData and other places for more
of this pattern.
Change-Id: Ie8aa8f93f45189fd6f9c37c4077fa2b547ca4815
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176084
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-by: Gökay ŞATIR <gokaysatir@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
(cherry picked from commit 95e9c210ef8380b0909c6ba596e3023bafef4083)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176824
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
Crashreport signature:
> Fatal signal received: SIGSEGV code: 1 for address: 0x0
> program/libmergedlo.so
> (anonymous namespace)::forceSetClipboardForCurrentView(_LibreOfficeKitDocument*)
> desktop/source/lib/init.cxx:1376 (discriminator 6)
> program/libmergedlo.so
> rtl::Reference<LOKClipboard>::~Reference()
> include/rtl/ref.hxx:128
> program/libmergedlo.so
> com::sun:⭐:uno::Reference<com::sun:⭐:lang::XComponent>::~Reference()
> include/com/sun/star/uno/Reference.hxx:113
Sounds like an attempted document load that failed, but we still try to
set the clipboard for the first view during shutdown.
Change-Id: I21e5742ae4fcd4b24daf2888f3d64aae437d4fda
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176812
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
The trouble with signing via ca/cert/key PEM files is that usually the
CA is not trusted by the received of the signature. 3rd-party services
are available to do generate trusted signatures, but then you need to
share your document with them, which can be also problematic.
A middle-ground here is to sign the hash of the document by a 3rd-party,
something that's supported by e.g.
<https://docs.eideasy.com/electronic-signatures/api-flow-with-file-hashes-pdf.html>
(which itself aggregates a number of providers).
As a first step, add LOK API to get what would be the signature time
during signing -- but instead of actually signing, just return this
information. Once the same is done with the doc hash, this is supposed
to provide the same info than what the reference
<https://github.com/eideasy/eideasy-external-pades-digital-signatures>
app does.
This is only a start: incrementally replace XCertificate with
SignatureContext, which allows aborting the signing right before calling
into NSS, and also later it'll allow injecting the PKCS#7 object we get
from the 3rd-party.
Change-Id: I108564f047fdb4fb796240c7d18a584cd9044313
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176279
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
we can just take a "const &".
(found by running clang-tidy with the
performance-unnecessary-copy-initialization warning)
Change-Id: I20fd208c65303da78170b1ac06c638fdf3aa094b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176267
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
This command removes formatting for content controls such as rich text, checkbox, dropdown, picture, and date controls. It deletes only the content control formatting, not the actual content of the section.
Here are some todos:
- Add test case for delete
- undo/redo for this uno command
Change-Id: Ib1b3b62ff7d62fd971472eff49a58c5afd786dc8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175927
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 5d4ae3db293b0f9c46cbc09d0391806e1ed7b362)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176067
Tested-by: Jenkins
Reviewed-by: vivek javiya <vivek.javiya@collabora.com>
now that the other end can use html
Change-Id: Idb7959b041ebbbd9284007594473019cf603981f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175166
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
(cherry picked from commit 9ed5dd5d1b48b9a17967d85c0fad4994c40caafa)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175998
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Previously we had the ability to export to various formats, but these
weren't exposed in a way that LOK could request them. We want to
increase the options available for export, so we need to make these
available.
Change-Id: I1c05aeec8de32929481059bcfd02cac05a46788d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174602
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 541272d3eaa322ccdd1b926add031a39faeccf49)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175981
Tested-by: Jenkins
which allows us to eliminate a bunch of rounding at various layers, and
consequently maintain a lot more precision
Change-Id: I911dedd7c041c1d67396c082e5695346ea689acb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175814
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This was seen when checking grammar checker suggestion.
When I click on the top element of the context menu of
underlined text (e.g. Grammar error), I get
warn:lok:1663798:1663791:desktop/source/lib/init.cxx:283:
lok exception 'Failed to dispatch .uno:None'
This .uno:None was introduced by Tamas Zolnai especially for
LOK: 3616bb68f2
His intention was to add an empty command that does nothing.
Change-Id: I12a9a1e17dcf65cdd78266f44e6201ed3d5fa01f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175102
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit bdb0dd485da24a95b61df6136362ab189803bc27)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175845
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Jenkins
No longer use a "Accessibility"/"EnableATToolSupport"
VCL setting to control/report whether support for
assistive technology is (or should be) enabled,
which was primarily used on Windows.
As described in previous commit
Change-Id: I32624b830d39d08510e4731edd06fd7a77642c50
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Oct 28 21:12:48 2024 +0100
win a11y: Drop "Enable AT Tool support" from options UI
, that setting got automatically enabled when an assistive
technology was active on Windows, and never got reset to
"false" automatically, so AT support would be enabled
next time LO starts as well.
Instead of persisting this via a setting, enable the
Windows a11y bridge if and when a WM_GETOBJECT message
is received only, see `ImplHandleGetObject` (where this
was already done earlier) and no longer alternatively
start the a11y bridge in Desktop::Main when the mentioned
setting is enabled.
Drop MiscSettings::SetEnableATToolSupport altogether.
Adjust MiscSettings::GetEnableATToolSupport to no longer
read a setting, but return `true` if the AT bridge
has been activated (or a SAL_ACCESSIBILITY_ENABLED
environment variable is set, as was already checked
before).
This already returns `true` when called from
MenuBarManager::FillMenuManager when starting
LO while the NVDA screen reader is running.
With this in place, the a11y bridge on Windows
should now become active whenever an AT requests
information (by sending a WM_GETOBJECT message),
but not otherwise, and restarting LO will result
in the a11y bridge no longer being active unless
AT requests information again.
Change-Id: I42f0059cecd43205690d958a875d3c17ff9a197b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175795
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Add an assert that creating the MSAAservice/a11 bridge
succeeds in ImplInitAccessBridge on Windows, as this
should never fail unless the LibreOffice installation is broken.
Drop the return values of the ImplInitAccessBridge
and InitAccessBridge functions accordingly and
simplify code calling them.
While at it, also switch to using `#ifdef _WIN32` for
the Windows-specific code in `InitAccessBridge`
instead of having it in the `#else` branch of
`#if defined UNX`, to align this with the `#ifdef _WIN32`
condition for the `ImplInitAccessBridge` declaration,
as that's the function that gets called.
Even if the creation of the service should fail for some
reason, the DeploymentException in ImplInitAccessBridge
is still handled, so unless I'm missing something, this
commit shouldn't cause any harm. The "EnableATToolSupport"
setting would then incorrectly be set to true indicating
that AT support is enabled, but besides being used in
the a11y bridge code itself, that's only used to determine
whether or not to pre-populate menus, so they are
available in the a11y hierarchy before the corresponding
(sub)menu gets activated, s. MenuBarManager::FillMenuManager,
the corresponding commit that originally introduced this,
commit 08fe2669a0
Author: Rüdiger Timm <rt@openoffice.org>
Date: Fri May 13 06:29:54 2005 +0000
INTEGRATION: CWS tbe22 (1.25.30); FILE MERGED
2005/05/04 14:21:00 tbe 1.25.30.1: #i48612# Opening a menu with GOK shows Tips instead of entries (fixed by CD)
and the referenced bug report [1], in particular comment 3 [2]:
> TBE->CD: As discussed, the accessibility hierarchy is built up, but part of the
> information is missing, e.g. Menu::GetItemText() returns an empty string.
> Also keyboard shortcuts should be available.
> In addition, the File/New menu and the File/Wizards menu are missing.
> All this information is only available, after the corresponding menus have
> been opened by the user.
>
> In OO.o 1.1.x all this was working. The AT tools require, that the whole menu
> hierarchy is available as soon as the menu bar is visible, that means before
> a user has opened a menu.
>
> The whole menu hierarchy must be only provided, if accessiblity is enabled.
> This can be checked by
> BOOL bAccessibilityEnabled =
> Application::GetSettings().GetMiscSettings().GetEnableATToolSupport();
This commit is also in preparation of further simplifying
the handling for that setting.
[1] https://bz.apache.org/ooo/show_bug.cgi?id=48612
[2] https://bz.apache.org/ooo/show_bug.cgi?id=48612#c3
Change-Id: I46149ed215c354d33003513d55defe4920a7c381
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175565
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
and
cid#1633780 Initialization or destruction ordering is unspecified
cid#1633778 Initialization or destruction ordering is unspecified
cid#1633777 Initialization or destruction ordering is unspecified
cid#1633776 Initialization or destruction ordering is unspecified
Change-Id: I8ae7cbede6df2ad747fe57d0ac2800e1b6a31038
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175576
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
V1037 Two or more case-branches perform the same actions. Check lines: 717, 733
Change-Id: I57fc125abb8c9a4c9dea197945f45b95b90e41b7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175320
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
so we can fix a shutdown use-after-free in sot.
Change-Id: I32f83bd94627d72d7bee7ea2ebd6ab77a7f78435
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175335
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Instead of using a custom (non-recursive) std::mutex in the
extension manager dialog, hold the (recursive) SolarMutex instead.
As the backtrace in attachment 197155 in tdf#161625 (s.a. below)
shows, a recursive mutex is needed:
dp_gui::ExtMgrDialog::TimeOutHdl (frame 17) locks the mutex, then
dp_gui::ExtMgrDialog::startProgress (frame 6) wants to lock it
again, causing a deadlock.
(Switching ExtMgrDialog::m_aMutex to be a std::recursive_mutex
could be an alternative, but follow the common pattern of holding
the SolarMutex while doing UI stuff instead.)
Somewhat similar commit:
commit 406a7e9d45
Date: Wed Jul 10 12:46:50 2024 +0200
fix locking in UpdateRequiredDialog
Backtrace of deadlock:
#0 0x00007f883f6adc70 in ?? () from /usr/lib/libc.so.6
#1 0x00007f883f6b4b01 in pthread_mutex_lock () from /usr/lib/libc.so.6
#2 0x00007f87f3ea068e in __gthread_mutex_lock (__mutex=0x5782aab26e48) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h:762
#3 std::mutex::lock (this=0x5782aab26e48) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/std_mutex.h:113
#4 std::unique_lock<std::mutex>::lock (this=<optimized out>) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_lock.h:147
#5 std::unique_lock<std::mutex>::unique_lock (__m=..., this=<optimized out>) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_lock.h:73
#6 dp_gui::ExtMgrDialog::startProgress (this=0x5782aab26de0, _bLockInterface=0x80) at /home/user/libreofficetwo/desktop/source/deployment/gui/dp_gui_dialog2.cxx:779
#7 0x00007f883b4080a1 in Link<void*, void>::Call (this=0x7f86b0000c08, data=0x80) at include/tools/link.hxx:111
#8 ImplHandleUserEvent (pSVEvent=pSVEvent@entry=0x7f86b0000c00) at /home/user/libreofficetwo/vcl/source/window/winproc.cxx:2285
#9 0x00007f883b40616a in ImplWindowFrameProc (_pWindow=0x5782a76df9f0, nEvent=SalEvent::UserEvent, pEvent=0x7f86b0000c00) at /home/user/libreofficetwo/vcl/source/window/winproc.cxx:2849
#10 0x00007f883b6c711e in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=<optimized out>) at /home/user/libreofficetwo/vcl/source/app/salusereventlist.cxx:119
#11 SalUserEventList::DispatchUserEvents (this=0x5782a62edb08, bHandleAllCurrentEvents=false) at /home/user/libreofficetwo/vcl/source/app/salusereventlist.cxx:120
#12 0x00007f8833fb7827 in QtInstance::ImplYield (this=this@entry=0x5782a62edad0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:447
#13 0x00007f8833fb9e11 in QtInstance::DoYield (this=0x5782a62edad0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:469
#14 0x00007f883b70fc72 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:385
#15 Application::Yield () at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:473
#16 0x00007f883b486415 in ProgressBar::SetValue (this=<optimized out>, nNewPercent=<optimized out>) at /home/user/libreofficetwo/vcl/source/control/prgsbar.cxx:199
#17 0x00007f87f3ea14ca in dp_gui::ExtMgrDialog::TimeOutHdl (this=0x5782aab26de0) at /home/user/libreofficetwo/desktop/source/deployment/gui/dp_gui_dialog2.cxx:976
#18 0x00007f883b6ff8c7 in Scheduler::CallbackTaskScheduling () at /home/user/libreofficetwo/vcl/source/app/scheduler.cxx:509
#19 0x00007f8833fd4013 in SalTimer::CallCallback (this=0x5782a77b83d0) at vcl/inc/saltimer.hxx:53
#20 QtTimer::timeoutActivated (this=0x5782a77b83c0) at vcl/qt6/../qt5/QtTimer.cxx:51
#21 0x00007f88341a3397 in ?? () from /usr/lib/libQt6Core.so.6
#22 0x00007f88341ab5e5 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQt6Core.so.6
#23 0x00007f883418d859 in QObject::event(QEvent*) () from /usr/lib/libQt6Core.so.6
#24 0x00007f8832efc8cc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt6Widgets.so.6
#25 0x00007f8834145aa8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt6Core.so.6
#26 0x00007f88342c7658 in QTimerInfoList::activateTimers() () from /usr/lib/libQt6Core.so.6
#27 0x00007f88343a9f99 in ?? () from /usr/lib/libQt6Core.so.6
#28 0x00007f8837877299 in ?? () from /usr/lib/libglib-2.0.so.0
#29 0x00007f88378d9ec7 in ?? () from /usr/lib/libglib-2.0.so.0
#30 0x00007f8837876795 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#31 0x00007f88343a82bd in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Core.so.6
#32 0x00007f8833fb789d in QtInstance::ImplYield (this=this@entry=0x5782a62edad0, bWait=<optimized out>, bHandleAllCurrentEvents=<optimized out>) at vcl/qt6/../qt5/QtInstance.cxx:458
#33 0x00007f8833fb9e11 in QtInstance::DoYield (this=0x5782a62edad0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:469
#34 0x00007f883b70fc72 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:385
#35 Application::Yield () at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:473
#36 0x00007f883b70fb90 in Application::Execute () at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:360
#37 0x00007f883f8e1770 in desktop::Desktop::Main (this=0x7ffc2a5b0d28) at /home/user/libreofficetwo/desktop/source/app/app.cxx:1691
#38 0x00007f883b717e1e in ImplSVMain () at /home/user/libreofficetwo/vcl/source/app/svmain.cxx:228
#39 0x00007f883f90ef8a in soffice_main () at /home/user/libreofficetwo/desktop/source/app/sofficemain.cxx:121
#40 0x000057829d6f683b in sal_main () at /home/user/libreofficetwo/desktop/source/app/main.c:51
#41 main (argc=<optimized out>, argv=<optimized out>) at /home/user/libreofficetwo/desktop/source/app/main.c:49
Change-Id: I96d746eb1493aaf5b56d50664c9d1817699f21bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175298
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com>
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
...as is convenient for some experiments
Change-Id: I74aedb38ecc0f7b5a0d913799f649dce77dc7bba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174753
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
No idea why my local Windows build started to only now fail with
> [build CXX] desktop/source/app/updater.cxx
> C:\lo\core\include\vcl/svapp.hxx(491): error C2208: 'void': no members defined using this type
> C:\lo\core\include\vcl/svapp.hxx(491): warning C4091: 'static ': ignored on left of 'void' when no variable is declared
or how to potentially address that properly with prewin.h/postwin.h...
Change-Id: I8afbc0c485505ee8ab2cb956c58835bb6a73cab8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174390
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
Crashreport backtrace:
> program/libmergedlo.so
> getStyles
> desktop/source/lib/init.cxx:6411
> program/libmergedlo.so
> doc_getCommandValues
> desktop/source/lib/init.cxx:6666
Which is probably a call on an already disposed document. Fix it similar
to how getFonts() does it.
Change-Id: I1744bd04b7ebdea1b69ca121b8cfa47314d67528
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174372
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
This reverts commit ebd3f0971b.
Conflicts:
desktop/win32/source/loader.cxx
vcl/win/window/salframe.cxx
Reason for revert: This fallback functionality was documented as deprecated at
<https://wiki.documentfoundation.org/index.php?title=ReleaseNotes/24.8&oldid=738731>
"fundamental.override.ini", to "be removed in a later version", which is
happening now for LO 25.2.
Change-Id: I40a1800f6a05fc7fd7188917083b269ce6a9f1d2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163394
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Adds the option to convert a reply comment into a new top comment
while preserving the parent-child realtions of the other comments
in the thread.
Change-Id: I3cd5e5466fadc2226651d7c244b5139ec2d1f949
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173051
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173870
Reviewed-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Tested-by: Jenkins
In case signing certificate would be stored in the model (like it
happens on the desktop), then the certificate viewer would show all
signing certs of the currently editing users, which is far from
expected.
At the same time, there is just one NSS database per process, so it's
hard to not have them in the same database.
Fix the problem by storing a reference to the signing key in the view
shell, then we can show only that in xmlsecurity/ in LOK mode, and thing
else.
This is just the sfx2/ side of things, the xmlsecurity/ part still needs
implementing.
Change-Id: Id7a56f28598ec60217c6bac095c2ff350f39bc3b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173837
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
The desktop way to sign documents is to manually import a .p12 file into
your Firefox user profile, and then the signing key is available in all
views. The LOK case wants per-view signing certificates, set in a way
similar to the name of the user.
Start implementing this by:
1) Extending initializeForRendering() to have JSON entries for the
signing cert/key/ca chain.
2) Importing the CA chain as trusted certificates, using a new
SfxLokHelper::extractCertificates() + test for this.
3) Marking a certificate as trusted is tricky, extract
SfxLokHelper::addCertificate() from the existing doc_addCertificate()
to do this.
4) Parsing the signing certificate, but just warn if that fails, still
need to connect that to the SfxViewShell later.
Change-Id: I00e40b3cdd68dbe8994f28861dc7b0f578189643
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173806
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
The suggested canvas size need to be passed to createSlideRenderer.
masterPageObjectsVisible -> masterPageObjectsVisibility as on client.
Last json message should be reset on each call to renderNextLayer.
In order to avoid to send empty layer check if the json message has
been set.
After rendering the background layer we need to return or the layer
is never received.
Change-Id: I9a83895d4f3895f3363c1b6a86fac9bd22c9fe87
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173728
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
I want to improve extractCertificate() so it can work on a certificate
chain, but that's easier when this code is not directly in desktop/, but
at some lower level.
This allows covering the code with tests from CppunitTest_sfx2_view in a
follow-up change.
If this code will be needed by some non-LOK area as well, then it can be
moved down further, but let's wait for a second area first.
Change-Id: I6291da0c3e56aed7dca1a8dc1446209044cace92
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173691
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins