summaryrefslogtreecommitdiff
path: root/extensions/source/plugin/aqua/macmgr.cxx
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2011-08-23 15:06:03 +0200
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2011-08-23 15:06:03 +0200
commitd8b6cc3b44ddcf9647653dc8ee88f3d9024feebf (patch)
tree3d395e7313279565a46774ac2921b987e24b9fc5 /extensions/source/plugin/aqua/macmgr.cxx
parentb52ec9a4fa9b8eb93a181fac3613f1de7d1d0825 (diff)
recreated tag libreoffice-3.3.0.4 which had these commits:
commit 04144eede67d986878496224a1bfec8b5666f1fe (tag: refs/tags/libreoffice-3.3.0.4, refs/remotes/origin/libreoffice-3-3-0) Author: Petr Mladek <pmladek@suse.cz> Date: Tue Jan 18 19:01:16 2011 +0100 Version 3.3.0.4, tag libreoffice-3.3.0.4 (3.3-rc4) commit c2d496a993f9643bc8a737c505f070246fcf6fad Author: Kohei Yoshida <kyoshida@novell.com> Date: Fri Jan 14 11:53:12 2011 -0500 Remove pesky on-line registration menu entry. (fdo#33112) .../uiconfig/sbibliography/menubar/menubar.xml | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) commit da172d85638baf1bcc1dd2bdc985f1a50d308bc3 Author: Petr Mladek <pmladek@suse.cz> Date: Tue Jan 11 22:59:36 2011 +0100 Branch libreoffice-3-3-0 This is 'libreoffice-3-3-0' - the stable branch for the 3.3.0 release. Only very safe changes, reviewed by three people are allowed. If you want to commit more complicated fix for the next 3.3.x release, please use the 'libreoffice-3-3' branch. If you want to build something cool, unstable, and risky, use master.
Notes
split repo tag: components_libreoffice-3.3.0.4
Diffstat (limited to 'extensions/source/plugin/aqua/macmgr.cxx')
-rw-r--r--extensions/source/plugin/aqua/macmgr.cxx124
1 files changed, 62 insertions, 62 deletions
diff --git a/extensions/source/plugin/aqua/macmgr.cxx b/extensions/source/plugin/aqua/macmgr.cxx
index f1d0e3a3c99b..e17b3bde2058 100644
--- a/extensions/source/plugin/aqua/macmgr.cxx
+++ b/extensions/source/plugin/aqua/macmgr.cxx
@@ -2,7 +2,7 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
@@ -40,7 +40,7 @@ using namespace com::sun::star::plugin;
namespace plugstringhelper
{
-
+
rtl::OUString getString( CFStringRef i_xString )
{
rtl::OUStringBuffer aBuf;
@@ -70,7 +70,7 @@ CFMutableStringRef createString( const rtl::OUString& i_rString )
CFURLRef createURL( const rtl::OUString& i_rString )
{
-
+
CFMutableStringRef xMutableString = createString( i_rString );
CFURLRef xURL = CFURLCreateWithString( NULL, xMutableString, NULL );
CFRelease( xMutableString );
@@ -124,12 +124,12 @@ static int parsePlist( CFBundleRef i_xBundle, const rtl::OUString& i_rBundleURL
{
return 0;
}
-
+
// prepare an array of key and value refs
std::vector< CFTypeRef > aKeys( nMimetypes, CFTypeRef(NULL) );
std::vector< CFTypeRef > aValues( nMimetypes, CFTypeRef(NULL) );
CFDictionaryGetKeysAndValues(static_cast<CFDictionaryRef>(xMimeDict), &aKeys[0], &aValues[0] );
-
+
int nAdded = 0;
for( int i = 0; i < nMimetypes; i++ )
{
@@ -138,7 +138,7 @@ static int parsePlist( CFBundleRef i_xBundle, const rtl::OUString& i_rBundleURL
if( ! xKey || CFGetTypeID(xKey) != CFStringGetTypeID() )
continue;
rtl::OUString aMimetype = getString( (CFStringRef)xKey );
-
+
// the correspoding value should be a dictionary
CFTypeRef xDict = aValues[i];
if( ! xDict || CFGetTypeID( xDict ) != CFDictionaryGetTypeID() )
@@ -148,7 +148,7 @@ static int parsePlist( CFBundleRef i_xBundle, const rtl::OUString& i_rBundleURL
CFTypeRef xExtArray = CFDictionaryGetValue( (CFDictionaryRef)xDict, CFSTR("WebPluginExtensions" ) );
if( !xExtArray || CFGetTypeID( xExtArray ) != CFArrayGetTypeID() )
continue;
-
+
OUStringBuffer aExtBuf;
int nExtensions = CFArrayGetCount( (CFArrayRef)xExtArray );
for( int n = 0; n < nExtensions; n++ )
@@ -164,7 +164,7 @@ static int parsePlist( CFBundleRef i_xBundle, const rtl::OUString& i_rBundleURL
aExtBuf.append( aExt );
}
}
-
+
// get the description string
CFTypeRef xDescString = CFDictionaryGetValue( (CFDictionaryRef)xDict, CFSTR("WebPluginTypeDescription" ) );
if( !xDescString || CFGetTypeID( xDescString ) != CFStringGetTypeID() )
@@ -173,14 +173,14 @@ static int parsePlist( CFBundleRef i_xBundle, const rtl::OUString& i_rBundleURL
PluginDescription* pNew = new PluginDescription;
// set plugin name (path to library)
- pNew->PluginName = i_rBundleURL;
+ pNew->PluginName = i_rBundleURL;
// set mimetype
- pNew->Mimetype = aMimetype;
+ pNew->Mimetype = aMimetype;
// set extension line
- pNew->Extension = aExtBuf.makeStringAndClear();
+ pNew->Extension = aExtBuf.makeStringAndClear();
// set description
pNew->Description= aDescription;
-
+
io_rDescriptions.push_back( pNew );
nAdded++;
@@ -195,9 +195,9 @@ static int parsePlist( CFBundleRef i_xBundle, const rtl::OUString& i_rBundleURL
OUStringToOString( pNew->Description, RTL_TEXTENCODING_UTF8 ).getStr()
);
#endif
-
+
}
-
+
return nAdded;
}
@@ -205,12 +205,12 @@ static int parseMimeString( const rtl::OUString& i_rBundleURL , list< PluginDesc
{
if( ! i_pMime )
return 0;
-
+
rtl_TextEncoding aEncoding = osl_getThreadTextEncoding();
-
+
OStringBuffer aMIME;
aMIME.append( i_pMime );
-
+
if( aMIME.getLength() < 1 )
return 0;
@@ -221,14 +221,14 @@ static int parseMimeString( const rtl::OUString& i_rBundleURL , list< PluginDesc
while( nIndex != -1 )
{
OString aType = aLine.getToken( 0, ';', nIndex );
-
+
sal_Int32 nTypeIndex = 0;
- OString aMimetype = aType.getToken( 0, ':', nTypeIndex );
- OString aExtLine = aType.getToken( 0, ':', nTypeIndex );
+ OString aMimetype = aType.getToken( 0, ':', nTypeIndex );
+ OString aExtLine = aType.getToken( 0, ':', nTypeIndex );
if( nTypeIndex < 0 ) // ensure at least three tokens
continue;
- OString aDesc = aType.getToken( 0, ':', nTypeIndex );
-
+ OString aDesc = aType.getToken( 0, ':', nTypeIndex );
+
// create extension list string
sal_Int32 nExtIndex = 0;
OStringBuffer aExtension;
@@ -241,19 +241,19 @@ static int parseMimeString( const rtl::OUString& i_rBundleURL , list< PluginDesc
if( nExtIndex != -1 )
aExtension.append( ';' );
}
-
+
PluginDescription* pNew = new PluginDescription;
// set plugin name (path to library)
- pNew->PluginName = i_rBundleURL;
+ pNew->PluginName = i_rBundleURL;
// set mimetype
- pNew->Mimetype = OStringToOUString( aMimetype, aEncoding );
+ pNew->Mimetype = OStringToOUString( aMimetype, aEncoding );
// set extension line
- pNew->Extension = OStringToOUString( aExtension.makeStringAndClear(), aEncoding );
+ pNew->Extension = OStringToOUString( aExtension.makeStringAndClear(), aEncoding );
// set description
pNew->Description= OStringToOUString( aDesc, aEncoding );
io_rDescriptions.push_back( pNew );
nAdded++;
-
+
#if OSL_DEBUG_LEVEL > 1
fprintf( stderr,
"Inserting from mime string:\n"
@@ -295,7 +295,7 @@ static int parseMimeResource( CFBundleRef i_xBundle,
#endif
xRes = 0;
BPSupportedMIMETypes aMIMETypesStrangeStruct = {kBPSupportedMIMETypesStructVers_1, NULL, NULL};
-
+
BP_GetSupportedMIMETypesUPP pBPGetSupp = (BP_GetSupportedMIMETypesUPP)osl_getAsciiFunctionSymbol( i_rMod, "BP_GetSupportedMIMETypes" );
if( pBPGetSupp &&
noErr == pBPGetSupp( &aMIMETypesStrangeStruct, 0 ) &&
@@ -324,7 +324,7 @@ static int parseMimeResource( CFBundleRef i_xBundle,
}
}
}
-
+
if( aMIMETypesStrangeStruct.typeStrings && aMIMETypesStrangeStruct.infoStrings )
{
short nVariantCount = (**(short**)aMIMETypesStrangeStruct.typeStrings) / 2;
@@ -353,19 +353,19 @@ static int parseMimeResource( CFBundleRef i_xBundle,
if( nExtIndex != -1 )
aExtension.append( sal_Unicode(';') );
}
-
+
PluginDescription* pNew = new PluginDescription;
// set plugin name (path to library)
- pNew->PluginName = i_rBundleURL;
+ pNew->PluginName = i_rBundleURL;
// set mimetype
- pNew->Mimetype = aMimetype;
+ pNew->Mimetype = aMimetype;
// set extension line
- pNew->Extension = aExtension.makeStringAndClear();
+ pNew->Extension = aExtension.makeStringAndClear();
// set description
pNew->Description= aDescription;
io_rDescriptions.push_back( pNew );
nAdded++;
-
+
#if OSL_DEBUG_LEVEL > 1
fprintf( stderr,
"Inserting from resource:\n"
@@ -379,8 +379,8 @@ static int parseMimeResource( CFBundleRef i_xBundle,
#endif
}
}
-
-
+
+
// clean up
if( aMIMETypesStrangeStruct.typeStrings )
{
@@ -394,7 +394,7 @@ static int parseMimeResource( CFBundleRef i_xBundle,
}
if( xRes )
CFBundleCloseBundleResourceMap( i_xBundle, xRes );
-
+
return nAdded;
}
@@ -410,9 +410,9 @@ static bool checkBlackList( CFBundleRef i_xBundle )
CFTypeRef bundleversion = CFBundleGetValueForInfoDictionaryKey( i_xBundle, CFSTR("CFBundleVersion"));
if( bundleversion && CFGetTypeID(bundleversion) == CFStringGetTypeID() )
aBundleVersion = getString( static_cast<CFStringRef>(bundleversion) );
-
+
bool bReject = false;
- // #i102735# VLC plugin prior to 1.0 tends to crash
+ // #i102735# VLC plugin prior to 1.0 tends to crash
if( aBundleName.equalsAscii( "VLC Plug-in" ) )
{
sal_Int32 nIndex = 0;
@@ -427,7 +427,7 @@ static bool checkBlackList( CFBundleRef i_xBundle )
{
bReject = true;
}
-
+
#if OSL_DEBUG_LEVEL > 1
if( bReject )
fprintf( stderr, "rejecting plugin \"%s\" version %s\n",
@@ -444,7 +444,7 @@ static int getPluginDescriptions( CFBundleRef i_xBundle , list< PluginDescriptio
int nDescriptions = 0;
if( ! i_xBundle )
return nDescriptions;
-
+
if( checkBlackList( i_xBundle ) )
return 0;
@@ -452,7 +452,7 @@ static int getPluginDescriptions( CFBundleRef i_xBundle , list< PluginDescriptio
CFURLRef xURL = CFBundleCopyBundleURL( i_xBundle );
aPlugURL = getString( xURL );
CFRelease( xURL );
-
+
#if OSL_DEBUG_LEVEL > 1
rtl::OUString aPlugName, aPlugDescription;
CFTypeRef name = CFBundleGetValueForInfoDictionaryKey( i_xBundle, CFSTR("WebPluginName"));
@@ -462,15 +462,15 @@ static int getPluginDescriptions( CFBundleRef i_xBundle , list< PluginDescriptio
CFTypeRef description = CFBundleGetValueForInfoDictionaryKey( i_xBundle, CFSTR("WebPluginDescription"));
if( description && CFGetTypeID(description) == CFStringGetTypeID() )
aPlugDescription = getString( static_cast<CFStringRef>(description) );
-
+
fprintf( stderr, "URL: %s\nname: %s\ndescription: %s\n",
rtl::OUStringToOString( aPlugURL, RTL_TEXTENCODING_UTF8 ).getStr(),
rtl::OUStringToOString( aPlugName, RTL_TEXTENCODING_UTF8 ).getStr(),
rtl::OUStringToOString( aPlugDescription, RTL_TEXTENCODING_UTF8 ).getStr()
);
#endif
-
-
+
+
// get location of plugin library
CFURLRef xLibURL = CFBundleCopyExecutableURL( i_xBundle );
if( ! xLibURL )
@@ -478,7 +478,7 @@ static int getPluginDescriptions( CFBundleRef i_xBundle , list< PluginDescriptio
// get the file system path
rtl::OUString aModuleURL( CFURLtoOSLURL( xLibURL ) );
CFRelease( xLibURL );
-
+
#if OSL_DEBUG_LEVEL > 1
fprintf( stderr, "exec URL = %s\n", rtl::OUStringToOString( aModuleURL, RTL_TEXTENCODING_UTF8 ).getStr() );
#endif
@@ -506,7 +506,7 @@ static int getPluginDescriptions( CFBundleRef i_xBundle , list< PluginDescriptio
osl_unloadModule( aMod );
return nDescriptions;
}
-
+
// resolve the symbol that might get us the mimetypes
const char* (*pGetMimeDescription)() = (const char*(*)())osl_getAsciiFunctionSymbol( aMod, "_NP_GetMIMEDescription" );
if( pGetMimeDescription )
@@ -522,7 +522,7 @@ static int getPluginDescriptions( CFBundleRef i_xBundle , list< PluginDescriptio
}
}
}
-
+
// and as last resort check the resource of the bundle
nDescriptions = parseMimeResource( i_xBundle, aMod, aPlugURL, io_rDescriptions );
osl_unloadModule( aMod );
@@ -536,24 +536,24 @@ static bool CheckPlugin( const rtl::OUString& rPath, list< PluginDescription* >&
#if OSL_DEBUG_LEVEL > 1
fprintf( stderr, "Trying path %s ... ", rtl::OUStringToOString( rPath, RTL_TEXTENCODING_UTF8 ).getStr() );
#endif
- CFURLRef xURL = createURL( rPath );
-
+ CFURLRef xURL = createURL( rPath );
+
CFArrayRef xBundles = CFBundleCreateBundlesFromDirectory( NULL, xURL, CFSTR("plugin") );
if( ! xBundles )
return false;
-
+
CFIndex nBundles = CFArrayGetCount( xBundles );
-
+
#if OSL_DEBUG_LEVEL > 1
fprintf( stderr, "got %d bundles\n", (int)nBundles );
#endif
-
+
int nDescriptions = 0;
for( CFIndex i = 0; i < nBundles; i++ )
{
CFBundleRef xBundle = (CFBundleRef)CFArrayGetValueAtIndex( xBundles, i );
nDescriptions += getPluginDescriptions( xBundle, rDescriptions );
-
+
CFRelease( xBundle );
}
CFRelease( xBundles );
@@ -574,7 +574,7 @@ static rtl::OUString FindFolderURL( FSVolumeRefNum vRefNum, OSType folderType )
aRet = getString( xURL );
CFRelease( xURL );
}
-
+
return aRet;
}
@@ -587,7 +587,7 @@ Sequence<PluginDescription> XPluginManager_Impl::impl_getPluginDescriptions() th
std::list<PluginDescription*> aPlugins;
static const char* pNPXPluginPath = getenv( "MOZ_PLUGIN_PATH" );
-
+
// get directories
std::list< rtl::OUString > aPaths;
if( pNPXPluginPath )
@@ -599,7 +599,7 @@ Sequence<PluginDescription> XPluginManager_Impl::impl_getPluginDescriptions() th
aPaths.push_back( getString( xURL ) );
CFRelease( xURL );
}
-
+
rtl::OUString aPath = FindFolderURL( kUserDomain, kInternetPlugInFolderType );
if( aPath.getLength() )
aPaths.push_back( aPath );
@@ -609,14 +609,14 @@ Sequence<PluginDescription> XPluginManager_Impl::impl_getPluginDescriptions() th
aPath = FindFolderURL( kOnAppropriateDisk, kInternetPlugInFolderType );
if( aPath.getLength() )
aPaths.push_back( aPath );
-
-
+
+
const Sequence< ::rtl::OUString >& rPaths( PluginManager::getAdditionalSearchPaths() );
for( sal_Int32 i = 0; i < rPaths.getLength(); i++ )
{
aPaths.push_back( getURLFromPath( rPaths.getConstArray()[i] ) );
}
-
+
for( std::list< rtl::OUString >::const_iterator it = aPaths.begin(); it != aPaths.end(); ++it )
{
rtl::OUString aPath( *it );
@@ -625,8 +625,8 @@ Sequence<PluginDescription> XPluginManager_Impl::impl_getPluginDescriptions() th
#endif
CheckPlugin( aPath, aPlugins );
}
-
-
+
+
// create return value
aDescriptions = Sequence<PluginDescription>( aPlugins.size() );
#if OSL_DEBUG_LEVEL > 1