diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2013-11-20 14:43:45 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2013-11-20 14:44:27 +0100 |
commit | 5668e73beb30b95abc6520b7432c54972ca3ab2c (patch) | |
tree | b9772e4ab6a6f92d655c0bacbb364ce3b2a4eb18 /svx/source/unodraw | |
parent | ba1c6c94fce9fd20e224a265475e0b80576a2dd9 (diff) |
avmedia: Implement "block untrusted referer links" feature
See f0a9ca24fd4bf79cac908bf0d6fdb8905dc504db "rhbz#887420 Implement 'block
untrusted referer links' feature" for details. This adds some further /*TODO?*/
comments, and one known problem (marked /*TODO!*/) is that movies/sounds are not
blocked during a slideshow presentation.
Change-Id: Ib2d0c7e4f7b02c4bdec0d8a90cee5e7e1bee8325
Diffstat (limited to 'svx/source/unodraw')
-rw-r--r-- | svx/source/unodraw/unomod.cxx | 5 | ||||
-rw-r--r-- | svx/source/unodraw/unopage.cxx | 6 | ||||
-rw-r--r-- | svx/source/unodraw/unoshap4.cxx | 7 |
3 files changed, 10 insertions, 8 deletions
diff --git a/svx/source/unodraw/unomod.cxx b/svx/source/unodraw/unomod.cxx index fe66f10884f3..06ee08fa605f 100644 --- a/svx/source/unodraw/unomod.cxx +++ b/svx/source/unodraw/unomod.cxx @@ -216,7 +216,8 @@ uno::Reference< uno::XInterface > SAL_CALL SvxUnoDrawMSFactory::createInstanceWi throw( uno::Exception, uno::RuntimeException ) { OUString arg; - if (ServiceSpecifier == "com.sun.star.drawing.GraphicObjectShape" + if ((ServiceSpecifier == "com.sun.star.drawing.GraphicObjectShape" + || ServiceSpecifier == "com.sun.star.drawing.MediaShape") && Arguments.getLength() == 1 && (Arguments[0] >>= arg)) { return create(ServiceSpecifier, arg); @@ -508,7 +509,7 @@ uno::Reference< uno::XInterface > SAL_CALL SvxUnoDrawingModel::createInstance( c } // create the API wrapper - pShape = CreateSvxShapeByTypeAndInventor( nType, SdrInventor ); + pShape = CreateSvxShapeByTypeAndInventor( nType, SdrInventor, "" ); // set shape type if( pShape ) diff --git a/svx/source/unodraw/unopage.cxx b/svx/source/unodraw/unopage.cxx index 4af2f5253b1f..073ff34065a5 100644 --- a/svx/source/unodraw/unopage.cxx +++ b/svx/source/unodraw/unopage.cxx @@ -735,7 +735,7 @@ SvxShape* SvxDrawPage::CreateShapeByTypeAndInventor( sal_uInt16 nType, sal_uInt3 pRet = new SvxCustomShape( pObj ); break; case OBJ_MEDIA: - pRet = new SvxMediaShape( pObj ); + pRet = new SvxMediaShape( pObj, referer ); break; case OBJ_TABLE: pRet = new SvxTableShape( pObj ); @@ -826,9 +826,9 @@ uno::Sequence< OUString > SAL_CALL SvxDrawPage::getSupportedServiceNames() throw return aSeq; } -SvxShape* CreateSvxShapeByTypeAndInventor( sal_uInt16 nType, sal_uInt32 nInventor ) throw() +SvxShape* CreateSvxShapeByTypeAndInventor( sal_uInt16 nType, sal_uInt32 nInventor, OUString const & referer ) throw() { - return SvxDrawPage::CreateShapeByTypeAndInventor( nType, nInventor ); + return SvxDrawPage::CreateShapeByTypeAndInventor( nType, nInventor, 0, 0, referer ); } void SvxDrawPage::ChangeModel( SdrModel* pNewModel ) diff --git a/svx/source/unodraw/unoshap4.cxx b/svx/source/unodraw/unoshap4.cxx index 53b02048f409..e932821b60d0 100644 --- a/svx/source/unodraw/unoshap4.cxx +++ b/svx/source/unodraw/unoshap4.cxx @@ -789,8 +789,9 @@ bool SvxFrameShape::getPropertyValueImpl( const OUString& rName, const SfxItemPr * * ***********************************************************************/ -SvxMediaShape::SvxMediaShape( SdrObject* pObj ) throw() -: SvxShape( pObj, getSvxMapProvider().GetMap(SVXMAP_MEDIA), getSvxMapProvider().GetPropertySet(SVXMAP_MEDIA, SdrObject::GetGlobalDrawObjectItemPool()) ) +SvxMediaShape::SvxMediaShape( SdrObject* pObj, OUString const & referer ) throw() +: SvxShape( pObj, getSvxMapProvider().GetMap(SVXMAP_MEDIA), getSvxMapProvider().GetPropertySet(SVXMAP_MEDIA, SdrObject::GetGlobalDrawObjectItemPool()) ), + referer_(referer) { SetShapeType( OUString( "com.sun.star.drawing.MediaShape" ) ); } @@ -818,7 +819,7 @@ bool SvxMediaShape::setPropertyValueImpl( const OUString& rName, const SfxItemPr if( rValue >>= aURL ) { bOk = true; - aItem.setURL( aURL, "" ); + aItem.setURL( aURL, "", referer_ ); } } break; |