TInt CWidgetRegistrySTIF::ClientSessionGetWidgetUidValidL( TTestResult& aResult )
 {
 aResult.SetResult( KErrGeneral, KFailed );
 RWidgetRegistryClientSession* registryClient;
 registryClient = new (ELeave) RWidgetRegistryClientSession;
 CleanupStack::PushL( registryClient );
 TInt error = registryClient->Connect();
 if ( KErrNone == error )
     {
     TInt uid = registryClient->GetWidgetUidL( KValidBundle );
     if ( iValidUid == TUid::Uid( uid ) )
         {
         aResult.SetResult( KErrNone, KPassed );
         }
     registryClient->Disconnect();
     }
 CleanupStack::PopAndDestroy( registryClient );
 return KErrNone;
 }
void WidgetFinalizeInstallation::execute()
{
    QString widgetId = m_WidgetInfo[ EPropertyWidgetId ].toString();
        
    if( (widgetId.isEmpty()) )
    {
        emit aborted( EErrorUpdateGeneral );
        return;
    }
    
    if (WebAppRegistry::instance()->isRegistered(widgetId)) 
    {
        TInt64 isInMiniview;        
        TBuf<120> bundleId(widgetId.utf16());
        TUid aUid;
    
        RWidgetRegistryClientSession clientReg;
        if( (clientReg.Connect() ) != KErrNone )
        {
            emit aborted( EErrorUpdateGeneral );
            return;
        }
        
        aUid.iUid = clientReg.GetWidgetUidL(bundleId);
        isInMiniview = clientReg.IsWidgetInMiniView(aUid);
    
        if (isInMiniview) 
            addSuboperation( new WidgetHomeScreenIntegration( m_WidgetInfo, aUid ) );
    }
    
    addSuboperation( new WidgetSetupInstallationDirectory( m_WidgetInfo ) );
    
    addSuboperation( new WidgetRegistration( m_WidgetInfo ) );
    
    addSuboperation( new WidgetCleanup( m_WidgetInfo ) );
    
    emit completed();
}