filter/source/svg/svgexport.cxx | 20 +++++++++++++------- sd/qa/unit/SVGExportTests.cxx | 15 +++++++++++++++ sd/qa/unit/data/odp/textbox-link-javascript.odp |binary sd/source/filter/grf/sdgrffilter.cxx | 3 +-- 4 files changed, 29 insertions(+), 9 deletions(-)
New commits: commit 2cf8e2b9eee9f17f947c0b0af93ab1e983874a87 Author: Mike Kaganski <[email protected]> AuthorDate: Tue Mar 5 07:33:31 2019 +0100 Commit: Mike Kaganski <[email protected]> CommitDate: Tue Mar 5 08:40:02 2019 +0100 Remove redundant assignment Change-Id: Ie1ccac4748ae949367448d2977590c0483926a71 Reviewed-on: https://gerrit.libreoffice.org/68728 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> diff --git a/sd/source/filter/grf/sdgrffilter.cxx b/sd/source/filter/grf/sdgrffilter.cxx index 7da570315bbb..7c6a9a1f5dce 100644 --- a/sd/source/filter/grf/sdgrffilter.cxx +++ b/sd/source/filter/grf/sdgrffilter.cxx @@ -236,7 +236,7 @@ bool SdGRFFilter::Export() beans::PropertyValues aArgs; TransformItems( SID_SAVEASDOC, *pSet, aArgs ); - OUString sFilterName( "FilterName" ); + const OUString sFilterName( "FilterName" ); OUString sShortName( rGraphicFilter.GetExportFormatShortName( nFilter ) ); bool bFilterNameFound = false; @@ -247,7 +247,6 @@ bool SdGRFFilter::Export() if ( rStr == sFilterName ) { bFilterNameFound = true; - aArgs[ i ].Name = sFilterName; aArgs[ i ].Value <<= sShortName; } else if ( rStr == "InteractionHandler" ) commit 34ec46571701d639d9bc542b2d19f87a21a83648 Author: Samuel Mehrbrodt <[email protected]> AuthorDate: Mon Mar 4 09:38:02 2019 +0100 Commit: Samuel Mehrbrodt <[email protected]> CommitDate: Tue Mar 5 08:39:55 2019 +0100 Check svg URLs before exporting Change-Id: I3b86b6b82318b0d201c3d7db516664520eb47bed Reviewed-on: https://gerrit.libreoffice.org/68668 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <[email protected]> diff --git a/filter/source/svg/svgexport.cxx b/filter/source/svg/svgexport.cxx index c6f9ce9bd015..d5cb95f732ef 100644 --- a/filter/source/svg/svgexport.cxx +++ b/filter/source/svg/svgexport.cxx @@ -47,6 +47,7 @@ #include <comphelper/sequenceashashmap.hxx> #include <i18nlangtag/lang.h> #include <svl/zforlist.hxx> +#include <tools/urlobj.hxx> #include <unotools/ucbstreamhelper.hxx> #include <xmloff/unointerfacetouniqueidentifiermapper.hxx> #include <xmloff/nmspmap.hxx> @@ -1951,13 +1952,18 @@ bool SVGFilter::implExportShape( const Reference< css::drawing::XShape >& rxShap if( !aBookmark.isEmpty() ) { - mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "xlink:href", aBookmark); - SvXMLElementExport alinkA( *mpSVGExport, XML_NAMESPACE_NONE, "a", true, true ); - mpSVGWriter->WriteMetaFile( aTopLeft, aSize, rMtf, - 0xffffffff, - pElementId, - &rxShape, - pEmbeddedBitmapsMtf ); + INetURLObject aINetURLObject(aBookmark); + if (!aINetURLObject.HasError() + && aINetURLObject.GetProtocol() != INetProtocol::Javascript) + { + mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "xlink:href", aBookmark); + SvXMLElementExport alinkA( *mpSVGExport, XML_NAMESPACE_NONE, "a", true, true ); + mpSVGWriter->WriteMetaFile( aTopLeft, aSize, rMtf, + 0xffffffff, + pElementId, + &rxShape, + pEmbeddedBitmapsMtf ); + } } else { diff --git a/sd/qa/unit/SVGExportTests.cxx b/sd/qa/unit/SVGExportTests.cxx index 9afc5cb42a01..400d604e786c 100644 --- a/sd/qa/unit/SVGExportTests.cxx +++ b/sd/qa/unit/SVGExportTests.cxx @@ -110,8 +110,23 @@ public: assertXPath(svgDoc, MAKE_PATH_STRING( /SVG_SVG/SVG_G[2]/SVG_G/SVG_G/SVG_G/SVG_G/SVG_G[2]/SVG_G/SVG_TEXT/SVG_TSPAN ), "text-decoration", "line-through"); } + void testSVGExportJavascriptURL() + { + executeExport("textbox-link-javascript.odp"); + + xmlDocPtr svgDoc = parseXml(maTempFile); + CPPUNIT_ASSERT(svgDoc); + + // There should be only one child (no link to javascript url) + assertXPathChildren(svgDoc, + MAKE_PATH_STRING(/ SVG_SVG / SVG_G[2] / SVG_G / SVG_G / SVG_G / SVG_G + / SVG_G[4] / SVG_G), + 1); + } + CPPUNIT_TEST_SUITE(SdSVGFilterTest); CPPUNIT_TEST(testSVGExportTextDecorations); + CPPUNIT_TEST(testSVGExportJavascriptURL); CPPUNIT_TEST_SUITE_END(); }; diff --git a/sd/qa/unit/data/odp/textbox-link-javascript.odp b/sd/qa/unit/data/odp/textbox-link-javascript.odp new file mode 100644 index 000000000000..c046cf0c7de5 Binary files /dev/null and b/sd/qa/unit/data/odp/textbox-link-javascript.odp differ _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
