From bfd24fcc04aec6cc9b6893e0754f98fac293ebb0 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 02 Oct 2013 07:15:29 -0400
Subject: [PATCH] Use DOMDocument LIBXML_PARSEHUGE and LIBXML_COMPACT options if possible (#1489302)

---
 CHANGELOG                               |    1 +
 program/lib/Roundcube/rcube_washtml.php |    9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 01eac7a..1564b98 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Use DOMDocument LIBXML_PARSEHUGE and LIBXML_COMPACT options if possible (#1489302)
 - Support HTTP_HOST, SERVER_NAME and SERVER_ADDR values in include_host_config feature
 - Hide Delivery Status Notification option when smtp_server is unset (#1489336)
 - Make default font size for HTML messages configurable (request #118)
diff --git a/program/lib/Roundcube/rcube_washtml.php b/program/lib/Roundcube/rcube_washtml.php
index 8f7fe97..a42b61a 100644
--- a/program/lib/Roundcube/rcube_washtml.php
+++ b/program/lib/Roundcube/rcube_washtml.php
@@ -377,7 +377,14 @@
         // Detect max nesting level (for dumpHTML) (#1489110)
         $this->max_nesting_level = (int) @ini_get('xdebug.max_nesting_level');
 
-        @$node->loadHTML($html);
+        // Use optimizations if supported
+        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
+            @$node->loadHTML($html, LIBXML_PARSEHUGE | LIBXML_COMPACT);
+        }
+        else {
+            @$node->loadHTML($html);
+        }
+
         return $this->dumpHtml($node);
     }
 

--
Gitblit v1.9.1