diff -r 6b5204869ed5 -r 89c890c70182 psln/PslnLibraryLoaders/src/pslnbrowserlaunchloader.cpp --- a/psln/PslnLibraryLoaders/src/pslnbrowserlaunchloader.cpp Fri Jun 25 18:53:58 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,155 +0,0 @@ -/* -* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Loads browser launcher dynamically. -* -*/ - - -#include -#include -#include -#include -#include - -#include "pslnbrowserlaunchloader.h" -#include "PslnConst.h" - -//Browser UID -const TUid KUidBrowser = { 0x10008D39 }; -const TInt KPslnBrowserParamLen = 20; -_LIT( KPslnBrowserPrefix, "6 " ); - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------- -// -CPslnBrowserLaunchLoader::CPslnBrowserLaunchLoader() - { - } - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CPslnBrowserLaunchLoader* CPslnBrowserLaunchLoader::NewL() - { - CPslnBrowserLaunchLoader* self = - new( ELeave ) CPslnBrowserLaunchLoader(); - - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CPslnBrowserLaunchLoader::~CPslnBrowserLaunchLoader() - { - } - -// --------------------------------------------------------------------------- -// Launch browser as standalone application. -// --------------------------------------------------------------------------- -// -void CPslnBrowserLaunchLoader::LaunchBrowserStandaloneL( ) - { - - HBufC* param = HBufC::NewLC( KPslnBrowserParamLen ); - param->Des().Copy( KPslnBrowserPrefix ); - TInt folderid = GetFolderIdByContextIdL( KFavouritesSkinContextId ); - param->Des().AppendNum( folderid ); - - RWsSession wsSession; - User::LeaveIfError( wsSession.Connect() ); - CleanupClosePushL( wsSession ); - TApaTaskList taskList( wsSession ); - TApaTask task = taskList.FindApp( KUidBrowser ); - - if ( task.Exists() ) - { - HBufC8* param8 = HBufC8::NewLC( param->Length() ); - param8->Des().Append( param->Des() ); - task.SendMessage( TUid::Uid( 0 ), *param8 ); // Uid is not used - CleanupStack::PopAndDestroy( param8 ); - } - else - { - RApaLsSession appArcSession; - User::LeaveIfError( appArcSession.Connect() ); - CleanupClosePushL( appArcSession ); - TThreadId id; - appArcSession.StartDocument( *param, KUidBrowser , id ); - CleanupStack::PopAndDestroy(); // appArcSession - } - - CleanupStack::PopAndDestroy( 2 ); // param,wsSession - } - -// --------------------------------------------------------------------------- -// Cancel download. -// --------------------------------------------------------------------------- -// -void CPslnBrowserLaunchLoader::CancelDownload() - { - } - -// --------------------------------------------------------------------------- -// Gets browser bookmark folder id. -// --------------------------------------------------------------------------- -// -TInt CPslnBrowserLaunchLoader::GetFolderIdByContextIdL( TUint32 aContextId ) - { - TInt folder = KFavouritesNullUid; - if ( aContextId != (TUint32)KFavouritesNullContextId ) - { - CArrayFix* uids = new (ELeave) CArrayFixFlat( 1 ); - CleanupStack::PushL( uids ); - - RFavouritesDb db; - RFavouritesSession iFavouritesSess; - User::LeaveIfError( iFavouritesSess.Connect() ); - CleanupClosePushL( iFavouritesSess ); - User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) ); - CleanupClosePushL( db ); - User::LeaveIfError( db.GetUids( *uids, KFavouritesNullUid, - CFavouritesItem::EFolder, NULL, aContextId ) ); - - if( uids->Count() > 0 ) - { - folder = uids->At( 0 ); - } - CleanupStack::PopAndDestroy( 3 ); // db,iFavouritesSess,uids - } - return folder; - } - -//---------------------------------------------------------------------------- -// Launcher gate function -//---------------------------------------------------------------------------- -EXPORT_C TAny* GateFunction() - { - CPslnBrowserLaunchLoader* launcher = NULL; - TRAPD( err, launcher = CPslnBrowserLaunchLoader::NewL() ); - if( err != KErrNone ) - { - return NULL; - } - - return launcher; - } - -// End of File