loleaflet/html/framed.doc.html | 5 +++-- loleaflet/src/map/handler/Map.WOPI.js | 1 + test/UnitWOPI.cpp | 10 +++++++++- test/data/empty.odt |binary wsd/ClientSession.cpp | 5 +++++ wsd/FileServer.cpp | 5 +++-- 6 files changed, 21 insertions(+), 5 deletions(-)
New commits: commit bc2fbb24ce4c84e44ae156ff207cc62f95bea302 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> AuthorDate: Sun Nov 17 08:46:05 2019 -0500 Commit: Michael Meeks <michael.me...@collabora.com> CommitDate: Mon Nov 25 15:13:44 2019 +0100 test: validate ExtendedData sent to WOPI (cherry picked from commit 4bad59f6bf4c6a92933cf5d01b8086df76653376) Change-Id: Ib5da41e7f1ca7547ea6ac43daefa4b0259ba4c41 Reviewed-on: https://gerrit.libreoffice.org/83049 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Michael Meeks <michael.me...@collabora.com> diff --git a/test/UnitWOPI.cpp b/test/UnitWOPI.cpp index 3e1542d9b..8756f7bb9 100644 --- a/test/UnitWOPI.cpp +++ b/test/UnitWOPI.cpp @@ -70,6 +70,10 @@ public: // and this test fakes that it's an autosave CPPUNIT_ASSERT_EQUAL(std::string("true"), request.get("X-LOOL-WOPI-IsAutosave")); + // Check that we get the extended data. + CPPUNIT_ASSERT_EQUAL(std::string("CustomFlag=Custom Value;AnotherFlag=AnotherValue"), + request.get("X-LOOL-WOPI-ExtendedData")); + _finishedSaveModified = true; } @@ -105,7 +109,11 @@ public: } case Phase::SaveModified: { - helpers::sendTextFrame(*_ws->getLOOLWebSocket(), "save dontTerminateEdit=0 dontSaveIfUnmodified=0", testName); + helpers::sendTextFrame(*_ws->getLOOLWebSocket(), + "save dontTerminateEdit=0 dontSaveIfUnmodified=0 " + "extendedData=CustomFlag%3DCustom%20Value%3BAnotherFlag%" + "3DAnotherValue", + testName); _phase = Phase::Polling; _savingPhase = SavingPhase::Modified; commit 89b776e2208b1982985154296cc5bbe77c021989 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> AuthorDate: Sat Nov 16 11:59:39 2019 -0500 Commit: Michael Meeks <michael.me...@collabora.com> CommitDate: Mon Nov 25 15:13:35 2019 +0100 Encode the ExtendedData to make it safer while embedding in messages (cherry picked from commit ddfe37623667af720486ffd70404fc5a12983718) Change-Id: I1d4bdb2775d89e9a52a96d833228ca8577ee3561 Reviewed-on: https://gerrit.libreoffice.org/83048 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Michael Meeks <michael.me...@collabora.com> diff --git a/loleaflet/html/framed.doc.html b/loleaflet/html/framed.doc.html index 55e73ab37..26516ff76 100644 --- a/loleaflet/html/framed.doc.html +++ b/loleaflet/html/framed.doc.html @@ -48,7 +48,7 @@ function save() { post({'MessageId': 'Action_Save', - 'Values': { 'Notify': true, 'ExtendedData': 'CustomFlag=CustomValue;AnotherFlag=AnotherValue' } + 'Values': { 'Notify': true, 'ExtendedData': 'CustomFlag=Custom Value;AnotherFlag=AnotherValue' } }); } @@ -90,9 +90,10 @@ <body style="user-select: none;"> + <p>Note: Set net/frame_ancestors in loolwsd.xml to contain 'file:' (without the quotes, but with the colon), otherwise you will get CSP violation. And force reload, or clear caches, otherwise you might get served from the browser cache..</p> <form id="insert-text-form"> Click <button onclick="insertText(document.forms['insert-text-form'].elements['source'].value); return false;">here</button> to insert the following text into the document: - <textarea name="source" value="" rows="10" cols="80"></textarea> + <textarea name="source" value="" rows="5" cols="50"></textarea> </form> <form id="insert-text-form"> diff --git a/loleaflet/src/map/handler/Map.WOPI.js b/loleaflet/src/map/handler/Map.WOPI.js index 43f2f2205..fad51c6b3 100644 --- a/loleaflet/src/map/handler/Map.WOPI.js +++ b/loleaflet/src/map/handler/Map.WOPI.js @@ -269,6 +269,7 @@ L.Map.WOPI = L.Handler.extend({ var dontTerminateEdit = msg.Values && msg.Values['DontTerminateEdit']; var dontSaveIfUnmodified = msg.Values && msg.Values['DontSaveIfUnmodified']; var extendedData = msg.Values && msg.Values['ExtendedData']; + extendedData = encodeURIComponent(extendedData); this._notifySave = msg.Values && msg.Values['Notify']; this._map.save(dontTerminateEdit, dontSaveIfUnmodified, extendedData); diff --git a/test/data/empty.odt b/test/data/empty.odt index 6b0747507..fd744ab0f 100644 Binary files a/test/data/empty.odt and b/test/data/empty.odt differ diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp index 1279cb3ae..c83d3abb2 100644 --- a/wsd/ClientSession.cpp +++ b/wsd/ClientSession.cpp @@ -278,7 +278,12 @@ bool ClientSession::_handleInput(const char *buffer, int length) std::string extendedData; if (tokens.size() > 3) + { getTokenString(tokens[3], "extendedData", extendedData); + std::string decoded; + Poco::URI::decode(extendedData, decoded); + extendedData = decoded; + } constexpr bool isAutosave = false; constexpr bool isExitSave = false; diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp index 25b00c325..6fb0c4767 100644 --- a/wsd/FileServer.cpp +++ b/wsd/FileServer.cpp @@ -276,7 +276,7 @@ void FileServerRequestHandler::handleRequest(const HTTPRequest& request, Poco::M std::string path(requestUri.getPath()); if (path.find("loleaflet/" LOOLWSD_VERSION_HASH "/") == std::string::npos) { - LOG_WRN("client - server version mismatch, disabling browser cache."); + LOG_WRN("client - server version mismatch, disabling browser cache. Expected: " LOOLWSD_VERSION_HASH); noCache = true; } @@ -803,7 +803,8 @@ void FileServerRequestHandler::preprocessFile(const HTTPRequest& request, Poco:: oss << "\r\n" << preprocess; - socket->send(oss.str()); + preprocess = oss.str(); + socket->send(preprocess); LOG_DBG("Sent file: " << relPath << ": " << preprocess); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits