[Libreoffice-commits] online.git: 3 commits - loleaflet/src wsd/FileServer.cpp wsd/FileServer.hpp

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Jul 24 11:33:37 UTC 2018


 loleaflet/src/control/Toolbar.js |   13 ++++++++-
 wsd/FileServer.cpp               |   54 +++++++++++++++++++--------------------
 wsd/FileServer.hpp               |    5 ++-
 3 files changed, 43 insertions(+), 29 deletions(-)

New commits:
commit 594348b6fee74fdcb95f15247562ce485a66350f
Author:     George Wood <gwoodcode at gmail.com>
AuthorDate: Tue Jul 24 12:19:52 2018 +0100
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Tue Jul 24 12:27:35 2018 +0100

    enables debug mode to be turned on from the about screen by pressing d.
    
    Also fixes focus issue with map after closing dialog.

diff --git a/loleaflet/src/control/Toolbar.js b/loleaflet/src/control/Toolbar.js
index 8d1cebcf5..6c7360df9 100644
--- a/loleaflet/src/control/Toolbar.js
+++ b/loleaflet/src/control/Toolbar.js
@@ -1,3 +1,4 @@
+/* -*- js-indent-level: 8 -*- */
 /*
  * Toolbar handler
  */
@@ -186,6 +187,7 @@ L.Map.include({
 				contentCSS: {width: w + 'px'},
 				buttons: {},
 				afterOpen: function($vexContent) {
+					map.enable(false);
 					// Display help according to document opened
 					if (map.getDocType() === 'text') {
 						document.getElementById('text-shortcuts').style.display='block';
@@ -197,7 +199,7 @@ L.Map.include({
 						document.getElementById('presentation-shortcuts').style.display='block';
 					}
 
-					// Lets transalte
+					// Lets translate
 					var i, max;
 					var translatableContent = $vexContent.find('h1');
 					for (i = 0, max = translatableContent.length; i < max; i++) {
@@ -225,6 +227,7 @@ L.Map.include({
 				},
 				beforeClose: function () {
 					map.focus();
+					map.enable(true);
 				}
 			});
 		});
@@ -240,6 +243,11 @@ L.Map.include({
 		content.find('#product-string').text(productString.replace('%productName', productName));
 		var w = window.innerWidth / 2;
 		var map = this;
+		var handler = function(event) {
+			if (event.keyCode === 68) {
+				map._docLayer.toggleTileDebugMode();
+			}
+		};
 		vex.open({
 			content: content,
 			showCloseButton: true,
@@ -249,6 +257,7 @@ L.Map.include({
 			buttons: {},
 			afterOpen: function($vexContent) {
 				map.enable(false);
+				$(window).bind('keyup.vex', handler);
 				// workaround for https://github.com/HubSpot/vex/issues/43
 				$('.vex-overlay').css({ 'pointer-events': 'none'});
 				$('.vex').click(function() {
@@ -259,7 +268,9 @@ L.Map.include({
 				});
 			},
 			beforeClose: function () {
+				$(window).unbind('keyup.vex', handler)
 				map.enable(true);
+				map.focus();
 			}
 		});
 	}
commit 73b8da4ab009248badbf041fb2d63a40c3ebad9d
Author:     George Wood <gwoodcode at gmail.com>
AuthorDate: Mon Jul 23 13:37:34 2018 +0100
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Tue Jul 24 12:27:35 2018 +0100

    Cleanup error reporting.

diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp
index 6af1be5d7..6b7ba63bd 100644
--- a/wsd/FileServer.cpp
+++ b/wsd/FileServer.cpp
@@ -413,48 +413,43 @@ void FileServerRequestHandler::handleRequest(const HTTPRequest& request, Poco::M
     catch (const Poco::Net::NotAuthenticatedException& exc)
     {
         LOG_ERR("FileServerRequestHandler::NotAuthenticated: " << exc.displayText());
-
-        // Unauthorized.
-        std::ostringstream oss;
-        oss << "HTTP/1.1 401\r\n"
-            << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
-            << "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
-            << "Content-Length: 0\r\n"
-            << "WWW-Authenticate: Basic realm=\"online\"\r\n"
-            << "\r\n";
-        socket->send(oss.str());
+        sendError(401, request, socket, "", "", "WWW-authenticate: Basic realm=\"online\"\r\n");
     }
     catch (const Poco::FileAccessDeniedException& exc)
     {
         LOG_ERR("FileServerRequestHandler: " << exc.displayText());
-
-        // TODO return some 403 page?
-        std::ostringstream oss;
-        oss << "HTTP/1.1 403\r\n"
-            << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
-            << "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
-            << "Content-Length: 0\r\n"
-            << "\r\n";
-        socket->send(oss.str());
+        sendError(403, request, socket, "403 - Access denied!",
+                  "You are unable to access");
     }
     catch (const Poco::FileNotFoundException& exc)
     {
         LOG_WRN("FileServerRequestHandler: " << exc.displayText());
-        Poco::URI requestUri(request.getURI());
-        std::string path(requestUri.getPath());
+        sendError(404, request, socket, "404 - file not found!",
+                  "There seems to be a problem locating");
+    }
+}
 
-        // 404 not found
-        std::ostringstream oss;
-        oss << "HTTP/1.1 404\r\n"
-            << "Content-Type: text/html charset=UTF-8\r\n"
-            << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
-            << "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
-            << "\r\n"
-            << "<h1>Error 404 - page not found!</h1>"
-            << "<p>There appears to be an error locating " << path << ".</p>"
+void FileServerRequestHandler::sendError(int errorCode, const Poco::Net::HTTPRequest& request,
+                                         const std::shared_ptr<StreamSocket>& socket,
+                                         std::string shortMessage, std::string longMessage,
+                                         std::string extraHeader)
+{
+    Poco::URI requestUri(request.getURI());
+    std::string path(requestUri.getPath());
+    std::ostringstream oss;
+    oss << "HTTP/1.1 " << errorCode << "\r\n"
+        << "Content-Type: text/html charset=UTF-8\r\n"
+        << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+        << "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
+        << extraHeader
+        << "\r\n";
+    if (!shortMessage.empty())
+    {
+        oss << "<h1>Error: " << shortMessage << "</h1>"
+            << "<p>" << longMessage << " " << path << "</p>"
             << "<p>Please contact your system administrator.</p>";
-        socket->send(oss.str());
     }
+    socket->send(oss.str());
 }
 
 void FileServerRequestHandler::readDirToHash(const std::string &basePath, const std::string &path)
diff --git a/wsd/FileServer.hpp b/wsd/FileServer.hpp
index 8bcc662c7..62647b4c0 100644
--- a/wsd/FileServer.hpp
+++ b/wsd/FileServer.hpp
@@ -41,7 +41,10 @@ public:
     static const std::string *getUncompressedFile(const std::string &path);
 
 private:
-   static std::map<std::string, std::pair<std::string, std::string>> FileHash;
+    static std::map<std::string, std::pair<std::string, std::string>> FileHash;
+    static void sendError(int errorCode, const Poco::Net::HTTPRequest& request,
+                          const std::shared_ptr<StreamSocket>& socket, std::string shortMessage,
+                          std::string longMessage, std::string extraHeader = "");
 };
 
 #endif
commit e8235e50c8d1fb2489f5de62dcf609b9fba1eba4
Author:     George Wood <gwoodcode at gmail.com>
AuthorDate: Mon Jul 23 11:28:43 2018 +0100
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Tue Jul 24 12:27:35 2018 +0100

    A more attractive 404 page.

diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp
index 5f721f920..6af1be5d7 100644
--- a/wsd/FileServer.cpp
+++ b/wsd/FileServer.cpp
@@ -440,14 +440,19 @@ void FileServerRequestHandler::handleRequest(const HTTPRequest& request, Poco::M
     catch (const Poco::FileNotFoundException& exc)
     {
         LOG_WRN("FileServerRequestHandler: " << exc.displayText());
+        Poco::URI requestUri(request.getURI());
+        std::string path(requestUri.getPath());
 
         // 404 not found
         std::ostringstream oss;
         oss << "HTTP/1.1 404\r\n"
+            << "Content-Type: text/html charset=UTF-8\r\n"
             << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
             << "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
-            << "Content-Length: 0\r\n"
-            << "\r\n";
+            << "\r\n"
+            << "<h1>Error 404 - page not found!</h1>"
+            << "<p>There appears to be an error locating " << path << ".</p>"
+            << "<p>Please contact your system administrator.</p>";
         socket->send(oss.str());
     }
 }


More information about the Libreoffice-commits mailing list