webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp
changeset 37 cb62a4f66ebe
parent 36 0ed94ceaa377
child 42 d39add9822e2
--- a/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp	Thu Dec 17 09:20:16 2009 +0200
+++ b/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp	Thu Jan 07 13:31:38 2010 +0200
@@ -34,7 +34,7 @@
 #include <e32uid.h>
 #include <browserdialogsprovider.h>
 //tot:fixme
-//#include <oom.h>
+//#include "oom.h"
 
 #include "config.h"
 #include "BrCtl.h"
@@ -414,6 +414,7 @@
    , m_commandIdBase(aCommandIdBase)
    , m_capabilities(aBrCtlCapabilities)
    , m_suspendTimers(false)
+   , m_pageLoadFinished(false)
    , m_wmlEngineInterface(NULL)
    , m_brCtlDownloadObserver(aBrCtlDownloadObserver)
    , m_windoCloseTimer(NULL)
@@ -495,6 +496,9 @@
         }
     
     LoadResourceFileL();
+
+    MemoryManager::InitOOMDialog();
+    
     // Set the rect for BrowserControl (a CCoeControl).
     SetRect(aRect);
     CCoeEnv::Static()->DisableExitChecks(true);
@@ -583,6 +587,7 @@
 
     switch (aLoadEvent) {
         case TBrCtlDefs::EEventNewContentStart:
+            m_pageLoadFinished = false;
             if (m_webView->pageScalerEnabled())
                 m_webView->pageScaler()->DocumentStarted();
             if (m_webView->formFillPopup() && m_webView->formFillPopup()->IsVisible()) 
@@ -590,9 +595,10 @@
             break;
         case TBrCtlDefs::EEventContentFinished:
         case TBrCtlDefs::EEventUploadFinished:
+            m_pageLoadFinished = true;
             if (m_suspendTimers) {
                 m_suspendTimers = false;
-                HandleCommandL(TBrCtlDefs::ECommandAppBackground);
+                setDeferringTimers(true);
             }
 #ifndef BRDO_WML_DISABLED_FF
             if (m_wmlUnloadPending)
@@ -770,10 +776,20 @@
         case TBrCtlDefs::ECommandAppBackground:
             {
 #ifndef PERF_REGRESSION_LOG
-                if (m_webView->isLoading())
-                    m_suspendTimers = true;
-                else if (!isDeferringTimers())
-                    setDeferringTimers(true);
+                if(m_webView->widgetExtension())
+                    {
+                    if(m_pageLoadFinished)
+                        setDeferringTimers(true);
+                    else 
+                        m_suspendTimers = true;
+                    }
+                else
+                    {
+                    if (m_webView->isLoading())
+                        m_suspendTimers = true;
+                    else if (!isDeferringTimers())
+                        setDeferringTimers(true);
+                    }
 #endif
 
                 //Disable the zooming bar when it goes to background