webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp
changeset 26 cb62a4f66ebe
parent 25 0ed94ceaa377
child 28 d39add9822e2
equal deleted inserted replaced
25:0ed94ceaa377 26:cb62a4f66ebe
    32 #endif
    32 #endif
    33 #include <GULICON.h>
    33 #include <GULICON.h>
    34 #include <e32uid.h>
    34 #include <e32uid.h>
    35 #include <browserdialogsprovider.h>
    35 #include <browserdialogsprovider.h>
    36 //tot:fixme
    36 //tot:fixme
    37 //#include <oom.h>
    37 //#include "oom.h"
    38 
    38 
    39 #include "config.h"
    39 #include "config.h"
    40 #include "BrCtl.h"
    40 #include "BrCtl.h"
    41 #include "WebView.h"
    41 #include "WebView.h"
    42 #include "WebFrame.h"
    42 #include "WebFrame.h"
   412    , m_brCtlSoftkeysObserver(aBrCtlSoftkeysObserver)
   412    , m_brCtlSoftkeysObserver(aBrCtlSoftkeysObserver)
   413    , m_brCtlLayoutObserver(aBrCtlLayoutObserver)
   413    , m_brCtlLayoutObserver(aBrCtlLayoutObserver)
   414    , m_commandIdBase(aCommandIdBase)
   414    , m_commandIdBase(aCommandIdBase)
   415    , m_capabilities(aBrCtlCapabilities)
   415    , m_capabilities(aBrCtlCapabilities)
   416    , m_suspendTimers(false)
   416    , m_suspendTimers(false)
       
   417    , m_pageLoadFinished(false)
   417    , m_wmlEngineInterface(NULL)
   418    , m_wmlEngineInterface(NULL)
   418    , m_brCtlDownloadObserver(aBrCtlDownloadObserver)
   419    , m_brCtlDownloadObserver(aBrCtlDownloadObserver)
   419    , m_windoCloseTimer(NULL)
   420    , m_windoCloseTimer(NULL)
   420 {
   421 {
   421     m_documentHeight = 0;
   422     m_documentHeight = 0;
   493         m_brCtlWindowObserver = new (ELeave) CBrCtlWindowObserver();
   494         m_brCtlWindowObserver = new (ELeave) CBrCtlWindowObserver();
   494         m_ownsWindowObserver = true;
   495         m_ownsWindowObserver = true;
   495         }
   496         }
   496     
   497     
   497     LoadResourceFileL();
   498     LoadResourceFileL();
       
   499 
       
   500     MemoryManager::InitOOMDialog();
       
   501     
   498     // Set the rect for BrowserControl (a CCoeControl).
   502     // Set the rect for BrowserControl (a CCoeControl).
   499     SetRect(aRect);
   503     SetRect(aRect);
   500     CCoeEnv::Static()->DisableExitChecks(true);
   504     CCoeEnv::Static()->DisableExitChecks(true);
   501     Window().AllocPointerMoveBuffer(256, 0);
   505     Window().AllocPointerMoveBuffer(256, 0);
   502     Window().DisablePointerMoveBuffer();
   506     Window().DisablePointerMoveBuffer();
   581     for (int i = 0; i < iLoadEventObserversArray.Count(); i++)
   585     for (int i = 0; i < iLoadEventObserversArray.Count(); i++)
   582         iLoadEventObserversArray[i]->HandleBrowserLoadEventL(aLoadEvent, aSize, aTransactionId);
   586         iLoadEventObserversArray[i]->HandleBrowserLoadEventL(aLoadEvent, aSize, aTransactionId);
   583 
   587 
   584     switch (aLoadEvent) {
   588     switch (aLoadEvent) {
   585         case TBrCtlDefs::EEventNewContentStart:
   589         case TBrCtlDefs::EEventNewContentStart:
       
   590             m_pageLoadFinished = false;
   586             if (m_webView->pageScalerEnabled())
   591             if (m_webView->pageScalerEnabled())
   587                 m_webView->pageScaler()->DocumentStarted();
   592                 m_webView->pageScaler()->DocumentStarted();
   588             if (m_webView->formFillPopup() && m_webView->formFillPopup()->IsVisible()) 
   593             if (m_webView->formFillPopup() && m_webView->formFillPopup()->IsVisible()) 
   589                 m_webView->formFillPopup()->handleCommandL(TBrCtlDefs::ECommandCancel);            
   594                 m_webView->formFillPopup()->handleCommandL(TBrCtlDefs::ECommandCancel);            
   590             break;
   595             break;
   591         case TBrCtlDefs::EEventContentFinished:
   596         case TBrCtlDefs::EEventContentFinished:
   592         case TBrCtlDefs::EEventUploadFinished:
   597         case TBrCtlDefs::EEventUploadFinished:
       
   598             m_pageLoadFinished = true;
   593             if (m_suspendTimers) {
   599             if (m_suspendTimers) {
   594                 m_suspendTimers = false;
   600                 m_suspendTimers = false;
   595                 HandleCommandL(TBrCtlDefs::ECommandAppBackground);
   601                 setDeferringTimers(true);
   596             }
   602             }
   597 #ifndef BRDO_WML_DISABLED_FF
   603 #ifndef BRDO_WML_DISABLED_FF
   598             if (m_wmlUnloadPending)
   604             if (m_wmlUnloadPending)
   599                 {
   605                 {
   600                 UnloadDllWmlEngine();
   606                 UnloadDllWmlEngine();
   768                 break;
   774                 break;
   769             }
   775             }
   770         case TBrCtlDefs::ECommandAppBackground:
   776         case TBrCtlDefs::ECommandAppBackground:
   771             {
   777             {
   772 #ifndef PERF_REGRESSION_LOG
   778 #ifndef PERF_REGRESSION_LOG
   773                 if (m_webView->isLoading())
   779                 if(m_webView->widgetExtension())
   774                     m_suspendTimers = true;
   780                     {
   775                 else if (!isDeferringTimers())
   781                     if(m_pageLoadFinished)
   776                     setDeferringTimers(true);
   782                         setDeferringTimers(true);
       
   783                     else 
       
   784                         m_suspendTimers = true;
       
   785                     }
       
   786                 else
       
   787                     {
       
   788                     if (m_webView->isLoading())
       
   789                         m_suspendTimers = true;
       
   790                     else if (!isDeferringTimers())
       
   791                         setDeferringTimers(true);
       
   792                     }
   777 #endif
   793 #endif
   778 
   794 
   779                 //Disable the zooming bar when it goes to background
   795                 //Disable the zooming bar when it goes to background
   780                 m_webView->hideZoomSliderL();
   796                 m_webView->hideZoomSliderL();
   781                 break;
   797                 break;