From 02140554ee1d70b219a42546191e2219d58be4b0 Mon Sep 17 00:00:00 2001 From: "Armin Le Grand (Allotropia)" Date: Fri, 30 Apr 2021 17:26:41 +0200 Subject: 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 --- xmloff/source/core/xmlexp.cxx | 9 +++++++++ xmloff/source/core/xmlimp.cxx | 13 +++++++++++++ xmloff/source/draw/shapeexport.cxx | 9 +++++++++ xmloff/source/draw/ximpshap.cxx | 8 ++++++++ xmloff/source/style/xmlstyle.cxx | 9 ++++++++- xmloff/source/transform/OOo2Oasis.cxx | 8 ++++++-- xmloff/source/transform/xof.component | 5 +++++ xmloff/source/transform/xof.component.chart | 11 +++++++++++ 8 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 xmloff/source/transform/xof.component.chart (limited to 'xmloff/source') 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 + #include #include #include @@ -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 + #include #include @@ -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 + #include #include #include @@ -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 + #include #include @@ -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 + #include #include @@ -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 + #include #include #include @@ -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 @@ + + + @@ -102,10 +105,12 @@ + + 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 -- cgit