Revision: 201019 RCL_3 PDK_3.0.0
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 25 May 2010 13:52:38 +0300
branchRCL_3
changeset 41 4bd5176e1bc8
parent 40 8bfb9186a8b8
child 42 a1a5d4e727e8
Revision: 201019 Kit: 2010121
browserutilities/browserdialogsprovider/Src/BrowserDialogsProvider.cpp
browserutilities/connectionmanager/BWinsCw/CONNECTIONMANAGERU_EKA2U.def
browserutilities/connectionmanager/EABI/CONNECTIONMANAGERU_EKA2U.def
browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp
browserutilities/connectionmanager/Src/ConnectionObservers.cpp
browserutilities/connectionmanager/Src/InternetConnectionManager.cpp
browserutilities/webutils/conf/webutils.confml
web_plat/connection_manager_api/inc/ConnectionObservers.h
web_pub/browser_control_api/tsrc/data/ui_browser_control_api.cfg
web_pub/browser_control_api/tsrc/src/BrCtlApiTestBlocks.cpp
webengine/osswebengine/WebCore/page/FrameView.cpp
webengine/osswebengine/WebCore/platform/network/symbian/HttpConnection.cpp
webengine/osswebengine/WebCore/platform/network/symbian/HttpDefs.h
webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.cpp
webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.h
webengine/osswebengine/WebKit/s60/misc/ErrorDefs.h
webengine/osswebengine/WebKit/s60/misc/WebUtil.cpp
webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp
webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp
webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.h
webengine/osswebengine/WebKit/s60/webview/WebPageScrollHandler.cpp
webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp
webengine/osswebengine/WebKit/s60/webview/WebView.cpp
webengine/osswebengine/cache/src/HttpCacheEntry.cpp
webengine/osswebengine/cache/src/HttpCacheManager.cpp
webengine/osswebengine/cache/src/HttpCacheStreamHandler.cpp
webengine/widgetbackuprestore/Src/WidgetBackupRestore.cpp
webengine/widgetengine/src/MenuClient.cpp
webengine/widgetregistry/Server/src/WidgetRegistryServer.cpp
webengine/wrtharvester/src/wrtharvester.cpp
widgets/widgetapp/inc/WidgetUiAppUi.h
widgets/widgetapp/inc/WidgetUiWindow.h
widgets/widgetapp/inc/WidgetUiWindowManager.h
widgets/widgetapp/src/WidgetUiAppUi.cpp
widgets/widgetapp/src/WidgetUiNetworkListener.cpp
widgets/widgetapp/src/WidgetUiWindow.cpp
widgets/widgetapp/src/WidgetUiWindowManager.cpp
widgets/widgetinstaller/inc/WidgetUIOperationsWatcher.h
widgets/widgetinstaller/src/WidgetInstallerUi.cpp
widgets/widgetinstaller/src/WidgetUIOperationsWatcher.cpp
widgets/widgetsidchecker/group/widgetsidchecker.mmp
widgets/widgetsidchecker/inc/widgetsidchecker.h
widgets/widgetsidchecker/src/widgetsidchecker.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();
 	}
 
 //-----------------------------------------------------------------------------
--- 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<class TNifProgress> CConnectionStageNotifierWCB::GetProgressBuffer(void)
 
--- 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 ; #<thunk>#
 	_ZThn8_N26CInternetConnectionManager17SetConnectionTypeEN9CMManager23TCmSettingSelectionModeE @ 125 NONAME ; #<thunk>#
+	_ZN27CConnectionStageNotifierWCB17GetProgressBufferEv @ 126 NONAME
+
--- 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");
--- 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
--- 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();
         }
 	}
Binary file browserutilities/webutils/conf/webutils.confml has changed
--- 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:
 
     /**
--- 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
--- 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;
--- 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)
--- 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;
--- 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
--- 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<HttpSessionManager*>(ptr);
+    tmp->unSetRetryConnectivityFlag();
+    tmp->deleteTimer();  
+    return EFalse;
+}
+
 // end of file
--- 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<HBufC8> m_ClientAcceptHeaders;
 	TBool retryConnectivityFlag;
 	TBool m_inSecConnection;
+	CPeriodic* m_resetTimer;
 
 };
 #endif // __HTTPSESSIONMANAGER_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
--- 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;
--- 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:
--- 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 );
+    }
--- 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;
--- 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;
--- 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;
--- 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();
--- 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);
+        }
     }
 
 // -----------------------------------------------------------------------------
--- 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 )
--- 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
--- 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 )
                 {
--- 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;
 }
 
--- 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;
--- 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();
     }
 
--- 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
--- 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
--- 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
--- 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
--- 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 );
--- 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 <AknUtils.h>
 #include <ImageConversion.h>
 #include <WidgetUi.rsg>
-
+#include <browserdialogsprovider.h>
 #include <schemehandler.h>
 #include <internetconnectionmanager.h>
 #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
--- 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 <centralrepository.h>
 #include <StringLoader.h>
 #include <AknNoteDialog.h>
-#include <browserdialogsprovider.h>
 #include <S32FILE.H>
 #include <aknnotewrappers.h>
 #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;
--- 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
     };
 }
 
--- 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 )
       {
--- 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();
             }
--- 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
--- 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 <apsidchecker.h>
-#include <WidgetRegistryClient.h>
-
-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
--- 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<KMaxFileName> 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*/)
 	{