diff options
author | Armin Le Grand (Allotropia) <Armin.Le.Grand@me.com> | 2021-04-30 17:26:41 +0200 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2022-01-20 12:28:54 +0100 |
commit | 02140554ee1d70b219a42546191e2219d58be4b0 (patch) | |
tree | 3dd419dbdd0c23676c7f749bd8a83d09ad26c8bd /oox | |
parent | 02634fb7c7e8dc613ffc3717bb244f85cf81a7c6 (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.mk | 50 | ||||
-rw-r--r-- | oox/source/drawingml/shape.cxx | 12 | ||||
-rw-r--r-- | oox/source/export/shapes.cxx | 9 | ||||
-rw-r--r-- | oox/source/ppt/pptimport.cxx | 8 | ||||
-rw-r--r-- | oox/source/shape/ShapeFilterBase.cxx | 7 |
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 { } |