--- 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 <browser_platform_variant.hrh>
+#include <Browser_platform_variant.hrh>
#include <../bidi.h>
#include <avkon.hrh>
#include <apmrec.h>
@@ -30,11 +30,11 @@
#else
#include <Webkit.rsg>
#endif
-#include <GULICON.h>
+#include <gulicon.h>
#include <e32uid.h>
-#include <browserdialogsprovider.h>
+#include <BrowserDialogsProvider.h>
//tot:fixme
-//#include "oom.h"
+//#include <oom.h>
#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 <BrowserVersion.h>
-#include <cuseragent.h>
-#include "kjs_window.h"
+#include <CUserAgent.h>
#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();
+}
-
-