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 /xmloff/source | |
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 'xmloff/source')
-rw-r--r-- | xmloff/source/core/xmlexp.cxx | 9 | ||||
-rw-r--r-- | xmloff/source/core/xmlimp.cxx | 13 | ||||
-rw-r--r-- | xmloff/source/draw/shapeexport.cxx | 9 | ||||
-rw-r--r-- | xmloff/source/draw/ximpshap.cxx | 8 | ||||
-rw-r--r-- | xmloff/source/style/xmlstyle.cxx | 9 | ||||
-rw-r--r-- | xmloff/source/transform/OOo2Oasis.cxx | 8 | ||||
-rw-r--r-- | xmloff/source/transform/xof.component | 5 | ||||
-rw-r--r-- | xmloff/source/transform/xof.component.chart | 11 |
8 files changed, 69 insertions, 3 deletions
diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx index fc18a3de0370..e0110892a6f3 100644 --- a/xmloff/source/core/xmlexp.cxx +++ b/xmloff/source/core/xmlexp.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <memory> #include <sal/config.h> #include <sal/log.hxx> @@ -1693,7 +1695,14 @@ XMLPageExport* SvXMLExport::CreatePageExport() SchXMLExportHelper* SvXMLExport::CreateChartExport() { +// WASM_CHART change +// TODO: With Chart extracted this cannot really happen since +// no Chart could've been added at all +#if !ENABLE_WASM_STRIP_CHART return new SchXMLExportHelper(*this, *GetAutoStylePool()); +#else + return nullptr; +#endif } XMLFontAutoStylePool* SvXMLExport::CreateFontAutoStylePool() diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx index 5b4d006211ba..d3ec1c31a3c4 100644 --- a/xmloff/source/core/xmlimp.cxx +++ b/xmloff/source/core/xmlimp.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <memory> #include <optional> @@ -1073,7 +1075,16 @@ XMLShapeImportHelper* SvXMLImport::CreateShapeImport() SchXMLImportHelper* SvXMLImport::CreateChartImport() { +// WASM_CHART change +// TODO: Instead of importing the ChartModel 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 +#if !ENABLE_WASM_STRIP_CHART return new SchXMLImportHelper(); +#else + return nullptr; +#endif } ::xmloff::OFormLayerXMLImport* SvXMLImport::CreateFormImport() @@ -1556,7 +1567,9 @@ void SvXMLImport::SetAutoStyles( SvXMLStylesContext *pAutoStyles ) mxAutoStyles = pAutoStyles; GetTextImport()->SetAutoStyles( pAutoStyles ); GetShapeImport()->SetAutoStylesContext( pAutoStyles ); +#if !ENABLE_WASM_STRIP_CHART GetChartImport()->SetAutoStylesContext( pAutoStyles ); +#endif GetFormImport()->setAutoStyleContext( pAutoStyles ); } diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx index d47ea15b2758..f1c23d3ed0b2 100644 --- a/xmloff/source/draw/shapeexport.cxx +++ b/xmloff/source/draw/shapeexport.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <basegfx/matrix/b2dhommatrix.hxx> #include <basegfx/matrix/b3dhommatrix.hxx> #include <basegfx/polygon/b2dpolypolygon.hxx> @@ -1193,7 +1195,14 @@ void XMLShapeExport::ImpCalcShapeType(const uno::Reference< drawing::XShape >& x OUString sCLSID; if(xPropSet->getPropertyValue("CLSID") >>= sCLSID) { +#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 if (sCLSID == mrExport.GetChartExport()->getChartCLSID() || +#else + if( +#endif sCLSID == SvGlobalName( SO3_RPTCH_CLASSID ).GetHexName() ) { eShapeType = XmlShapeTypeDrawChartShape; diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx index a19a6c19d936..e4425c10f722 100644 --- a/xmloff/source/draw/ximpshap.cxx +++ b/xmloff/source/draw/ximpshap.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <cassert> #include <sal/log.hxx> @@ -2470,7 +2472,13 @@ void SdXMLChartShapeContext::startFastElement (sal_Int32 nElement, uno::Reference< frame::XModel > xChartModel; if( aAny >>= xChartModel ) { +#if !ENABLE_WASM_STRIP_CHART + // WASM_CHART change + // TODO: Maybe use SdXMLGraphicObjectShapeContext completely instead + // or try to create as mbIsPlaceholder object adding a Chart visuailzation + // that should be available somehow mxChartContext.set( GetImport().GetChartImport()->CreateChartContext( GetImport(), xChartModel ) ); +#endif } } } diff --git a/xmloff/source/style/xmlstyle.cxx b/xmloff/source/style/xmlstyle.cxx index 00afedf82a39..d46365008f5e 100644 --- a/xmloff/source/style/xmlstyle.cxx +++ b/xmloff/source/style/xmlstyle.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 <com/sun/star/frame/XModel.hpp> @@ -426,10 +428,12 @@ SvXMLStyleContext *SvXMLStylesContext::CreateStyleStyleChildContext( case XmlStyleFamily::TEXT_RUBY: pStyle = new XMLPropStyleContext( GetImport(), *this, nFamily ); break; +#if !ENABLE_WASM_STRIP_CHART + // WASM_CHART change case XmlStyleFamily::SCH_CHART_ID: pStyle = new XMLChartStyleContext( GetImport(), *this, nFamily ); break; - +#endif case XmlStyleFamily::SD_GRAPHICS_ID: case XmlStyleFamily::SD_PRESENTATION_ID: case XmlStyleFamily::SD_POOL_ID: @@ -565,6 +569,8 @@ rtl::Reference < SvXMLImportPropertyMapper > SvXMLStylesContext::GetImportProper } xMapper = mxShapeImpPropMapper; break; +#if !ENABLE_WASM_STRIP_CHART + // WASM_CHART change case XmlStyleFamily::SCH_CHART_ID: if( ! mxChartImpPropMapper.is() ) { @@ -573,6 +579,7 @@ rtl::Reference < SvXMLImportPropertyMapper > SvXMLStylesContext::GetImportProper } xMapper = mxChartImpPropMapper; break; +#endif case XmlStyleFamily::PAGE_MASTER: if( ! mxPageImpPropMapper.is() ) { diff --git a/xmloff/source/transform/OOo2Oasis.cxx b/xmloff/source/transform/OOo2Oasis.cxx index 2433d1ed8d54..e6b5cff99c0b 100644 --- a/xmloff/source/transform/OOo2Oasis.cxx +++ b/xmloff/source/transform/OOo2Oasis.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <osl/diagnose.h> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/uno/XComponentContext.hpp> @@ -1552,14 +1554,16 @@ XMLTransformerContext *OOo2OasisTransformer::CreateUserDefinedContext( return new XMLControlOOoTransformerContext( *this, rQName ); case XML_ETACTION_FORM_PROPERTY: return new XMLFormPropOOoTransformerContext( *this, rQName ); +#if !ENABLE_WASM_STRIP_CHART case XML_ETACTION_CHART: return new XMLChartOOoTransformerContext( *this, rQName ); + case XML_ETACTION_CHART_PLOT_AREA: + return new XMLChartPlotAreaOOoTContext( *this, rQName ); +#endif case XML_ETACTION_TRACKED_CHANGES: return new XMLTrackedChangesOOoTContext_Impl( *this, rQName, rAction.GetQNamePrefixFromParam1(), rAction.GetQNameTokenFromParam1() ); - case XML_ETACTION_CHART_PLOT_AREA: - return new XMLChartPlotAreaOOoTContext( *this, rQName ); case XML_ETACTION_TABLE: return new XMLTableOOoTransformerContext_Impl( *this, rQName ); default: diff --git a/xmloff/source/transform/xof.component b/xmloff/source/transform/xof.component index b7c5d3f5ebcb..5039731f5492 100644 --- a/xmloff/source/transform/xof.component +++ b/xmloff/source/transform/xof.component @@ -42,14 +42,17 @@ <implementation name="com.sun.star.comp.Chart.XMLContentImporter" constructor="xmloff_XMLChartContentImportOOO_get_implementation"> <service name="com.sun.star.comp.Chart.XMLContentImporter"/> + <optional/> </implementation> <implementation name="com.sun.star.comp.Chart.XMLImporter" constructor="xmloff_XMLChartImportOOO_get_implementation"> <service name="com.sun.star.comp.Chart.XMLImporter"/> + <optional/> </implementation> <implementation name="com.sun.star.comp.Chart.XMLStylesImporter" constructor="xmloff_XMLChartStylesImportOOO_get_implementation"> <service name="com.sun.star.comp.Chart.XMLStylesImporter"/> + <optional/> </implementation> <implementation name="com.sun.star.comp.Draw.XMLContentImporter" constructor="xmloff_XMLDrawContentImportOOO_get_implementation"> @@ -102,10 +105,12 @@ <implementation name="com.sun.star.comp.OOo2OasisTransformer" constructor="xmloff_OOo2OasisTransformer_get_implementation"> <service name="com.sun.star.comp.OOo2OasisTransformer"/> + <optional/> </implementation> <implementation name="com.sun.star.comp.Oasis2OOoTransformer" constructor="xmloff_Oasis2OOoTransformer_get_implementation"> <service name="com.sun.star.comp.Oasis2OOoTransformer"/> + <optional/> </implementation> <implementation name="com.sun.star.comp.Writer.XMLAutotextEventsImporter" constructor="xmloff_XMLAutoTextEventImportOOO_get_implementation"> diff --git a/xmloff/source/transform/xof.component.chart b/xmloff/source/transform/xof.component.chart new file mode 100644 index 000000000000..77713a8b7a90 --- /dev/null +++ b/xmloff/source/transform/xof.component.chart @@ -0,0 +1,11 @@ +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +com.sun.star.comp.Chart.XMLContentImporter +com.sun.star.comp.Chart.XMLImporter +com.sun.star.comp.Chart.XMLStylesImporter +com.sun.star.comp.Oasis2OOoTransformer +com.sun.star.comp.OOo2OasisTransformer |