summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorArmin Le Grand (Allotropia) <Armin.Le.Grand@me.com>2021-04-30 17:26:41 +0200
committerJan-Marek Glogowski <glogow@fbihome.de>2022-01-20 12:28:54 +0100
commit02140554ee1d70b219a42546191e2219d58be4b0 (patch)
tree3dd419dbdd0c23676c7f749bd8a83d09ad26c8bd /oox
parent02634fb7c7e8dc613ffc3717bb244f85cf81a7c6 (diff)
WASM --enable-wasm-strip now skips lots of LO code
... resulting in a stripped-down, Writer-only build to decrease the resulting WASM bytecode size. It removes the following code from the build: * All other major modules: Base, Calc, Chart, Draw, Impress and Math and related writerperfect filters * The premultiply tables * The (auto-)recovery functionality * All accessibility (but not the accessibility document checker) * The LanguageGuess component * EPUB support * The start center / BackingWindow * The TipOfTheDay functionality * The splash screen communication Currently crashs with anything different then soffice --writer. Closing the document also still crashes. FYI: many of these features are now behind ENABLE_WASM_STRIP_* defines, but they normally don't work on their own, globally! That's because we started with stripping the main components. Change-Id: Ib9c0f9452815910c0a2aceaf142ba1ad4a9cb0d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126182 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'oox')
-rw-r--r--oox/Library_oox.mk50
-rw-r--r--oox/source/drawingml/shape.cxx12
-rw-r--r--oox/source/export/shapes.cxx9
-rw-r--r--oox/source/ppt/pptimport.cxx8
-rw-r--r--oox/source/shape/ShapeFilterBase.cxx7
5 files changed, 62 insertions, 24 deletions
diff --git a/oox/Library_oox.mk b/oox/Library_oox.mk
index f9a059b30147..979635a2f213 100644
--- a/oox/Library_oox.mk
+++ b/oox/Library_oox.mk
@@ -83,28 +83,10 @@ endif
$(eval $(call gb_Library_set_componentfile,oox,oox/util/oox,services))
+# WASM_CHART change
+ifeq (,$(ENABLE_WASM_STRIP_CHART))
$(eval $(call gb_Library_add_exception_objects,oox,\
- oox/source/core/binarycodec \
- oox/source/core/contexthandler2 \
- oox/source/core/contexthandler \
- oox/source/core/fastparser \
- oox/source/core/fasttokenhandler \
- oox/source/core/filterbase \
- oox/source/core/filterdetect \
- oox/source/core/fragmenthandler2 \
- oox/source/core/fragmenthandler \
- oox/source/core/recordparser \
- oox/source/core/relations \
- oox/source/core/relationshandler \
- oox/source/core/xmlfilterbase \
- oox/source/crypto/AgileEngine \
- oox/source/crypto/CryptTools \
- oox/source/crypto/DocumentEncryption \
- oox/source/crypto/DocumentDecryption \
- oox/source/crypto/Standard2007Engine \
- oox/source/crypto/StrongEncryptionDataSpace \
- oox/source/docprop/docprophandler \
- oox/source/docprop/ooxmldocpropimport \
+ oox/source/export/chartexport \
oox/source/drawingml/chart/axiscontext \
oox/source/drawingml/chart/axisconverter \
oox/source/drawingml/chart/axismodel \
@@ -132,6 +114,31 @@ $(eval $(call gb_Library_add_exception_objects,oox,\
oox/source/drawingml/chart/typegroupcontext \
oox/source/drawingml/chart/typegroupconverter \
oox/source/drawingml/chart/typegroupmodel \
+))
+endif
+
+$(eval $(call gb_Library_add_exception_objects,oox,\
+ oox/source/core/binarycodec \
+ oox/source/core/contexthandler2 \
+ oox/source/core/contexthandler \
+ oox/source/core/fastparser \
+ oox/source/core/fasttokenhandler \
+ oox/source/core/filterbase \
+ oox/source/core/filterdetect \
+ oox/source/core/fragmenthandler2 \
+ oox/source/core/fragmenthandler \
+ oox/source/core/recordparser \
+ oox/source/core/relations \
+ oox/source/core/relationshandler \
+ oox/source/core/xmlfilterbase \
+ oox/source/crypto/AgileEngine \
+ oox/source/crypto/CryptTools \
+ oox/source/crypto/DocumentEncryption \
+ oox/source/crypto/DocumentDecryption \
+ oox/source/crypto/Standard2007Engine \
+ oox/source/crypto/StrongEncryptionDataSpace \
+ oox/source/docprop/docprophandler \
+ oox/source/docprop/ooxmldocpropimport \
oox/source/drawingml/clrschemecontext \
oox/source/drawingml/clrscheme \
oox/source/drawingml/colorchoicecontext \
@@ -214,7 +221,6 @@ $(eval $(call gb_Library_add_exception_objects,oox,\
oox/source/dump/dumperbase \
oox/source/dump/oledumper \
oox/source/dump/pptxdumper \
- oox/source/export/chartexport \
oox/source/export/ColorPropertySet \
oox/source/export/drawingml \
oox/source/export/DMLPresetShapeExport \
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index d0502558670e..6b0eb8c7102f 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -17,6 +17,8 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <config_wasm_strip.h>
+
#include <oox/drawingml/shape.hxx>
#include <drawingml/customshapeproperties.hxx>
#include <oox/drawingml/theme.hxx>
@@ -1943,6 +1945,15 @@ void Shape::finalizeXShape( XmlFilterBase& rFilter, const Reference< XShapes >&
Reference< chart2::XChartDocument > xChartDoc( xDocModel, UNO_QUERY_THROW );
// load the chart data from the XML fragment
+#if ENABLE_WASM_STRIP_CHART
+ (void) rFilter;
+ (void) rxShapes;
+#else
+ // WASM_CHART change
+ // TODO: Instead of using convertFromModel an alternative may be
+ // added to convert not to Chart/OLE SdrObejct, but to GraphicObject
+ // with the Chart visualization. There should be a preiew available
+ // in the imported chart data
bool bMSO2007Doc = rFilter.isMSO2007Document();
chart::ChartSpaceModel aModel(bMSO2007Doc);
rtl::Reference<chart::ChartSpaceFragment> pChartSpaceFragment = new chart::ChartSpaceFragment(
@@ -1997,6 +2008,7 @@ void Shape::finalizeXShape( XmlFilterBase& rFilter, const Reference< XShapes >&
// Restore the original theme.
pPowerPointImport->getActualSlidePersist()->setTheme(pTheme);
}
+#endif
}
catch( Exception& )
{
diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx
index 1bc728854edd..54c6a58299e9 100644
--- a/oox/source/export/shapes.cxx
+++ b/oox/source/export/shapes.cxx
@@ -17,9 +17,11 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <sal/config.h>
+#include <config_wasm_strip.h>
+#include <sal/config.h>
#include <sal/log.hxx>
+
#include <filter/msfilter/util.hxx>
#include <o3tl/string_view.hxx>
#include <oox/core/xmlfilterbase.hxx>
@@ -2176,9 +2178,14 @@ ShapeExport& ShapeExport::WriteOLE2Shape( const Reference< XShape >& xShape )
xPropSet->getPropertyValue("Model") >>= xChartDoc;
assert(xChartDoc.is());
//export the chart
+#if !ENABLE_WASM_STRIP_CHART
+ // WASM_CHART change
+ // TODO: With Chart extracted this cannot really happen since
+ // no Chart could've been added at all
ChartExport aChartExport( mnXmlNamespace, GetFS(), xChartDoc, GetFB(), GetDocumentType() );
static sal_Int32 nChartCount = 0;
aChartExport.WriteChartObj( xShape, GetNewShapeID( xShape ), ++nChartCount );
+#endif
return *this;
}
diff --git a/oox/source/ppt/pptimport.cxx b/oox/source/ppt/pptimport.cxx
index 1f569d099876..8e35217ea590 100644
--- a/oox/source/ppt/pptimport.cxx
+++ b/oox/source/ppt/pptimport.cxx
@@ -17,6 +17,8 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <config_wasm_strip.h>
+
#include <sal/config.h>
#include <sal/log.hxx>
@@ -60,8 +62,12 @@ XmlFilterBase* PowerPointImport::mpDebugFilterBase = nullptr;
PowerPointImport::PowerPointImport( const Reference< XComponentContext >& rxContext ) :
XmlFilterBase( rxContext ),
+#if ENABLE_WASM_STRIP_CHART
+ // WASM_CHART change
+ mxChartConv( )
+#else
mxChartConv( std::make_shared<::oox::drawingml::chart::ChartConverter>() )
-
+#endif
{
#if OSL_DEBUG_LEVEL > 0
mpDebugFilterBase = this;
diff --git a/oox/source/shape/ShapeFilterBase.cxx b/oox/source/shape/ShapeFilterBase.cxx
index f5bb1af03955..38c310b47663 100644
--- a/oox/source/shape/ShapeFilterBase.cxx
+++ b/oox/source/shape/ShapeFilterBase.cxx
@@ -17,6 +17,8 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <config_wasm_strip.h>
+
#include <oox/shape/ShapeFilterBase.hxx>
#include <oox/drawingml/chart/chartconverter.hxx>
#include <oox/drawingml/themefragmenthandler.hxx>
@@ -34,7 +36,12 @@ using namespace ::com::sun::star;
ShapeFilterBase::ShapeFilterBase( const uno::Reference< uno::XComponentContext >& rxContext ) :
XmlFilterBase( rxContext ),
+#if ENABLE_WASM_STRIP_CHART
+ // WASM_CHART change
+ mxChartConv( )
+#else
mxChartConv( std::make_shared<::oox::drawingml::chart::ChartConverter>() )
+#endif
{
}