[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - kit/ChildSession.cpp kit/Kit.cpp wsd/protocol.txt

Pranam Lashkari (via logerrit) logerrit at kemper.freedesktop.org
Fri Jul 24 05:27:46 UTC 2020


 kit/ChildSession.cpp |    4 ----
 kit/Kit.cpp          |    2 ++
 wsd/protocol.txt     |    7 +++++++
 3 files changed, 9 insertions(+), 4 deletions(-)

New commits:
commit 1783c86765f60ac481e046c915581dfdd0eb6615
Author:     Pranam Lashkari <lpranam at collabora.com>
AuthorDate: Thu Jul 16 22:00:40 2020 +0530
Commit:     Aron Budea <aron.budea at collabora.com>
CommitDate: Fri Jul 24 07:27:27 2020 +0200

    tdf#129296 leaflet: Password protected document load failing
    
    Do not send faileddocloading error if it is because of password.
    
    When the document is password protected, we send to the client
    both passwordrequired and faileddocloading.
    These two are handled differently. While the first prompts the
    user for password input, the second internally flags fatal error
    and shows an error message that the document may be corrupted etc.
    The end result is that the document is not loaded and displayed
    when the user submits a correct password. To reset the fatal
    error one has to reload, which is unhelpful when we need to
    provide a password.
    
    This patch makes sure that we only send one error message to
    the client. If a password is required, it already implies that
    the document didn't load, and that with the proper password we
    should try again.
    Similarly for when the password given is wrong. However, if
    loading fails and it isn't a password-related failure,
    faileddocloading error is returned and in this case the client
    handles it as a final error (that requires reloading to retry).
    
    Change-Id: I383418fd40b6e0749b20af0ef8dc40f391a05559
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98676
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    (cherry picked from commit 22359767d6748e0447eea32d792c83b10b36e5b1)
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/99290
    Reviewed-by: Aron Budea <aron.budea at collabora.com>

diff --git a/kit/ChildSession.cpp b/kit/ChildSession.cpp
index b11763a05..b0aa69701 100644
--- a/kit/ChildSession.cpp
+++ b/kit/ChildSession.cpp
@@ -213,10 +213,6 @@ bool ChildSession::_handleInput(const char *buffer, int length)
         }
 
         _isDocLoaded = loadDocument(buffer, length, tokens);
-        if (!_isDocLoaded)
-        {
-            sendTextFrameAndLogError("error: cmd=load kind=faileddocloading");
-        }
 
         LOG_TRC("isDocLoaded state after loadDocument: " << _isDocLoaded << '.');
         return _isDocLoaded;
diff --git a/kit/Kit.cpp b/kit/Kit.cpp
index 743251fef..3e4944740 100644
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -1743,8 +1743,10 @@ private:
                         LOG_INF("Wrong password for password-protected document [" << uriAnonym << "].");
                         session->sendTextFrameAndLogError("error: cmd=load kind=wrongpassword");
                     }
+                    return nullptr;
                 }
 
+                session->sendTextFrameAndLogError("error: cmd=load kind=faileddocloading");
                 return nullptr;
             }
 
diff --git a/wsd/protocol.txt b/wsd/protocol.txt
index 927348bff..0cfacf2ed 100644
--- a/wsd/protocol.txt
+++ b/wsd/protocol.txt
@@ -29,6 +29,13 @@ code here and there that assumes that parameters are in a specific
 order anyway, thus losing the benefits of the named parameters. Oh
 well.
 
+When the document is password protected, it already implies that the
+document didn't load, and that with the proper password we should try
+again. Similarly for when the password given is wrong. However, if
+loading fails and it isn't a password-related failure,
+faileddocloading error is returned and in this case the client handles
+it as a final error (that requires reloading to retry).
+
 client -> server
 ================
 


More information about the Libreoffice-commits mailing list