diff -r e1bea15f9a39 -r 79859ed3eea9 webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp --- a/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp Thu Aug 19 10:58:56 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp Tue Aug 31 16:17:46 2010 +0300 @@ -16,7 +16,7 @@ */ // INCLUDE FILES -#include +#include #include <../bidi.h> #include #include @@ -30,11 +30,11 @@ #else #include #endif -#include +#include #include -#include +#include //tot:fixme -//#include "oom.h" +//#include #include "config.h" #include "BrCtl.h" @@ -44,8 +44,7 @@ #include "WebDataLoadConsumer.h" #include "WebFormFillPopup.h" #include "WebPageFullScreenHandler.h" -#include "PageScaler.h" -#include "ThumbnailGenerator.h" +#include "pagescaler.h" #include "HistoryController.h" #include "HistoryEntry.h" #include "HistoryInterface.h" @@ -72,28 +71,24 @@ #include "httpcachemanager.h" #include "ResourceLoaderDelegate.h" #include "EventHandler.h" -#include "timer.h" -#include "page.h" -#include "range.h" -#include "focusController.h" +#include "Timer.h" +#include "Page.h" +#include "Range.h" +#include "FocusController.h" #include "IconDatabase.h" -#include "httpDownload.h" +#include "HttpDownload.h" #include "BrCtlSoftkeysObserverImpl.h" #include "BrCtlSpecialLoadObserverImpl.h" -#include "WebFrameBridge.h" #include "BrCtlLayoutObserverImpl.h" #include "BrCtlWindowObserverImpl.h" #include "WidgetExtension.h" #include "PluginSkin.h" #include "HttpUiCallbacks.h" #include "PluginWin.h" -#include "GCController.h" -#include -#include -#include "kjs_window.h" +#include #ifndef BRDO_WML_DISABLED_FF -#include "wmlinterface.h" +#include "WmlInterface.h" #include "WmlInterfaceImpl.h" #include "WmlEngineInterface.h" #endif @@ -418,12 +413,9 @@ , m_commandIdBase(aCommandIdBase) , m_capabilities(aBrCtlCapabilities) , m_suspendTimers(false) - , m_pageLoadFinished(false) , m_wmlEngineInterface(NULL) , m_brCtlDownloadObserver(aBrCtlDownloadObserver) , m_windoCloseTimer(NULL) - , m_didFirstLayout(false) - , m_NotifyPluginFocusChangeEvent(false) { m_documentHeight = 0; m_displayHeight = 0; @@ -484,7 +476,7 @@ // Create and initialize the Layout Observer if (m_brCtlLayoutObserver == NULL) { - m_brCtlLayoutObserver = new (ELeave) CBrCtlLayoutObserver(m_webView); + m_brCtlLayoutObserver = new (ELeave) CBrCtlLayoutObserver(); m_ownsLayoutObserver = true; } // Create and initialize the Dialog Provider @@ -502,12 +494,11 @@ } LoadResourceFileL(); - - MemoryManager::InitOOMDialog(); - // Set the rect for BrowserControl (a CCoeControl). SetRect(aRect); CCoeEnv::Static()->DisableExitChecks(true); + Window().AllocPointerMoveBuffer(256, 0); + Window().DisablePointerMoveBuffer(); Window().PointerFilter(EPointerFilterMove | EPointerFilterDrag | EPointerFilterEnterExit, 0); ActivateL(); } @@ -591,25 +582,16 @@ switch (aLoadEvent) { case TBrCtlDefs::EEventNewContentStart: - m_pageLoadFinished = false; if (m_webView->pageScalerEnabled()) m_webView->pageScaler()->DocumentStarted(); if (m_webView->formFillPopup() && m_webView->formFillPopup()->IsVisible()) m_webView->formFillPopup()->handleCommandL(TBrCtlDefs::ECommandCancel); break; - case TBrCtlDefs::EEventNewContentDisplayed: - if(m_brCtlLayoutObserver && m_webView && !m_didFirstLayout) { - m_brCtlLayoutObserver->NotifyLayoutChange( (webView()->mainFrame()->bridge()->m_rtl ? EOriginTopRight : EOriginTopLeft)); - m_didFirstLayout = true; - } - break; case TBrCtlDefs::EEventContentFinished: case TBrCtlDefs::EEventUploadFinished: - m_pageLoadFinished = true; - m_didFirstLayout= false; if (m_suspendTimers) { - m_suspendTimers = false; - m_webView->pauseJsTimers(); + m_suspendTimers = false; + HandleCommandL(TBrCtlDefs::ECommandAppBackground); } #ifndef BRDO_WML_DISABLED_FF if (m_wmlUnloadPending) @@ -671,19 +653,11 @@ if (coreFrame) coreFrame->eventHandler()->deactivatedEvent(); } - m_webView->setEditable(EFalse); break; } case TBrCtlDefs::ECommandCancelFetch: { - m_webView->Stop(); - break; - } - - case TBrCtlDefs::ECommandOOMExit: - { - WebCore::gcController().startedExit(true); - KJS::setDeferringJSTimers(true); + m_webView->mainFrame()->stopLoading(); break; } @@ -718,9 +692,6 @@ { if (m_webView->pageView()) { m_webView->closePageView(); - PluginSkin* plugin = m_webView->mainFrame()->focusedPlugin(); - if(plugin) - plugin->setPluginWinClipedRect(); } else { if (m_historyHandler->historyController()->historyView()) { // this is a weird way of managing history view. needs fixing @@ -792,34 +763,20 @@ setDeferringTimers(false); m_suspendTimers = false; #endif - m_webView->resumeJsTimers(); + break; } case TBrCtlDefs::ECommandAppBackground: { #ifndef PERF_REGRESSION_LOG - if(m_webView->widgetExtension()) - { - if(m_pageLoadFinished) - m_webView->pauseJsTimers(); - else - m_suspendTimers = true; - } - else - { - if (m_webView->isLoading()) - m_suspendTimers = true; - else - m_webView->pauseJsTimers(); - - } + if (m_webView->isLoading()) + m_suspendTimers = true; + else if (!isDeferringTimers()) + setDeferringTimers(true); #endif //Disable the zooming bar when it goes to background m_webView->hideZoomSliderL(); - m_webView->scrollStatus(false); - // Instruct JS to garbage collect - WebCore::gcController().garbageCollectSoon(); break; } case TBrCtlDefs::ECommandClearAutoFormFillData: @@ -975,7 +932,6 @@ case TBrCtlDefs::ECommandEnterFullscreenBrowsing: { - m_webView->resumeJsTimers(); m_webView->EnterFullscreenBrowsingL(); break; } @@ -986,81 +942,6 @@ break; } - case TBrCtlDefs::ECommandSetRetryConnectivityFlag: - { - StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->setRetryConnectivityFlag(); - break; - } - case TBrCtlDefs::ECommandUnSetRetryConnectivityFlag: - { - StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->unSetRetryConnectivityFlag(); - break; - } - case TBrCtlDefs::ECommandRetryTransactions: - { - StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->retryTransactions(); - m_webView->mainFrame()->reCreatePlugins(); - break; - } - case TBrCtlDefs::ECommandClearQuedTransactions: - { - StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->handleError(KErrCancel); - break; - } - case TBrCtlDefs::ECommandConnToDownloadManager: - { - TInt connectionPtr = 0; - TInt sockSvrHandle = 0; - TBool newConn = ETrue; - TApBearerType bearerType; - TInt error = KErrNone; - - TRAP(error, m_brCtlSpecialLoadObserver->NetworkConnectionNeededL(&connectionPtr, &sockSvrHandle, &newConn, &bearerType)); - if( error == KErrNone && connectionPtr ) - { - RConnection* connPtr = REINTERPRET_CAST( RConnection*, connectionPtr ); - TName name; - connPtr->Name( name ); - StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->httpDownload()->connect(name); - } - break; - } - case TBrCtlDefs::ECommandLoseFocus: - case TBrCtlDefs::ECommandPauseScriptTimers: - { - m_webView->pauseJsTimers(); - break; - } - - case TBrCtlDefs::ECommandGainFocus: - case TBrCtlDefs::ECommandResumeScriptTimers: - { - m_webView->resumeJsTimers(); - break; - } - case TBrCtlDefs::ECommandCancelQueuedTransactions: - { - StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->cancelQueuedTransactions(); - break; - } - - // Messages sent by OOM monitor - case TBrCtlDefs::ECommandFreeMemory: - { - MemoryManager::FreeRam(); // invoke memory collect operation - break; - } - case TBrCtlDefs::ECommandMemoryGood: - { - MemoryManager::RestoreCollectors(); // restore collectors - break; - } - case TBrCtlDefs::ECommandNotifyPluginFocusChangeEvent: - { - m_NotifyPluginFocusChangeEvent = true; - break; - } - default: { if ( m_wmlEngineInterface && @@ -1093,13 +974,6 @@ } } - -EXPORT_C TBool CBrCtl::IsSynchRequestPending() - { - return m_webView->isSynchRequestPending(); - } - - // ----------------------------------------------------------------------------- // CBrCtl::HandleDownloadCommandL // This method calls to download manager in order to send commands to the DlMgr @@ -1275,9 +1149,7 @@ } int after = aAfter == -1 ? aAfter :0; - TBrCtlDefs::TBrCtlElementType focusedElementType = TBrCtlDefs::EElementNone; - if(m_webView) - focusedElementType = FocusedElementType(); + TBrCtlDefs::TBrCtlElementType focusedElementType = FocusedElementType(); int count = sizeof(commandsArray) / sizeof(TCommandsArray); bool found = false; @@ -1303,11 +1175,9 @@ // tot fixme //TPluginControl pluginControl(*iWebKitControl); //pluginControl.AddPluginOptionMenuItemsL(aMenuPane, TBrCtlDefs::ECommandIdPluginBase, aAfter); - if(m_webView) { - PluginSkin* plugin = m_webView->mainFrame()->focusedPlugin(); - if(plugin && plugin->pluginWin()) - plugin->pluginWin()->addPluginOptionsL(aMenuPane, TBrCtlDefs::ECommandIdPluginBase, aAfter ); - } + PluginSkin* plugin = m_webView->mainFrame()->focusedPlugin(); + if(plugin && plugin->pluginWin()) + plugin->pluginWin()->addPluginOptionsL(aMenuPane, TBrCtlDefs::ECommandIdPluginBase, aAfter ); } @@ -1632,10 +1502,10 @@ return versionInfo; } - case TBrCtlDefs::EVersionInfoBuild: + /*case TBrCtlDefs::EVersionInfoBuild: { return MobileBrowserBuild.AllocLC(); - } + }*/ case TBrCtlDefs::EBrowserVersion: { @@ -1781,9 +1651,6 @@ User::Leave(KErrArgument); // convert to 8 - // reset timers ptr, if paused from last page - m_webView->resetJsTimers(); - _LIT(KJs, "javascript:"); if (url.Length() > KJs().Length()) { if (url.Left(KJs().Length()).FindF(KJs) == 0) { @@ -1909,11 +1776,6 @@ } else if(m_webView->mainFrame()->frameLoader()->checkScheduledRedirection()) m_webView->mainFrame()->frameLoader()->startRedirectionTimerNow(); - - if( m_NotifyPluginFocusChangeEvent ) { - m_NotifyPluginFocusChangeEvent = false; - webView()->mainFrame()->notifyPluginFocusChangeEvent(visible); - } m_webView->MakeVisible(visible); } @@ -1921,7 +1783,7 @@ m_webView->checkForZoomChange(); } - if(m_webView && m_webView->pageFullScreenHandler() && m_webView->pageFullScreenHandler()->isFullScreenMode() ) { + if( m_webView->pageFullScreenHandler() && m_webView->pageFullScreenHandler()->isFullScreenMode() ) { if (visible) m_webView->pageFullScreenHandler()->showEscBtnL(); else @@ -2145,12 +2007,7 @@ EXPORT_C TBool CBrCtl::OkToExit() { - HttpDownload* httpDownload = WebCore::StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->httpDownload(); - if ( httpDownload ) - { - return httpDownload->okToExit(); - } - return ETrue; + return WebCore::StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->httpDownload()->okToExit(); } EXPORT_C CGulIcon* CBrCtl::GetBitmapData(const TDesC& aUrl, TBrCtlDefs::TBrCtlBitmapInfo aBitmapInfo) @@ -2164,14 +2021,8 @@ if ( entry ) { CFbsBitmap* bitmap = entry->thumbnail(); if(!bitmap) { - if(m_webView->pageThumbnailGenerator()) { - //get the page thumbnail - bitmap = m_webView->pageThumbnailGenerator()->PageThumbnail(); - } - else { - // get scaled page from PageScaler; - bitmap = m_webView->pageScaler()->ScaledPage(); - } + // get scaled page from PageScaler; + bitmap = m_webView->pageScaler()->ScaledPage(); } if(bitmap) { // update the history with new bitmap @@ -2224,7 +2075,6 @@ if(StaticObjectsContainer::instance()->isPluginFullscreen()) { PluginSkin* plugin=m_webView->mainFrame()->focusedPlugin(); - if(plugin) plugin->deActivate(); } newBrctl = m_brCtlWindowObserver->OpenWindowL(emptyUrl, &windowName, userGesture, 0); @@ -2256,15 +2106,7 @@ { m_windoCloseTimer->Cancel(); if (brCtlWindowObserver()) - { - TRAPD(err,brCtlWindowObserver()->HandleWindowCommandL(KNullDesC(), ECloseWindow)); - if ( err == KLeaveExit ) - { // while we exit the browser it actually leaves with KLeaveExit from the system. - // If we block this here then the exit would not happen so propogate the leave - // condition to the system for handling - User::Leave(KLeaveExit); - } - } + TRAP_IGNORE(brCtlWindowObserver()->HandleWindowCommandL(KNullDesC(), ECloseWindow)); } TBool CBrCtl::sendCommandsToClient( @@ -2592,13 +2434,6 @@ } } -CWidgetExtension* CBrCtl::getWidgetExt() -{ - if ( m_webView) { - return m_webView->widgetExtension(); - } - return NULL; -} int CBrCtl::getMainScrollbarWidth() const { @@ -2615,7 +2450,9 @@ +void CBrCtl::HandlePointerBufferReadyL() +{ + m_webView->HandlePointerBufferReadyL(); +} - -