summaryrefslogtreecommitdiff
path: root/offapi/com
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2024-09-10 10:11:54 +0200
committerMiklos Vajna <vmiklos@collabora.com>2024-09-10 11:27:46 +0200
commit07df95e75a728fbbce03f6d6efdf9dbceab6c581 (patch)
tree337f1f072bda7ac4e81e64f0c4016572afba94eb /offapi/com
parent854107d275aac0f4042a154145b95c34543f24c5 (diff)
cool#9992 lok doc sign: async DocumentDigitalSignatures::ImplViewSignatures()
Currently SfxObjectShell::CheckIsReadonly() has a hack for the LOK case to show the signatures dialog read-only, as only that is async. The next step is to make DocumentDigitalSignatures::ImplViewSignatures() async, though that requires all callers of the function to be async, so make DocumentDigitalSignatures::signScriptingContent() async as well. There is also DocumentDigitalSignatures::signPackage(), but turns out that's dead code, so just remove it. Once this is in place, we had a problem that the callbacks tried to interact with libxmlsec, but the dialog was still alive in DocumentDigitalSignatures::ImplViewSignatures() by the time the callback was running, so there were two DocumentSignatureManager instances at the same time, and both assumes it should call the global libxmlsec init/uninit, which resulted in failing to verify the just created signature. Fix this similar to how Tomaz fixed the same problem around pdfium in commit 067a8a954c8e1d8d6465a4ab5fb61e93f16c26c2 (pdfium: only init pdfium library one and destroy on LO exit, 2020-06-03). Change-Id: I3fb63c06195564732e1576dbd755157e676fb762 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173117 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'offapi/com')
-rw-r--r--offapi/com/sun/star/security/XDocumentDigitalSignatures.idl4
1 files changed, 4 insertions, 0 deletions
diff --git a/offapi/com/sun/star/security/XDocumentDigitalSignatures.idl b/offapi/com/sun/star/security/XDocumentDigitalSignatures.idl
index cd201d080f82..04f9ef95c1e5 100644
--- a/offapi/com/sun/star/security/XDocumentDigitalSignatures.idl
+++ b/offapi/com/sun/star/security/XDocumentDigitalSignatures.idl
@@ -78,6 +78,8 @@ interface XDocumentDigitalSignatures : com::sun::star::uno::XInterface
/** signs the content of the Scripting including macros and basic dialogs
<p>The rest of document content will not be signed.</p>
+
+ Deprecated, this synchronous version would block the UI till signing is in progress.
*/
boolean signScriptingContent( [in] ::com::sun::star::embed::XStorage xStorage,
[in] ::com::sun::star::io::XStream xSignStream);
@@ -102,6 +104,8 @@ interface XDocumentDigitalSignatures : com::sun::star::uno::XInterface
string getScriptingContentSignatureDefaultStreamName();
/** signs the full Package, which means everything in the storage except the content of META-INF
+
+ Deprecated, this synchronous version would block the UI till signing is in progress.
*/
boolean signPackage( [in] ::com::sun::star::embed::XStorage Storage,
[in] ::com::sun::star::io::XStream xSignStream);