# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1274784758 -10800 # Node ID 4bd5176e1bc87a6d7b522e18b6fc788ef58275b2 # Parent 8bfb9186a8b80c154af9c9dd1c2f563efc3ff2dc Revision: 201019 Kit: 2010121 diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 browserutilities/browserdialogsprovider/Src/BrowserDialogsProvider.cpp --- a/browserutilities/browserdialogsprovider/Src/BrowserDialogsProvider.cpp Tue May 11 17:13:44 2010 +0300 +++ b/browserutilities/browserdialogsprovider/Src/BrowserDialogsProvider.cpp Tue May 25 13:52:38 2010 +0300 @@ -131,6 +131,8 @@ //----------------------------------------------------------------------------- CBrowserDialogsProvider::~CBrowserDialogsProvider() { + iDialogs.Close(); + iDialogs.ResetAndDestroy(); iResourceLoader.Close(); // Delete any dialogs @@ -991,9 +993,6 @@ if(iSelectDlg ) iSelectDlg->CancelPopup(); - iDialogs.Close(); - // Empty the array - iDialogs.ResetAndDestroy(); } //----------------------------------------------------------------------------- diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 browserutilities/connectionmanager/BWinsCw/CONNECTIONMANAGERU_EKA2U.def --- a/browserutilities/connectionmanager/BWinsCw/CONNECTIONMANAGERU_EKA2U.def Tue May 11 17:13:44 2010 +0300 +++ b/browserutilities/connectionmanager/BWinsCw/CONNECTIONMANAGERU_EKA2U.def Tue May 25 13:52:38 2010 +0300 @@ -43,4 +43,5 @@ ?StartNotificationL@CConnectionStageNotifierWCB@@QAEXPAV?$TBuf@$0IA@@@PAHHPAVMConnectionMultiStageObserver@@H@Z @ 42 NONAME ; void CConnectionStageNotifierWCB::StartNotificationL(class TBuf<128> *, int *, int, class MConnectionMultiStageObserver *, int) ?StopConnectionL@CInternetConnectionManager@@QAEXXZ @ 43 NONAME ; void CInternetConnectionManager::StopConnectionL(void) ?UnsetApChangeObserver@CInternetConnectionManager@@UAEXXZ @ 44 NONAME ; void CInternetConnectionManager::UnsetApChangeObserver(void) + ?GetProgressBuffer@CConnectionStageNotifierWCB@@QAE?AV?$TPckgBuf@VTNifProgress@@@@XZ @ 45 NONAME ; class TPckgBuf CConnectionStageNotifierWCB::GetProgressBuffer(void) diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 browserutilities/connectionmanager/EABI/CONNECTIONMANAGERU_EKA2U.def --- a/browserutilities/connectionmanager/EABI/CONNECTIONMANAGERU_EKA2U.def Tue May 11 17:13:44 2010 +0300 +++ b/browserutilities/connectionmanager/EABI/CONNECTIONMANAGERU_EKA2U.def Tue May 25 13:52:38 2010 +0300 @@ -124,3 +124,5 @@ _ZN26CInternetConnectionManager17SetConnectionTypeEN9CMManager23TCmSettingSelectionModeE @ 123 NONAME _ZThn8_N26CInternetConnectionManager16SetRequestedSnapEm @ 124 NONAME ; ## _ZThn8_N26CInternetConnectionManager17SetConnectionTypeEN9CMManager23TCmSettingSelectionModeE @ 125 NONAME ; ## + _ZN27CConnectionStageNotifierWCB17GetProgressBufferEv @ 126 NONAME + diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp --- a/browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp Tue May 11 17:13:44 2010 +0300 +++ b/browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp Tue May 25 13:52:38 2010 +0300 @@ -194,7 +194,8 @@ void CConnManActiveConnector::DoCancel() { CLOG_WRITE( "CConnManActiveConnector: DoCancel called"); - + //This is work around fix for bug ESNA-855BUN + iConnection.Close(); User::RequestComplete( iExternalRequestStatus, KErrCancel );//completing user req CLOG_WRITE( "CConnManActiveConnector: DoCancel returned"); diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 browserutilities/connectionmanager/Src/ConnectionObservers.cpp --- a/browserutilities/connectionmanager/Src/ConnectionObservers.cpp Tue May 11 17:13:44 2010 +0300 +++ b/browserutilities/connectionmanager/Src/ConnectionObservers.cpp Tue May 25 13:52:38 2010 +0300 @@ -111,12 +111,8 @@ if( !iMultiObserver ) { CLOG_WRITE( "CConnectionStageNotifierWCB Browser UI" ); - #ifdef BRDO_OCC_ENABLED_FF //This is only for emulator testing. It should be #ifdef - if ( iProgressBuf().iStage == iStageToObserve && (iProgressBuf().iError == KErrDisconnected || iProgressBuf().iError == KErrTimedOut) ) - #else - if ( iProgressBuf().iStage == iStageToObserve ) - #endif - { + if ( iProgressBuf().iStage == iStageToObserve ) + { CLOG_WRITE( "Stage achived" ); DoCloseAgent(); iObserver->ConnectionStageAchievedL(); @@ -300,4 +296,14 @@ return EFalse; } +//-------------------------------------------------------------------------- +//CConnectionStageNotifierWCB::GetProgressBuffer() +//-------------------------------------------------------------------------- +EXPORT_C TNifProgressBuf + CConnectionStageNotifierWCB::GetProgressBuffer() + { + CLOG_ENTERFN( "CConnectionStageNotifierWCB::GetProgressBuffer()" ); + return iProgressBuf; + } + //EOF diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 browserutilities/connectionmanager/Src/InternetConnectionManager.cpp --- a/browserutilities/connectionmanager/Src/InternetConnectionManager.cpp Tue May 11 17:13:44 2010 +0300 +++ b/browserutilities/connectionmanager/Src/InternetConnectionManager.cpp Tue May 25 13:52:38 2010 +0300 @@ -653,6 +653,11 @@ iConnection.Close(); TInt err = iConnection.Open( iServ, KAfInet ); } + else + { + CLOG_WRITE( "Cancel the Connection" ); + CancelConnection(); + } // iServ.Close(); iConnected = EFalse; @@ -1660,8 +1665,10 @@ // void CInternetConnectionManager::CancelConnection() { + CLOG_ENTERFN("CInternetConnectionManager::CancelConnection"); if(iSyncConnector && iSyncConnector->IsActive()) { + CLOG_WRITE( "Connection is cancelled" ); iSyncConnector->Cancel(); } } diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 browserutilities/webutils/conf/webutils.confml Binary file browserutilities/webutils/conf/webutils.confml has changed diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 web_plat/connection_manager_api/inc/ConnectionObservers.h --- a/web_plat/connection_manager_api/inc/ConnectionObservers.h Tue May 11 17:13:44 2010 +0300 +++ b/web_plat/connection_manager_api/inc/ConnectionObservers.h Tue May 25 13:52:38 2010 +0300 @@ -127,6 +127,8 @@ MConnectionMultiStageObserver* aObserver, TBool aCompleteIfAlreadyAtStage = ETrue ); + IMPORT_C TNifProgressBuf GetProgressBuffer(); + protected: /** diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 web_pub/browser_control_api/tsrc/data/ui_browser_control_api.cfg --- a/web_pub/browser_control_api/tsrc/data/ui_browser_control_api.cfg Tue May 11 17:13:44 2010 +0300 +++ b/web_pub/browser_control_api/tsrc/data/ui_browser_control_api.cfg Tue May 25 13:52:38 2010 +0300 @@ -734,6 +734,16 @@ title HandleCommandHistoryNavigateForward BC Test create BrCtlApiTest container container CreateBrowserControl +container HistoryHandler Page1 +pause 3000 +container HistoryHandler Page2 +pause 3000 +container HistoryHandler Page3 +pause 3000 +container HandleCommand Back +pause 3000 +container HandleCommand HistoryNavigateBack +pause 3000 container HandleCommand HistoryNavigateForward container DestroyBrowserControl delete container @@ -743,6 +753,14 @@ title HandleCommandHistoryNavigateBack BC Test create BrCtlApiTest container container CreateBrowserControl +container HistoryHandler Page1 +pause 3000 +container HistoryHandler Page2 +pause 3000 +container HistoryHandler Page3 +pause 3000 +container HandleCommand Back +pause 3000 container HandleCommand HistoryNavigateBack container DestroyBrowserControl delete container @@ -873,6 +891,8 @@ pause 3000 container WMLLoad Page3 pause 3000 +container HandleCommand Back +pause 3000 container HandleCommand HistoryNavigateBack pause 3000 container DestroyBrowserControl diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 web_pub/browser_control_api/tsrc/src/BrCtlApiTestBlocks.cpp --- a/web_pub/browser_control_api/tsrc/src/BrCtlApiTestBlocks.cpp Tue May 11 17:13:44 2010 +0300 +++ b/web_pub/browser_control_api/tsrc/src/BrCtlApiTestBlocks.cpp Tue May 25 13:52:38 2010 +0300 @@ -196,7 +196,7 @@ TBrCtlDefs::ECapabilityClientResolveEmbeddedURL | TBrCtlDefs::ECapabilityLoadHttpFw | TBrCtlDefs::ECapabilitySavedPage | - TBrCtlDefs::ECapabilityDisplayScrollBar ; + TBrCtlDefs::ECapabilityDisplayScrollBar|TBrCtlDefs::ECapabilityGraphicalHistory ; TRAP( err, iBrCtlTestContainer = new (ELeave) CBrCtlApiTestContainer; diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebCore/page/FrameView.cpp --- a/webengine/osswebengine/WebCore/page/FrameView.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebCore/page/FrameView.cpp Tue May 25 13:52:38 2010 +0300 @@ -719,6 +719,9 @@ if (!m_frame->document() || !m_frame->document()->shouldScheduleLayout()) return; + if (!m_frame->settings()) + return; + // In flat frame layout mode the content of frame affects layout of the parent frames. // Invalidate also parent frame starting from the owner element of this frame. #if PLATFORM(SYMBIAN) diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebCore/platform/network/symbian/HttpConnection.cpp --- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpConnection.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpConnection.cpp Tue May 25 13:52:38 2010 +0300 @@ -83,10 +83,13 @@ void DefersData::Activate() { - SetActive(); - iStatus = KRequestPending; - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); + if(!IsActive()) + { + SetActive(); + iStatus = KRequestPending; + TRequestStatus* status = &iStatus; + User::RequestComplete( status, KErrNone ); + } } @@ -416,6 +419,11 @@ return; } } + if(httpStatus == EHttpNotAcceptable) + { + complete(KBrowserHTTPStatusCodes - m_transaction->Response().StatusCode()); + return; + } if ( !handled ) { // url @@ -731,8 +739,11 @@ // error handling //KErrDisconnected should be coming only for OCC //MHFRunL gets call before connection manager - if(aEvent.iStatus == KErrDisconnected) + if(aEvent.iStatus == KErrNotReady) + { StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->setRetryConnectivityFlag(); + StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->startTimer(); + } else handleError(aEvent.iStatus); break; diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebCore/platform/network/symbian/HttpDefs.h --- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpDefs.h Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpDefs.h Tue May 25 13:52:38 2010 +0300 @@ -198,6 +198,7 @@ #define KBrowserLastErrorCode -26999 // HTTP status codes +#define KBrowserHTTPStatusCodes -25000 #define KBrowserHTTP100 -25100 #define KBrowserHTTP101 -25101 #define KBrowserHTTP102 -25102 diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.cpp --- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.cpp Tue May 25 13:52:38 2010 +0300 @@ -42,7 +42,8 @@ // CONSTANTS _LIT8( KHttpProtString, "HTTP/TCP" ); _LIT (KNullStr, ""); - +const TInt KResetRetryFlagTimeOut = 5*1000*1000; +TInt doResetFlag(TAny*); class MBrCtlSpecialLoadObserver; using namespace WebCore; @@ -60,6 +61,7 @@ m_SelfDownloadContentHandler = NULL; m_SelfDownloadContentTypes = KNullStr().Alloc(); retryConnectivityFlag = EFalse; + m_resetTimer = NULL; } HttpSessionManager::~HttpSessionManager() @@ -76,6 +78,12 @@ m_SelfDownloadContentHandler = NULL; delete m_SelfDownloadContentTypes; m_SelfDownloadContentTypes = NULL; + if(m_resetTimer) + { + m_resetTimer->Cancel(); + delete m_resetTimer; + m_resetTimer = NULL; + } m_ClientAcceptHeaders.ResetAndDestroy(); m_ClientAcceptHeaders.Close(); closeHttpSession(); @@ -507,4 +515,29 @@ } } +void HttpSessionManager::startTimer() +{ + RDebug::Printf("hamish HttpSessionManager::startTimer()"); + if(m_resetTimer) + deleteTimer(); + m_resetTimer = CPeriodic::NewL(CActive::EPriorityStandard); + m_resetTimer->Start(KResetRetryFlagTimeOut,0,TCallBack(&doResetFlag,this)); +} + +void HttpSessionManager::deleteTimer() +{ + m_resetTimer->Cancel(); + delete m_resetTimer; + m_resetTimer = NULL; +} + +TInt doResetFlag(TAny* ptr) +{ + RDebug::Printf("hamish doResetFlag"); + HttpSessionManager* tmp = static_cast(ptr); + tmp->unSetRetryConnectivityFlag(); + tmp->deleteTimer(); + return EFalse; +} + // end of file diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.h --- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.h Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.h Tue May 25 13:52:38 2010 +0300 @@ -103,6 +103,8 @@ TBool isInSecureConnection() {return m_inSecConnection;} void setInSecureConnection(TBool inSecCon) {m_inSecConnection = inSecCon;} void cancelQueuedTransactions(); + void startTimer(); + void deleteTimer(); private: void updateFilters(bool initializing = false); @@ -138,6 +140,7 @@ RPointerArray m_ClientAcceptHeaders; TBool retryConnectivityFlag; TBool m_inSecConnection; + CPeriodic* m_resetTimer; }; #endif // __HTTPSESSIONMANAGER_H__ diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebKit/s60/misc/ErrorDefs.h --- a/webengine/osswebengine/WebKit/s60/misc/ErrorDefs.h Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/misc/ErrorDefs.h Tue May 25 13:52:38 2010 +0300 @@ -113,6 +113,7 @@ #define KBrowserLastErrorCode -26999 // HTTP status codes +#define KBrowserHTTPStatusCodes -25000 #define KBrowserHTTP100 -25100 #define KBrowserHTTP101 -25101 #define KBrowserHTTP102 -25102 diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebKit/s60/misc/WebUtil.cpp --- a/webengine/osswebengine/WebKit/s60/misc/WebUtil.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/misc/WebUtil.cpp Tue May 25 13:52:38 2010 +0300 @@ -628,7 +628,9 @@ err == KErrHttpCannotEstablishTunnel) { return KErrSSLAlertHandshakeFailure; } - + //Deal With Socket error + if( err <= KErrNetUnreach && err >= KErrUrgentData ) + return err; // Deal with DNS lookup errors if ((err <= KErrInet6NoDestination) && (err > (KErrInet6NoDestination - 200))) { return KBrowserHTTP502; diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp --- a/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp Tue May 25 13:52:38 2010 +0300 @@ -605,8 +605,8 @@ m_pageLoadFinished = true; m_didFirstLayout= false; if (m_suspendTimers) { - m_suspendTimers = false; - setDeferringTimers(true); + m_suspendTimers = false; + m_webView->pauseJsTimers(); } #ifndef BRDO_WML_DISABLED_FF if (m_wmlUnloadPending) @@ -791,7 +791,7 @@ if(m_webView->widgetExtension()) { if(m_pageLoadFinished) - setDeferringTimers(true); + m_webView->pauseJsTimers(); else m_suspendTimers = true; } @@ -799,14 +799,14 @@ { if (m_webView->isLoading()) m_suspendTimers = true; - else if (!isDeferringTimers()) - setDeferringTimers(true); + else + m_webView->pauseJsTimers(); + } #endif //Disable the zooming bar when it goes to background - m_webView->hideZoomSliderL(); - m_webView->pauseJsTimers(); + m_webView->hideZoomSliderL(); break; } case TBrCtlDefs::ECommandClearAutoFormFillData: diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp --- a/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp Tue May 25 13:52:38 2010 +0300 @@ -146,7 +146,8 @@ state->SetFlags( EAknEditorFlagNoLRNavigation | EAknEditorFlagLatinInputModesOnly | EAknEditorFlagNoT9 | - EAknEditorFlagUseSCTNumericCharmap ); + EAknEditorFlagUseSCTNumericCharmap | + EAknEditorFlagNoLRNavigation); state->SetDefaultInputMode(EAknEditorSecretAlphaInputMode); state->SetCurrentInputMode(EAknEditorSecretAlphaInputMode); state->SetPermittedCases(EAknEditorLowerCase|EAknEditorUpperCase); @@ -155,6 +156,7 @@ state->SetDefaultCase(EAknEditorLowerCase); state->SetSpecialCharacterTableResourceId(R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_LATIN_ONLY); state->SetNumericKeymap(EAknEditorStandardNumberModeKeymap); + state->SetCcpuState(NULL); } } else { @@ -181,6 +183,7 @@ state->SetDefaultCase(EAknEditorLowerCase); state->SetPermittedInputModes(EAknEditorAllInputModes); state->SetPermittedCases(EAknEditorAllCaseModes);//allow everything + state->SetCcpuState(this); } } } @@ -1499,3 +1502,9 @@ return ( frame && frame->document()->focusedNode() && frame->document()->focusedNode()->hasTagName(HTMLNames::inputTag)); } + +void CWebFepTextEditor::ReportEventL() + { + m_ExtendedInputCapabilities->ReportEventL(CAknExtendedInputCapabilities:: + MAknEventObserver::EPointerEventReceived, NULL ); + } diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.h --- a/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.h Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.h Tue May 25 13:52:38 2010 +0300 @@ -133,6 +133,7 @@ bool IsWapMaskedModeInput(WebCore::Frame* frame); void EnableCcpuL(); TBool IsInputElementFocused() const; + void ReportEventL(); private: void findPrevSiblingTextLen(Node*, TInt&) const; Node* findTextNodeForCurPos(Node* aNode, TInt& aPos) const; diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebKit/s60/webview/WebPageScrollHandler.cpp --- a/webengine/osswebengine/WebKit/s60/webview/WebPageScrollHandler.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/webview/WebPageScrollHandler.cpp Tue May 25 13:52:38 2010 +0300 @@ -86,7 +86,13 @@ WebFrameView* ScrollableView::activeFrameView() { if (m_scrollingElement) { - return kit(m_scrollingElement->document()->frame())->frameView(); + Frame* frame = m_scrollingElement->document()->frame(); + if(frame) { + return kit(frame)->frameView(); + } + else { + return NULL; + } } else { return m_frameView; diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp --- a/webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp Tue May 25 13:52:38 2010 +0300 @@ -37,8 +37,7 @@ const int KScrollIntervalTimeout = 60000; // scroll timer interval in microseconds -const float KDeccelerationLow = -350.0; -const float KDeccelerationHigh = -600.0; +const float KDecceleration = -750.0; const float KSpeedHigh = 2000.0; int decelTimerCB(TAny* ptr); @@ -79,7 +78,7 @@ void WebScrollingDeceleratorGH::ConstructL() { m_decelTimer = CPeriodic::NewL(CActive::EPriorityStandard); - m_deceleration = KDeccelerationHigh; + m_deceleration = KDecceleration; } // ----------------------------------------------------------------------------- @@ -125,11 +124,9 @@ if (absSpeedX > KSpeedHigh) { speedX = KSpeedHigh * speedX/absSpeedX ; - m_deceleration = KDeccelerationLow; } if (absSpeedY > KSpeedHigh) { speedY = KSpeedHigh * speedY/absSpeedY; - m_deceleration = KDeccelerationLow; } m_initSpeed.iX = (-1) * speedX; diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/WebKit/s60/webview/WebView.cpp --- a/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Tue May 25 13:52:38 2010 +0300 @@ -2818,6 +2818,7 @@ void WebView::activateVirtualKeyboard() { if (isEditable() && iCoeEnv->Fep()) { + fepTextEditor()->ReportEventL(); fepTextEditor()->CancelEditingMode(); fepTextEditor()->UpdateEditingMode(); iCoeEnv->Fep()->HandleChangeInFocus(); diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/cache/src/HttpCacheEntry.cpp --- a/webengine/osswebengine/cache/src/HttpCacheEntry.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/cache/src/HttpCacheEntry.cpp Tue May 25 13:52:38 2010 +0300 @@ -493,7 +493,12 @@ { delete iWriteHelper; iWriteHelper = NULL; - TRAP_IGNORE( iWriteHelper = CHttpCacheEntryAsyncWriteHelper::NewL( this, aStatus ) ); + TRAPD(err, iWriteHelper = CHttpCacheEntryAsyncWriteHelper::NewL( this, aStatus ) ); + if(err != KErrNone) + { + TRequestStatus *stat = &aStatus; + User::RequestComplete(stat, err); + } } // ----------------------------------------------------------------------------- diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/cache/src/HttpCacheManager.cpp --- a/webengine/osswebengine/cache/src/HttpCacheManager.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/cache/src/HttpCacheManager.cpp Tue May 25 13:52:38 2010 +0300 @@ -941,9 +941,12 @@ // get critical level // RAM drive can have different critical level TVolumeInfo vinfo; - User::LeaveIfError(CCoeEnv::Static()->FsSession().Volume(vinfo, drive)); - // + RFs fsSession; + User::LeaveIfError(fsSession.Connect()); + CleanupClosePushL( fsSession ); + User::LeaveIfError(fsSession.Volume(vinfo, drive)); User::LeaveIfError(aRepository.Get((vinfo.iDrive.iType == EMediaRam ? KRamDiskCriticalLevel : KDiskCriticalThreshold), aCriticalLevel)); + CleanupStack::PopAndDestroy(&fsSession); } void CHttpCacheManager::CreateHttpCacheL( const TInt& aSecIdInt, const TInt& aCacheSize, const TInt& aCriticalLevel, const THttpCachePostponeParameters& aPostpone ) diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/osswebengine/cache/src/HttpCacheStreamHandler.cpp --- a/webengine/osswebengine/cache/src/HttpCacheStreamHandler.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/osswebengine/cache/src/HttpCacheStreamHandler.cpp Tue May 25 13:52:38 2010 +0300 @@ -512,6 +512,8 @@ // !enoughSpace saveOk = KErrDiskFull; aEntry.BodyData().Reset(); + TRequestStatus *stat = &aStatus; + User::RequestComplete(stat, saveOk); } } else diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/widgetbackuprestore/Src/WidgetBackupRestore.cpp --- a/webengine/widgetbackuprestore/Src/WidgetBackupRestore.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/widgetbackuprestore/Src/WidgetBackupRestore.cpp Tue May 25 13:52:38 2010 +0300 @@ -170,7 +170,8 @@ } else { - if ( type == conn::EBURNormal ) + //If iLastType is EBURUnset, do not stop the activescheduler + if ( type == conn::EBURNormal && iLastType != conn::EBURUnset ) { if ( iLastType == conn::EBURBackupFull || iLastType == conn::EBURBackupPartial ) { diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/widgetengine/src/MenuClient.cpp --- a/webengine/widgetengine/src/MenuClient.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/widgetengine/src/MenuClient.cpp Tue May 25 13:52:38 2010 +0300 @@ -298,12 +298,7 @@ m_jsmenu->leftKeyCallback()->InvokeCall(); return ETrue; } - - if ( aCommandId == EAknSoftkeyOptions && m_jsmenu && m_jsmenu->onShowCallback() ) { - m_jsmenu->onShowCallback()->InvokeCall(); - return ETrue; - } - + return EFalse; } diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/widgetregistry/Server/src/WidgetRegistryServer.cpp --- a/webengine/widgetregistry/Server/src/WidgetRegistryServer.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/widgetregistry/Server/src/WidgetRegistryServer.cpp Tue May 25 13:52:38 2010 +0300 @@ -131,12 +131,9 @@ TRAP_IGNORE( apparcSession.RegisterNonNativeApplicationTypeL( KUidWgtWidgetLauncher, KWgtLauncherApp())); - - - apparcSession.PrepareNonNativeApplicationsUpdatesL(); - apparcSession.ForceCommitNonNativeApplicationsUpdatesL(); - apparcSession.Close(); - } + + apparcSession.Close(); + } // First create and install the active scheduler CActiveScheduler* scheduler = new ( ELeave ) CActiveScheduler; diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 webengine/wrtharvester/src/wrtharvester.cpp --- a/webengine/wrtharvester/src/wrtharvester.cpp Tue May 11 17:13:44 2010 +0300 +++ b/webengine/wrtharvester/src/wrtharvester.cpp Tue May 25 13:52:38 2010 +0300 @@ -774,13 +774,39 @@ void CWrtHarvester::QueueOperationL( TWidgetOperations aOperation, TUid aUid ) { //Hack to find out if WidgetUi exist as Queue keeps filling up - if((iHSCount*3 <= iWidgetOperations.Count() && !CheckTaskExistsL()) || (aOperation == WidgetSelect)) - { + SWidgetOperation op = { aOperation, aUid }; + + if((iHSCount*3 <= iWidgetOperations.Count() && !CheckTaskExistsL() ) || (aOperation == WidgetSelect)) + { ClearAllOperations(); iWidgetUIListener->SetValue(1); - } - SWidgetOperation op = { aOperation, aUid }; - iWidgetOperations.Append( op ); + } + + TBool queued (EFalse); + for(TInt i =0; i < iWidgetOperations.Count() && (aOperation == WidgetResume || aOperation == WidgetSuspend ) ; i++) + { + SWidgetOperation opInQueue = iWidgetOperations[i]; + //we get resume but we already have suspend in Queue + //make Resume as Suspend + if(op.iOperation == WidgetResume && opInQueue.iUid == op.iUid && opInQueue.iOperation == WidgetSuspend ) + { + iWidgetOperations[i].iOperation = WidgetResume; + queued = ETrue; + break; + } + //we get suspend but we already have resume in Queue + //make Suspend as Resume + if(op.iOperation == WidgetSuspend && opInQueue.iUid == op.iUid && opInQueue.iOperation == WidgetResume ) + { + iWidgetOperations[i].iOperation = WidgetSuspend; + queued = ETrue; + break; + } + } + + if(!queued) + iWidgetOperations.Append( op ); + TryLaunchNextOperationL(); } diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetapp/inc/WidgetUiAppUi.h --- a/widgets/widgetapp/inc/WidgetUiAppUi.h Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetapp/inc/WidgetUiAppUi.h Tue May 25 13:52:38 2010 +0300 @@ -101,6 +101,14 @@ * @return void */ void SendAppToBackground(); + + /** + * SendAppToForeground + * Send widget ui to foreground + * @since + * @return void + */ + void SendAppToForeground(); /** * SetDisplayLandscapeL diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetapp/inc/WidgetUiWindow.h --- a/widgets/widgetapp/inc/WidgetUiWindow.h Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetapp/inc/WidgetUiWindow.h Tue May 25 13:52:38 2010 +0300 @@ -77,6 +77,7 @@ class CSchemeHandler; class CBrCtlInterface; class CJpgSaver; +class CBrowserDialogsProvider; // CLASS DECLARATION /** @@ -541,8 +542,15 @@ TBool CanBeDeleted(); static TInt DeleteItself(TAny* aPtr); + +#ifdef BRDO_OCC_ENABLED_FF + void CancelAllDialogs(); + TBool IsDialogsLaunched(); +#endif + + protected: /** @@ -647,6 +655,7 @@ TBool iConnecting; TBool iDeleteItself; CAsyncCallBack* iAsyncCallBack; + CBrowserDialogsProvider* iDialogsProvider;// owned, responsible for deleting #ifdef BRDO_OCC_ENABLED_FF CConnectionStageNotifierWCB* iConnStageNotifier; #endif diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetapp/inc/WidgetUiWindowManager.h --- a/widgets/widgetapp/inc/WidgetUiWindowManager.h Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetapp/inc/WidgetUiWindowManager.h Tue May 25 13:52:38 2010 +0300 @@ -48,7 +48,6 @@ class CWidgetUiAppUi; class CWidgetUiCpsObserver; class CAknNoteDialog; -class CBrowserDialogsProvider; class CBrCtlInterface; class CLiwServiceHandler; class MLiwInterface; @@ -298,14 +297,7 @@ */ RWidgetRegistryClientSession& WidgetUIClientSession() { return iClientSession; } - /** - * DialogsProvider - * @since 3.1 - * @param none - * @return CBrowserDialogsProvider - */ - CBrowserDialogsProvider* DialogsProvider() { return iDialogsProvider; } - + /** * HandleLSKCommandL * @since 5.0 @@ -624,7 +616,6 @@ RWidgetRegistryClientSession iClientSession; // owned TBool iServerConnected; // connected to Widget Registry server ? TBool iStrictMode; - CBrowserDialogsProvider* iDialogsProvider;// owned, responsible for deleting CInternetConnectionManager* iConnection; // owned, responsible for deleting TNetworkMode iNetworkMode; // unknown mode = 0, online mode = 1, offline mode = 2 TBool iNetworkConnected; // ETrue if there is an active network connection, else EFalse diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetapp/src/WidgetUiAppUi.cpp --- a/widgets/widgetapp/src/WidgetUiAppUi.cpp Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetapp/src/WidgetUiAppUi.cpp Tue May 25 13:52:38 2010 +0300 @@ -400,7 +400,22 @@ TApaTask task = taskList.FindApp( wapUid ); task.SendToBackground(); } - + + +// ----------------------------------------------------------------------------- +// CWidgetUiAppUi::SendAppToForeground +// force the application to the foreground +// +// ----------------------------------------------------------------------------- +// +void CWidgetUiAppUi::SendAppToForeground() + { + TApaTaskList taskList( CEikonEnv::Static()->WsSession() ); + TUid wapUid( TUid::Uid( KWidgetAppUid ) ); + TApaTask task = taskList.FindApp( wapUid ); + task.BringToForeground(); + } + // ----------------------------------------------------------------------------- // CWidgetUiAppUi::SetRotationSupport() // check to see if screen oriantation can be changed diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetapp/src/WidgetUiNetworkListener.cpp --- a/widgets/widgetapp/src/WidgetUiNetworkListener.cpp Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetapp/src/WidgetUiNetworkListener.cpp Tue May 25 13:52:38 2010 +0300 @@ -91,24 +91,12 @@ } else if ( iNote().iState == EInterfaceDown ) { -#ifndef BRDO_OCC_ENABLED_FF - RTimer timer; - TRequestStatus timerStatus; // Request status associated with timer - timer.CreateLocal(); -#endif // check if there are no other active connections if ( !CheckActiveNetworkConnection() ) { // notify widgets of a network connection going down iWindowManager.NotifyConnecionChange( EFalse ); -#ifndef BRDO_OCC_ENABLED_FF - timer.After(timerStatus,30000000); - User::WaitForRequest(timerStatus); -#endif } -#ifndef BRDO_OCC_ENABLED_FF - timer.Close(); -#endif } iConn.AllInterfaceNotification( iNote, iStatus ); diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetapp/src/WidgetUiWindow.cpp --- a/widgets/widgetapp/src/WidgetUiWindow.cpp Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetapp/src/WidgetUiWindow.cpp Tue May 25 13:52:38 2010 +0300 @@ -29,7 +29,7 @@ #include #include #include - +#include #include #include #include "WidgetInstallerInternalCRKeys.h" @@ -56,7 +56,9 @@ const TUint KWmlNoDefaultAccessPoint = KMaxTUint; // see cenrep setting default -1 as int, here as uint const TUint KWmlNoDefaultSnapId = KMaxTUint; // see cenrep setting default -1 as int, here as uint +#ifdef BRDO_OCC_ENABLED_FF const TInt KRetryConnectivityTimeout( 2*1000*1000 ); // 2 seconds +#endif // MACROS @@ -112,7 +114,8 @@ void CWidgetUiWindow::ConstructL( const TUid& aUid ) { iUid = aUid; - + iDialogsProvider = CBrowserDialogsProvider::NewL( NULL ); + iPenEnabled = AknLayoutUtils::PenEnabled(); iShowSoftkeys = iPenEnabled; @@ -125,7 +128,7 @@ iUrl = GetUlrL( clientSession, aUid ); iWidgetUiObserver = CWidgetUiObserver::NewL( *this ); - iWidgetUiDialogsProviderProxy = CWidgetUiDialogsProviderProxy::NewL(*(iWindowManager.DialogsProvider()), NULL, *this); + iWidgetUiDialogsProviderProxy = CWidgetUiDialogsProviderProxy::NewL(*iDialogsProvider, NULL, *this); #ifdef BRDO_WRT_HS_FF iNetworkModeWait = new(ELeave) CActiveSchedulerWait(); @@ -219,6 +222,10 @@ // CWidgetUiWindow::~CWidgetUiWindow() { + if( iDialogsProvider) + { + iDialogsProvider->CancelAll(); + } if (iEngine && iWidgetUiObserver) { iEngine->RemoveLoadEventObserver( iWidgetUiObserver ); @@ -246,7 +253,8 @@ iAsyncCallBack->Cancel(); } delete iAsyncCallBack; - iAsyncCallBack=NULL; + iAsyncCallBack=NULL; + delete iDialogsProvider; } // ----------------------------------------------------------------------------- @@ -356,7 +364,7 @@ TBool CWidgetUiWindow::DialogMimeFileSelectLC(HBufC*& aSelectedFileName, const TDesC& aMimeType) { - return iWindowManager.DialogsProvider()->DialogMimeFileSelectLC(aSelectedFileName, aMimeType); + return iDialogsProvider->DialogMimeFileSelectLC(aSelectedFileName, aMimeType); } // ----------------------------------------------------------------------------- @@ -795,13 +803,11 @@ if ( prompt ) { - CBrowserDialogsProvider* dialogProvider - = iWindowManager.DialogsProvider(); TBool grant = EFalse; HBufC* message = StringLoader::LoadLC( R_WIDGETUI_NETWORK_ACCESS ); HBufC* yes = StringLoader::LoadLC( R_WIDGETUI_SOFTKEY_YES ); HBufC* no = StringLoader::LoadLC( R_WIDGETUI_SOFTKEY_NO ); - grant = dialogProvider->DialogConfirmL( _L(""), *message, *yes, *no ); + grant = iDialogsProvider->DialogConfirmL( _L(""), *message, *yes, *no ); CleanupStack::PopAndDestroy( 3 ); // save prompt result for session SetNetworkAccessGrant( grant? EAllow : EDeny ); @@ -1308,8 +1314,10 @@ CWidgetUiWindow* self = (CWidgetUiWindow*)aPtr; CWidgetUiWindowManager* p = &self->iWindowManager; delete self; + //The Correct fix is to call AppUI::Exit() + //But that is leaving if(p->WindowListCount() == 0) - p->ExitNow(); + User::Exit(KErrNone); return 0; } @@ -1320,20 +1328,22 @@ // void CWidgetUiWindow::ConnectionStageAchievedL() { - iWindowManager.GetConnection()->Disconnect(); - - TRAP_IGNORE( Engine()->HandleCommandL( (TInt)TBrCtlDefs::ECommandSetRetryConnectivityFlag + (TInt)TBrCtlDefs::ECommandIdBase ) ); - SetRetryFlag(ETrue); + + TNifProgressBuf buf = iConnStageNotifier->GetProgressBuffer(); + if( buf().iError == KErrDisconnected ) + { + TRAP_IGNORE( Engine()->HandleCommandL( (TInt)TBrCtlDefs::ECommandSetRetryConnectivityFlag + (TInt)TBrCtlDefs::ECommandIdBase ) ); + SetRetryFlag(ETrue); - TRAP_IGNORE( Engine()->HandleCommandL( (TInt)TBrCtlDefs::ECommandCancelQueuedTransactions + (TInt)TBrCtlDefs::ECommandIdBase ) ); + TRAP_IGNORE( Engine()->HandleCommandL( (TInt)TBrCtlDefs::ECommandCancelQueuedTransactions + (TInt)TBrCtlDefs::ECommandIdBase ) ); - if( iRetryConnectivity && iRetryConnectivity->IsActive()) - { - iRetryConnectivity->Cancel(); - } - iRetryConnectivity->Start(KRetryConnectivityTimeout, 0,TCallBack(RetryConnectivity,this)); - + if( iRetryConnectivity && iRetryConnectivity->IsActive()) + { + iRetryConnectivity->Cancel(); + } + iRetryConnectivity->Start(KRetryConnectivityTimeout, 0,TCallBack(RetryConnectivity,this)); + } } void CWidgetUiWindow::ConnNeededStatusL( TInt aErr ) @@ -1416,5 +1426,18 @@ { return reConnectivityFlag; } + + void CWidgetUiWindow::CancelAllDialogs() + { + if( iDialogsProvider) + { + iDialogsProvider->CancelAll(); + } + } + + TBool CWidgetUiWindow::IsDialogsLaunched() + { + return (iDialogsProvider && iDialogsProvider->IsDialogLaunched() ); + } #endif // End of file diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetapp/src/WidgetUiWindowManager.cpp --- a/widgets/widgetapp/src/WidgetUiWindowManager.cpp Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetapp/src/WidgetUiWindowManager.cpp Tue May 25 13:52:38 2010 +0300 @@ -36,7 +36,6 @@ #include #include #include -#include #include #include #include "cpglobals.h" // CPS string definitions. @@ -174,7 +173,6 @@ delete cenRep; } - iDialogsProvider = CBrowserDialogsProvider::NewL( NULL ); iHandler = CDocumentHandler::NewL(CEikonEnv::Static()->Process()); iDb = CActiveApDb::NewL( EDatabaseTypeIAP ); @@ -220,10 +218,9 @@ iCenrepNotifyHandler->DoCancel(); delete iCenrepNotifyHandler; #endif - if( iDialogsProvider) - iDialogsProvider->CancelAll(); - iActiveFsWindow = NULL; - iWindowList.ResetAndDestroy(); + iActiveFsWindow = NULL; + + iWindowList.ResetAndDestroy(); #ifdef BRDO_WRT_HS_FF delete iNetworkListener; @@ -239,8 +236,6 @@ iClientSession.Close(); delete iHandler; - delete iDialogsProvider; - if ( iConnection ) { TRAP_IGNORE( iConnection->StopConnectionL() ); @@ -274,6 +269,14 @@ iClientSession.SetMiniViewL( aUid, EFalse ); +#ifdef BRDO_OCC_ENABLED_FF + wdgt_window->CancelAllDialogs(); + + if ( wdgt_window->IsDialogsLaunched() ) + { + return EFalse; + } +#endif return CloseWindow( wdgt_window ); } @@ -411,6 +414,14 @@ (TInt)TBrCtlDefs::ECommandDisconnect ); iConnection->CancelConnection(); iConnection->StopConnectionL(); +#ifdef BRDO_OCC_ENABLED_FF + for ( TInt i = 0; i < iWindowList.Count(); i++ ) + { + CWidgetUiWindow* window = iWindowList[i]; + //send to all windows + window->StopConnectionObserving(); + } +#endif } if(wdgt_window->IsWidgetLoaded()) wdgt_window->DetermineNetworkState(); @@ -421,8 +432,27 @@ break; case WidgetFullViewClose: { - Exit( EEikCmdExit, aUid ); needToNotify = EFalse ; +#ifdef BRDO_OCC_ENABLED_FF + CWidgetUiWindow* window( GetWindow( aUid ) ); + if( !window ) + return; + else if ( window->IsDialogsLaunched() ) + { + iActiveFsWindow = window; + // Bring app to foreground + iAppUi.SendAppToForeground(); + if ( iActiveFsWindow->Engine()->Rect() != View()->ClientRect()) + { + iActiveFsWindow->Engine()->SetRect( View()->ClientRect() ); + } + iActiveFsWindow->SetCurrentWindow( ETrue ); + + }else + Exit( EEikCmdExit, aUid ); +#else + Exit( EEikCmdExit, aUid ); +#endif } break; } @@ -653,11 +683,7 @@ { __ASSERT_DEBUG( aWidgetWindow, User::Invariant() ); TBool count(EFalse); - if ( iDialogsProvider->IsDialogLaunched() ) - { - return EFalse; - } - + if ( iClientSession.IsWidgetInFullView ( aWidgetWindow->Uid())) { #ifdef BRDO_WRT_HS_FF @@ -942,9 +968,11 @@ } else { - if(iDialogsProvider) - iDialogsProvider->CancelAll(); - +#ifdef BRDO_OCC_ENABLED_FF + if(iActiveFsWindow) + iActiveFsWindow->CancelAllDialogs(); +#endif + #ifdef BRDO_WRT_HS_FF CFbsBitmap* bitmap( new CFbsBitmap() ); if ( bitmap && iCpsPublisher) @@ -1083,6 +1111,12 @@ (wdgt_window->WidgetMiniViewState() == EPublishSuspend) ) { //Widgets on HS cannnot be active + if (iActiveFsWindow ) + { + iActiveFsWindow->Engine()->MakeVisible( EFalse ); + iActiveFsWindow->SetIsCurrentWindow( EFalse ); + iActiveFsWindow->Engine()->HandleCommandL( (TInt)TBrCtlDefs::ECommandAppBackground + (TInt)TBrCtlDefs::ECommandIdBase); + } iActiveFsWindow = NULL; // Publish should start only after widget is resumed. wdgt_window->SetWindowStateMiniViewL(EPublishStart); @@ -1362,7 +1396,6 @@ // ------------------------------------------------------------------------ TBool CWidgetUiWindowManager::CloseAllWidgetsUnderOOM() { - TInt temp(0); TInt err(KErrNone); CWidgetUiWindow* windowToBeClosed(NULL); TTime currentTime; diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetinstaller/inc/WidgetUIOperationsWatcher.h --- a/widgets/widgetinstaller/inc/WidgetUIOperationsWatcher.h Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetinstaller/inc/WidgetUIOperationsWatcher.h Tue May 25 13:52:38 2010 +0300 @@ -97,7 +97,7 @@ * Handle silent install request. * @since 3.1 */ - void SilentInstallL( RFile&, const TDesC8&, TRequestStatus& ); + void SilentInstallL( RFile&, const TDesC8&, TChar&, TRequestStatus& ); /** * Handle uninstall request. @@ -309,6 +309,7 @@ TFileName iWidgetName; // save the widget name during overwrite (only for HS widgets) TBool iWidgetInHS; // indicates whether the widget was in HS + TInt iDrive; //Drive to intall widgets in case of silent install }; } diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetinstaller/src/WidgetInstallerUi.cpp --- a/widgets/widgetinstaller/src/WidgetInstallerUi.cpp Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetinstaller/src/WidgetInstallerUi.cpp Tue May 25 13:52:38 2010 +0300 @@ -146,13 +146,13 @@ void CWidgetInstallerUI::SilentInstallL( RFile& aFile, TInstallReq& aInstallParams, TBool /*aIsDRM*/, - TInstallOptions& /*aOptions*/, + TInstallOptions& aOptions, TRequestStatus& aStatus ) { __ASSERT_ALWAYS( !iWatcher, User::Leave( KErrInUse ) ); TRAPD( err , iWatcher = CWidgetUIOperationsWatcher::NewL(); - iWatcher->SilentInstallL( aFile, aInstallParams.iMIME, aStatus ); + iWatcher->SilentInstallL( aFile, aInstallParams.iMIME, aOptions.iDrive, aStatus ); ); if ( KErrNone != err ) { diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetinstaller/src/WidgetUIOperationsWatcher.cpp --- a/widgets/widgetinstaller/src/WidgetUIOperationsWatcher.cpp Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetinstaller/src/WidgetUIOperationsWatcher.cpp Tue May 25 13:52:38 2010 +0300 @@ -185,9 +185,11 @@ void CWidgetUIOperationsWatcher::SilentInstallL( RFile& aFile, const TDesC8& aMIME, + TChar& aDrive, TRequestStatus& aRequestStatus ) { iSilent = ETrue; + iRfs.CharToDrive(aDrive,iDrive); InstallL( aFile, aMIME, aRequestStatus ); } @@ -1231,7 +1233,7 @@ } else { - TDriveUnit selectedDrive(_L("C")); // in real should be read from install options which are ignore too at the moment. + TDriveUnit selectedDrive(iDrive); UpdateWidgetBasePathL( selectedDrive ); *(iPropertyValues[EDriveName]) = selectedDrive.Name(); } diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetsidchecker/group/widgetsidchecker.mmp --- a/widgets/widgetsidchecker/group/widgetsidchecker.mmp Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetsidchecker/group/widgetsidchecker.mmp Tue May 25 13:52:38 2010 +0300 @@ -38,4 +38,3 @@ LIBRARY euser.lib aplist.lib ecom.lib efsrv.lib LIBRARY ws32.lib apparc.lib library apgrfx.lib -LIBRARY WidgetRegistryClient.lib diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetsidchecker/inc/widgetsidchecker.h --- a/widgets/widgetsidchecker/inc/widgetsidchecker.h Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetsidchecker/inc/widgetsidchecker.h Tue May 25 13:52:38 2010 +0300 @@ -18,9 +18,6 @@ #define __WIDGETSIDCHECKER_H__ #include -#include - -class RWidgetRegistryClientSession; NONSHARABLE_CLASS(CWidgetSidChecker) : public CAppSidChecker { @@ -33,9 +30,8 @@ virtual void SetRescanCallBackL(const TCallBack &aCallback); private: - CWidgetSidChecker(); - TBool AppRegisteredAtL(TUid aSid ); - RWidgetRegistryClientSession iClientSession; + CWidgetSidChecker(); + }; #endif diff -r 8bfb9186a8b8 -r 4bd5176e1bc8 widgets/widgetsidchecker/src/widgetsidchecker.cpp --- a/widgets/widgetsidchecker/src/widgetsidchecker.cpp Tue May 11 17:13:44 2010 +0300 +++ b/widgets/widgetsidchecker/src/widgetsidchecker.cpp Tue May 25 13:52:38 2010 +0300 @@ -68,38 +68,14 @@ CWidgetSidChecker::~CWidgetSidChecker() { - iClientSession.Close(); + } -TBool CWidgetSidChecker::AppRegisteredAt(const TUid& aSid, TDriveUnit /*aDrive*/) - { - TFindProcess findProcess (_L("widgetregistry*")); - TFullName result; - if(findProcess.Next(result) == KErrNone ) - { - TBool res = AppRegisteredAtL(aSid); - return res; - } - return EFalse; - } - - -TBool CWidgetSidChecker::AppRegisteredAtL( TUid aSid ) +TBool CWidgetSidChecker::AppRegisteredAt(const TUid& /*aSid*/, TDriveUnit /*aDrive*/) { - TBuf aWidgetBundleId; - TBool res = EFalse; - - User::LeaveIfError( iClientSession.Connect() ); - iClientSession.GetWidgetBundleId(aSid, aWidgetBundleId); - //check if the widget exists by querying to WidgetRegisrty return ETrue if exists else return EFalse - if(iClientSession.WidgetExistsL( aWidgetBundleId ) ) - res = ETrue; - else - res = EFalse; - - iClientSession.Disconnect(); - return res; + return ETrue; } + void CWidgetSidChecker::SetRescanCallBackL(const TCallBack &/*aCallBack*/) {