diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js index 87cf380f4..63a47d4bc 100644 --- a/loleaflet/src/layer/tile/TileLayer.js +++ b/loleaflet/src/layer/tile/TileLayer.js @@ -452,7 +452,7 @@ L.TileLayer = L.GridLayer.extend({ else if (textMsg.startsWith('statechanged:')) { this._onStateChangedMsg(textMsg); } - else if (textMsg.startsWith('status:')) { + else if (textMsg.startsWith('status:') || textMsg.startsWith('statusupdate:')) { this._onStatusMsg(textMsg); } else if (textMsg.startsWith('textselection:')) { diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp index e12f57a46..f10f08724 100644 --- a/wsd/ClientSession.cpp +++ b/wsd/ClientSession.cpp @@ -404,6 +404,7 @@ bool ClientSession::_handleInput(const char *buffer, int length) tokens[0] != "selectclientpart" && tokens[0] != "setpage" && tokens[0] != "status" && + tokens[0] != "statusupdate" && tokens[0] != "tile" && tokens[0] != "tilecombine" && tokens[0] != "uno" && @@ -419,6 +420,7 @@ bool ClientSession::_handleInput(const char *buffer, int length) tokens[0] != "removesession" && tokens[0] != "renamefile") { + LOG_ERR("Session [" << getId() << "] got unknown command [" << tokens[0] << "]."); sendTextFrame("error: cmd=" + tokens[0] + " kind=unknown"); return false; } @@ -481,7 +483,7 @@ bool ClientSession::_handleInput(const char *buffer, int length) { return sendFontRendering(buffer, length, tokens, docBroker); } - else if (tokens[0] == "status") + else if (tokens[0] == "status" || tokens[0] == "statusupdate") { assert(firstLine.size() == static_cast(length)); return forwardToChild(firstLine, docBroker); diff --git a/wsd/protocol.txt b/wsd/protocol.txt index 0df5bdb9c..a1bdb39cb 100644 --- a/wsd/protocol.txt +++ b/wsd/protocol.txt @@ -373,11 +373,16 @@ saveas: url= name= is the resulting name (without path) that was created on the wopi host. It can differ from what was requested in case the file already existed. -status: type= parts= current= width= height= viewid= [partNames] +status: type= parts= current= width= height= viewid= hiddenparts= selectedparts= [partNames] is 'text, 'spreadsheet', 'presentation', 'drawing' or 'other. Others are numbers. if the document has multiple parts and those have names, part names follow separated by '\n' +statusupdate: type= parts= current= width= height= viewid= hiddenparts= selectedparts= [partNames] + + Same as status: but issued whenever the document parts have updated significantly. + status: implies document loading. statusupdate: is just an update. + styles: {"styleFamily": ["styles in family"], etc. } statechanged: =