--- a/browserutilities/connectionmanager/Inc/ConnManActiveConnector.h Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/connectionmanager/Inc/ConnManActiveConnector.h Wed Apr 14 17:06:56 2010 +0300
@@ -24,7 +24,7 @@
#include <e32base.h>
#include <nifman.h>
-
+#include <mconnection.h>
class TCommDbConnPref;
class TConnSnapPref;
@@ -66,6 +66,7 @@
*@param aStatus the status of the observer Active object
*/
void StartConnection( TConnSnapPref* aSettings, TRequestStatus& aStatus);
+ void SetOccPreferences(TSetOCCPreferences aOCCPreferences);
private://from CActive
@@ -84,6 +85,7 @@
TRequestStatus* iExternalRequestStatus;
RConnection& iConnection;
TBool iWait;
+ TSetOCCPreferences occPrefs;
};
@@ -128,13 +130,13 @@
*@return the error code
*/
TInt ConnectSnap( TConnSnapPref* aSettings );
-
public:
/**
*Destructor
*/
virtual ~CActiveConnectorSyncWrapper();
+ void SetOccPreferences(TSetOCCPreferences aOCCPreferences);
private://from CActive
--- a/browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -22,7 +22,7 @@
#include <browser_platform_variant.hrh>
#include "ConnManActiveConnector.h"
#include "ConnectionManagerLogger.h"
-
+#include <mconnection.h>
#include <nifvar.h>
#include <CommDbConnPref.h>
@@ -41,6 +41,7 @@
CLOG_CREATE;
CActiveScheduler::Add( this );//inserting this into the queue
+ occPrefs = EDefault;
}
//--------------------------------------------------------------------------
@@ -155,6 +156,15 @@
#endif //__WINS__
extPref.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault);
+ if ( occPrefs == ESilient )
+ {
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Setting OCC Silent behaviour");
+ extPref.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourConnSilent);
+ }
+ else
+ {
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Setting OCC Default behaviour");
+ }
TConnPrefList prefList;
TRAP_IGNORE(prefList.AppendL(&extPref));
@@ -201,6 +211,12 @@
User::RequestComplete( iExternalRequestStatus, iStatus.Int() );
}
+void CConnManActiveConnector::SetOccPreferences(TSetOCCPreferences aOCCPreferences)
+ {
+ CLOG_WRITE_1( "CConnManActiveConnector::SetOccPreferences : %d", aOCCPreferences );
+ occPrefs = aOCCPreferences;
+ }
+
//------------------------------------------------------ CActiveConnectorSyncWrapper -------------------------
//--------------------------------------------------------------------------
@@ -307,5 +323,9 @@
CActiveScheduler::Add( this );
}
-
+void CActiveConnectorSyncWrapper::SetOccPreferences(TSetOCCPreferences aOCCPreferences)
+ {
+ if ( iActiveConnector )
+ iActiveConnector->SetOccPreferences(aOCCPreferences);
+ }
//EOF
--- a/browserutilities/connectionmanager/Src/InternetConnectionManager.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/connectionmanager/Src/InternetConnectionManager.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -2203,5 +2203,15 @@
}
iWaitDialog->RunLD();
}
+
+//-------------------------------------------------------------------
+//CInternetConnectionManager::SetOccPreferences
+//-------------------------------------------------------------------
+
+void CInternetConnectionManager::SetOccPreferences( TSetOCCPreferences aOCCPreferences)
+ {
+ if( iSyncConnector )
+ iSyncConnector->SetOccPreferences(aOCCPreferences);
+ }
// End of File
--- a/browserutilities/downloadmgr/DownloadMgrUiLib/Src/CDownloadUtils.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/downloadmgr/DownloadMgrUiLib/Src/CDownloadUtils.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -473,7 +473,7 @@
if (ret == KErrNone &&
(dataType.iConfidence == CApaDataRecognizerType::ECertain) ||
- (dataType.iConfidence == CApaDataRecognizerType::EProbable))
+ (dataType.iConfidence == CApaDataRecognizerType::EProbable) ||(dataType.iConfidence == CApaDataRecognizerType::EPossible))
{
// If the file type was found, try to match it to a known file type
TPtrC8 mimeTypePtr = dataType.iDataType.Des8();
--- a/browserutilities/feedsengine/FeedsServer/Server/inc/UpdateManager.h Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/feedsengine/FeedsServer/Server/inc/UpdateManager.h Wed Apr 14 17:06:56 2010 +0300
@@ -250,12 +250,19 @@
public:
/**
- * Check for roaming.
- *
- * @since 7.1
+ * Issue request for notification. *
+ * @since 7.2
* @return void.
*/
- void CheckForRoaming();
+ void IssueRequestL();
+ /**
+ * Check if currently in roaming
+ *
+ * @since 7.2
+ * @return boolean.
+ */
+ TBool Roaming();
+
private:
/**
@@ -274,11 +281,12 @@
private:
- CTelephony *iTelephony;
- CTelephony::TNetworkRegistrationV1 iRegStatus;
- CUpdateManager *iUpdateManager;
-
+ CTelephony *iTelephony;
+ CTelephony::TNetworkRegistrationV1 iNetworkRegistrationV1;
+ CTelephony::TNetworkRegistrationV1Pckg iNetworkRegistrationV1Pckg;
+ CUpdateManager *iUpdateManager;
+
};
-#endif //_UPDATEMANAGER_H_
\ No newline at end of file
+#endif //_UPDATEMANAGER_H_
--- a/browserutilities/feedsengine/FeedsServer/Server/src/UpdateManager.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/feedsengine/FeedsServer/Server/src/UpdateManager.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -55,6 +55,7 @@
iLazyCaller = CIdle::NewL(CActive::EPriorityIdle );
iHttpConnection = CServerHttpConnection::NewL( aAutoUpdateAP );
iRoamingInfo = CRoamingInfo::NewL(this);
+ iRoamingInfo->IssueRequestL();
iAutoUpdateAp = aAutoUpdateAP;
iLastAutoUpdate.HomeTime();
}
@@ -139,14 +140,10 @@
if (iStatus.Int() == KErrNone || iStatus.Int() == KErrAbort)
{
StartTimer();
- if(iAutoUpdateWhileRoaming)
+ if(iAutoUpdateWhileRoaming || !iRoamingInfo->Roaming())
{
UpdateL();
}
- else
- {
- iRoamingInfo->CheckForRoaming();
- }
}
}
@@ -365,7 +362,7 @@
// -----------------------------------------------------------------------------
//
CRoamingInfo::CRoamingInfo(CUpdateManager *aUpdateManager)
- :CActive(CActive::EPriorityStandard),iUpdateManager(aUpdateManager)
+ :CActive(CActive::EPriorityStandard),iUpdateManager(aUpdateManager),iNetworkRegistrationV1Pckg(iNetworkRegistrationV1)
{
}
@@ -383,22 +380,13 @@
}
// -----------------------------------------------------------------------------
-// CRoamingInfo::CheckForRoaming
+// CRoamingInfo::Roaming
//
-// Check for roaming.
+// Check for roaming. Returns true if in roaming
// -----------------------------------------------------------------------------
-void CRoamingInfo::CheckForRoaming()
+TBool CRoamingInfo::Roaming()
{
-
-#ifndef __WINSCW__
-
- CTelephony::TNetworkRegistrationV1Pckg RegStatusPkg(iRegStatus);
- iTelephony->GetNetworkRegistrationStatus(iStatus, RegStatusPkg);
- SetActive();
-
-#else
- TRAP_IGNORE( iUpdateManager->UpdateL() );
-#endif
+ return (iNetworkRegistrationV1.iRegStatus == CTelephony::ERegisteredRoaming);
}
// -----------------------------------------------------------------------------
@@ -408,14 +396,23 @@
// -----------------------------------------------------------------------------
//
void CRoamingInfo::RunL()
- {
- if (iStatus.Int() == KErrNone)
+ {
+ IssueRequestL();
+ }
+
+// -----------------------------------------------------------------------------
+// CRoamingInfo::IssueRequestL
+//
+// Issue the request for change in network registration
+// -----------------------------------------------------------------------------
+void CRoamingInfo::IssueRequestL()
+ {
+ if (iStatus.Int() == KErrNone || iStatus.Int() == KErrAbort)
{
- if(iRegStatus.iRegStatus != CTelephony::ERegisteredRoaming)
- {
- iUpdateManager->UpdateL();
- }
- }
+ iTelephony->NotifyChange( iStatus, CTelephony::ENetworkRegistrationStatusChange,
+ iNetworkRegistrationV1Pckg);
+ SetActive();
+ }
}
// -----------------------------------------------------------------------------
@@ -426,5 +423,5 @@
//
void CRoamingInfo::DoCancel()
{
- iTelephony->CancelAsync(CTelephony::EGetCurrentNetworkInfoCancel );
+ iTelephony->CancelAsync(CTelephony::ENetworkRegistrationStatusChangeCancel );
}
--- a/browserutilities/feedsengine/FeedsServer/UrlHandler/inc/ServerHttpConnection.h Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/feedsengine/FeedsServer/UrlHandler/inc/ServerHttpConnection.h Wed Apr 14 17:06:56 2010 +0300
@@ -22,7 +22,7 @@
// INCLUDES
#include "httpconnection.h"
-
+#include "browser_platform_variant.hrh"
// CONSTANTS
// MACROS
@@ -100,7 +100,9 @@
* @return Void
*/
void SetAccessPointL( TUint32 aAccessPoint );
-
+#ifdef BRDO_OCC_ENABLED_FF
+ TBool IsPhoneOfflineL();
+#endif
private:
/**
--- a/browserutilities/feedsengine/FeedsServer/UrlHandler/src/ServerHttpConnection.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/feedsengine/FeedsServer/UrlHandler/src/ServerHttpConnection.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -22,7 +22,11 @@
#include "ServerHttpConnection.h"
#include "Logger.h"
-
+#ifdef BRDO_OCC_ENABLED_FF
+#include <FeatMgr.h>
+#include <CentralRepository.h>
+#include <CoreApplicationUIsSDKCRKeys.h>
+#endif
// -----------------------------------------------------------------------------
// CServerHttpConnection::NewL
@@ -103,6 +107,11 @@
TUint32 snapId = 0; //Defaults connects to Internet snap
iConMgr->SetConnectionType(CMManager::EDestination);
iConMgr->SetRequestedSnap(snapId);
+ if ( !IsPhoneOfflineL() )
+ {
+ // For only feeds, this silent is required
+ iConMgr->SetOccPreferences(ESilient);
+ }
#else
// Set the default access point.
iConMgr->SetRequestedAP( iDefaultAccessPoint );
@@ -191,3 +200,34 @@
{
iDefaultAccessPoint = aAccessPoint;
}
+
+#ifdef BRDO_OCC_ENABLED_FF
+// ---------------------------------------------------------
+// CServerHttpConnection::IsPhoneOfflineL
+//
+// Checks if phone is in offline mode or not.
+// Return ETrue if phone is in offline mode.
+// Return EFalse if phone is not in offline mode.
+// ---------------------------------------------------------
+//
+TBool CServerHttpConnection::IsPhoneOfflineL()
+ {
+ FeatureManager::InitializeLibL();
+ TBool onLineMode = FeatureManager::FeatureSupported( KFeatureIdOfflineMode );
+ FeatureManager::UnInitializeLib();
+ if ( onLineMode )
+ {
+ CRepository* repository = CRepository::NewLC( KCRUidCoreApplicationUIs );
+ TInt connAllowed = 1;
+ repository->Get( KCoreAppUIsNetworkConnectionAllowed, connAllowed );
+ CleanupStack::PopAndDestroy(); //repository
+ if ( !connAllowed )
+ {
+ //Yes, Phone is in Offline mode
+ return ETrue;
+ }
+ }
+ //Phone is in Online mode
+ return EFalse;
+ }
+#endif
--- a/browserutilities/feedsengine/group/FeedsServer.mmp Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/feedsengine/group/FeedsServer.mmp Wed Apr 14 17:06:56 2010 +0300
@@ -129,3 +129,7 @@
LIBRARY webutils.lib
LIBRARY sysutil.lib
+#ifdef BRDO_OCC_ENABLED_FF
+LIBRARY featmgr.lib
+#endif
+
--- a/browserutilities/schemehandler/SchemeDispatcher/src/MmsHandler.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/schemehandler/SchemeDispatcher/src/MmsHandler.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -30,11 +30,13 @@
#include <eikproc.h>
#include <f32file.h>
#include <AknLaunchAppService.h>
-
+#ifdef __S60_32__
+LOCAL_C const TUid KUidMediaPlayer = { 0x10005A3E };
+#else
+#include <videoplayeruid.hrh>
+#endif
// ================= CONSTANTS =======================
-LOCAL_C const TUid KUidMediaPlayer = { 0x10005A3E };
-
// ================= MEMBER FUNCTIONS =======================
// ---------------------------------------------------------
@@ -127,9 +129,13 @@
paramList->AppendL(*iParamList);
}
-
+#ifdef __S60_32__
iLaunchAppService =
CAknLaunchAppService::NewL( KUidMediaPlayer, this, paramList );
+#else
+ iLaunchAppService =
+ CAknLaunchAppService::NewL( TUid::Uid(KVideoPlayerUID), this, paramList );
+#endif
iSync = ETrue;
iWait.Start();
CleanupStack::PopAndDestroy( paramList );
@@ -148,9 +154,11 @@
RApaLsSession appArcSession;
User::LeaveIfError( appArcSession.Connect() );
TThreadId id;
-
- appArcSession.StartDocument( iParsedUrl->Des(), KUidMediaPlayer , id );
-
+#ifdef __S60_32__
+ appArcSession.StartDocument( iParsedUrl->Des(), KUidMediaPlayer , id );
+#else
+ appArcSession.StartDocument( iParsedUrl->Des(), TUid::Uid(KVideoPlayerUID) , id );
+#endif
appArcSession.Close();
CLOG_LEAVEFN( "CMmsHandler::HandleUrlStandaloneL()" );
@@ -180,3 +188,4 @@
CLOG_LEAVEFN( "CMmsHandler::HandleServerAppExit" );
}
+
--- a/browserutilities/schemehandler/SchemeDispatcher/src/RtspHandler.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/browserutilities/schemehandler/SchemeDispatcher/src/RtspHandler.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -31,9 +31,13 @@
#include <f32file.h>
#include <AknLaunchAppService.h>
+#ifdef __S60_32__
+LOCAL_C const TUid KUidMediaPlayer = { 0x10005A3E };
+#else
+#include <videoplayeruid.hrh>
+#endif
// ================= CONSTANTS =======================
-LOCAL_C const TUid KUidMediaPlayer = { 0x10005A3E };
_LIT( KRtspFileName, "c:\\system\\temp\\RtspTemp.ram" );
// ================= MEMBER FUNCTIONS =======================
@@ -193,8 +197,11 @@
User::LeaveIfError( appArcSession.Connect() );
TThreadId id;
- appArcSession.StartDocument( iParsedUrl->Des(), KUidMediaPlayer , id );
-
+#ifdef __S60_32__
+ appArcSession.StartDocument( iParsedUrl->Des(), KUidMediaPlayer , id );
+#else
+ appArcSession.StartDocument( iParsedUrl->Des(), TUid::Uid(KVideoPlayerUID) , id );
+#endif
appArcSession.Close();
CLOG_LEAVEFN( "CRtspHandler::HandleUrlStandaloneL()" );
@@ -224,3 +231,4 @@
CLOG_LEAVEFN( "CRtspHandler::HandleServerAppExit" );
}
+
Binary file browserutilities/webutils/conf/webutils.confml has changed
--- a/web_plat/browser_platform_api/inc/Browser_platform_variant.hrh Wed Mar 31 23:16:40 2010 +0300
+++ b/web_plat/browser_platform_api/inc/Browser_platform_variant.hrh Wed Apr 14 17:06:56 2010 +0300
@@ -181,6 +181,9 @@
//To enable for IAD Update (For add-on Browser)
#define BRDO_IAD_UPDATE_ENABLED_FF
+//To enable performance improvements done in TB9.2
+#define BRDO_PERF_IMPROVEMENTS_ENABLED_FF
+
/*
* ===================
* S60 3.23
@@ -213,6 +216,9 @@
// Flag for Multi touch enable
#undef BRDO_MULTITOUCH_ENABLED_FF
+//Flag for performance improvements in TB9.2
+#undef BRDO_PERF_IMPROVEMENTS_ENABLED_FF
+
// Defines touch screen capability
#undef BRDO_TOUCH_ENABLED_FF
@@ -295,6 +301,10 @@
// Flag for Multi touch enable
#undef BRDO_MULTITOUCH_ENABLED_FF
+
+//Flag for performance improvements in TB9.2
+#undef BRDO_PERF_IMPROVEMENTS_ENABLED_FF
+
//To provide WidgetSIDChecker support
#undef APP_SID_CHECK_SUPPORT_FF
@@ -376,6 +386,10 @@
// Flag for Multi touch enable
#undef BRDO_MULTITOUCH_ENABLED_FF
+//Flag for performance improvements in TB9.2
+#undef BRDO_PERF_IMPROVEMENTS_ENABLED_FF
+
+
//To provide WidgetSIDChecker support
#undef APP_SID_CHECK_SUPPORT_FF
@@ -428,6 +442,9 @@
// Flag for Multi touch enable
#undef BRDO_MULTITOUCH_ENABLED_FF
+//Flag for performance improvements in TB9.2
+#undef BRDO_PERF_IMPROVEMENTS_ENABLED_FF
+
//To provide WidgetSIDChecker support
#undef APP_SID_CHECK_SUPPORT_FF
--- a/web_plat/connection_manager_api/inc/InternetConnectionManager.h Wed Mar 31 23:16:40 2010 +0300
+++ b/web_plat/connection_manager_api/inc/InternetConnectionManager.h Wed Apr 14 17:06:56 2010 +0300
@@ -634,6 +634,8 @@
* @return none.
*/
virtual void CancelConnection();
+
+ void SetOccPreferences(TSetOCCPreferences aOCCPreferences);
private:
--- a/web_plat/connection_manager_api/inc/MConnection.h Wed Mar 31 23:16:40 2010 +0300
+++ b/web_plat/connection_manager_api/inc/MConnection.h Wed Apr 14 17:06:56 2010 +0300
@@ -49,6 +49,11 @@
EConManStartAgain,
};
+enum TSetOCCPreferences
+ {
+ EDefault,
+ ESilient
+ };
//This class provides a standerd interface for the WML Browser towards any concrete implementation of a connection manager
class MConnection
{
@@ -204,6 +209,12 @@
* @return none.
*/
virtual void ShowConnectionChangedDlg() = 0;
+
+ /**
+ * Setting OCC Preferences
+ * @return none.
+ */
+ virtual void SetOccPreferences( TSetOCCPreferences aOCCPreferences ) = 0;
};
#endif
\ No newline at end of file
--- a/web_pub/settings_api/inc/BrowserUiSDKCRKeys.h Wed Mar 31 23:16:40 2010 +0300
+++ b/web_pub/settings_api/inc/BrowserUiSDKCRKeys.h Wed Apr 14 17:06:56 2010 +0300
@@ -409,5 +409,7 @@
// Controls whether enter key can activate a link, ot just has a default behavior.
const TUint32 KBrowserEnterKeyMode = 0x00000083;
-
-#endif // BROWSERUISDKCRKEYS_H
\ No newline at end of file
+//OCC related
+const TUint32 KBrowserOccAccessPointSelectionMode = 0x00000084;
+const TUint32 KBrowserOccNGDefaultSnapId = 0x00000085;
+#endif // BROWSERUISDKCRKEYS_H
--- a/webengine/osswebengine/WebCore/html/HTMLElement.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebCore/html/HTMLElement.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -314,7 +314,8 @@
}
#if PLATFORM(SYMBIAN)
- element->document()->page()->chrome()->setElementVisibilityChanged(true);
+ if(element->document()->page())
+ element->document()->page()->chrome()->setElementVisibilityChanged(true);
#endif
element->removeChildren();
element->appendChild(fragment, ec);
--- a/webengine/osswebengine/WebCore/page/symbian/WebCoreFrameBridge.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebCore/page/symbian/WebCoreFrameBridge.h Wed Apr 14 17:06:56 2010 +0300
@@ -118,6 +118,7 @@
bool m_shouldCreateRenderers;
Vector<WebCore::IntRect> m_focusableNodeList;
+
};
#endif // __WEBCOREFRAMEBRIDGE_H__
@@ -127,3 +128,4 @@
+
--- a/webengine/osswebengine/WebCore/platform/network/symbian/DataConnection.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/DataConnection.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -175,7 +175,11 @@
const WebCore::ResourceRequest& request,
const WebCore::ResourceResponse& response)
{
- __ASSERT_ALWAYS(EFalse, User::Panic(_L("Resource Loader"), KErrArgument));
+// This routine would implement the handling of a sisx file in
+ // <iframe src="data:x-epoc/x-sis-x;base64, ...."> type element
+ // This is not yet implemented so the ASSERT below is commented out to prevent
+ // an assert crash.
+ // __ASSERT_ALWAYS(EFalse, User::Panic(_L("Resource Loader"), KErrArgument));
}
TInt DataConnection::sendResponseCb(TAny* aPtr)
--- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpConnection.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpConnection.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -1174,15 +1174,17 @@
//When submitting the request iSecurePage was set based on the request url
//Check the redirect url and see if the scheme has changed
HttpSessionManager* httpSessionMgr = StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager();
- if(requestedSecScheme && !redirectedSecScheme) //redirection from a secure page to an unsecure one
+ if(httpSessionMgr->isInSecureConnection() && requestedSecScheme && !redirectedSecScheme) //redirection from a secure page to an unsecure one
{
error = httpSessionMgr->uiCallback()->aboutToLoadPage(control(m_frame), HttpUiCallbacks::EExitingSecurePage);
+ httpSessionMgr->setInSecureConnection(EFalse);
}
- else if(redirectedSecScheme && !requestedSecScheme) //redirection to unsecurepage when secure page was requested
+ else if(!httpSessionMgr->isInSecureConnection() && redirectedSecScheme && !requestedSecScheme) //redirection to unsecurepage when secure page was requested
{
error = httpSessionMgr->uiCallback()->aboutToLoadPage(control(m_frame), HttpUiCallbacks::EEnteringSecurePage );
+ httpSessionMgr->setInSecureConnection(ETrue);
}
- }
+ }
return error;
}
--- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -60,6 +60,7 @@
m_SelfDownloadContentHandler = NULL;
m_SelfDownloadContentTypes = KNullStr().Alloc();
retryConnectivityFlag = EFalse;
+ m_inSecConnection = EFalse;
}
HttpSessionManager::~HttpSessionManager()
--- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.h Wed Apr 14 17:06:56 2010 +0300
@@ -100,6 +100,8 @@
TBool getRetryConnectivityFlag(){ return retryConnectivityFlag; }
void unSetRetryConnectivityFlag(){ retryConnectivityFlag = EFalse; }
TUint pendingTransactionsCount(){ return m_pendingHttpRequests.size(); }
+ TBool isInSecureConnection() {return m_inSecConnection;}
+ void setInSecureConnection(TBool inSecCon) {m_inSecConnection = inSecCon;}
private:
void updateFilters(bool initializing = false);
@@ -134,6 +136,7 @@
bool m_OutstandingSelfDl;
RPointerArray<HBufC8> m_ClientAcceptHeaders;
TBool retryConnectivityFlag;
+ TBool m_inSecConnection;
};
#endif // __HTTPSESSIONMANAGER_H__
--- a/webengine/osswebengine/WebCore/platform/symbian/FontCacheSymbian.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/FontCacheSymbian.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -233,6 +233,10 @@
fPtr.Set(fPtr.Left(comma));
}
+ if(fPtr.Length() >KMaxTypefaceNameLength) {
+ fPtr.Set(fPtr.Left(KMaxTypefaceNameLength));
+ }
+
TFontSpec fontSpec(fPtr, twipSize);
fontSpec.iFontStyle.SetStrokeWeight(fontDescription.bold() ? EStrokeWeightBold : EStrokeWeightNormal);
fontSpec.iFontStyle.SetPosture(fontDescription.italic() ? EPostureItalic : EPostureUpright);
--- a/webengine/osswebengine/WebCore/platform/symbian/bitmap/AnimationDecoderWrapped.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/bitmap/AnimationDecoderWrapped.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -50,6 +50,7 @@
#include "ImageObserver.h"
#include "SyncDecodeThread.h"
#include <Oma2Agent.h>
+#include <Browser_Platform_Variant.hrh>
using namespace ContentAccess;
namespace TBidirectionalState {
@@ -629,9 +630,10 @@
//Compress non-animated images via FBServ (losslessly, idle priority)
//the 1x1 image is directly fetched before decompressing it which results in a crash in fbsserv and therefore a white background is displayed.
//If the Image is of pixel (1,1) do not compress.
+#ifndef BRDO_PERF_IMPROVEMENTS_ENABLED_FF
if( frameSize != TSize(1,1) )
iDestination->CompressInBackground();
-
+#endif
// Normal image ready
//iDestination = NULL;
iImageState = EInactive;
--- a/webengine/osswebengine/WebCore/platform/symbian/bitmap/MaskedBitmap.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/bitmap/MaskedBitmap.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -22,6 +22,7 @@
#include <fbs.h>
#include <bitstd.h>
#include <bitdev.h>
+#include <Browser_Platform_Variant.hrh>
// ======================== STATIC FACTORY FUNCTIONS ===========================
@@ -472,6 +473,45 @@
{
gc.SetBrushStyle(CGraphicsContext::ENullBrush);
TPoint off(srcPt.iX, srcPt.iY);
+
+#ifdef BRDO_PERF_IMPROVEMENTS_ENABLED_FF
+ while ((bmpRect.iBr.iX - off.iX)> 2*SizeInPixels().iWidth)
+ {
+ TInt w = SizeInPixels().iWidth;
+ TInt h = SizeInPixels().iHeight;
+ TInt new_width = 2*w;
+
+ CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
+ bitmap->Create( TSize(new_width,h), iBitmap->DisplayMode() );
+
+ CBitmapContext* bitmapContext=NULL;
+ CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL(bitmap);
+ CleanupStack::PushL(bitmapDevice);
+ User::LeaveIfError(bitmapDevice->CreateBitmapContext(bitmapContext));
+ CleanupStack::PushL(bitmapContext);
+ bitmapContext->BitBlt(TPoint(0,0),iBitmap);
+ bitmapContext->BitBlt(TPoint(w,0),iBitmap);
+ CleanupStack::PopAndDestroy(2);
+ delete iBitmap;
+ iBitmap = bitmap;
+
+ if (HasMask())
+ {
+ CFbsBitmap* mask = new (ELeave) CFbsBitmap;
+ mask->Create( TSize(new_width,h), iMask->DisplayMode() );
+ CBitmapContext* bitmapContext=NULL;
+ CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL(mask);
+ CleanupStack::PushL(bitmapDevice);
+ User::LeaveIfError(bitmapDevice->CreateBitmapContext(bitmapContext));
+ CleanupStack::PushL(bitmapContext);
+ bitmapContext->BitBlt(TPoint(0,0),iMask);
+ bitmapContext->BitBlt(TPoint(w,0),iMask);
+ CleanupStack::PopAndDestroy(2);
+ delete iMask;
+ iMask = mask;
+ }
+ }
+#endif
for (TInt x = off.iX; x<bmpRect.iBr.iX; x+=SizeInPixels().iWidth)
{
for (TInt y = off.iY; y<bmpRect.iBr.iY; y+=SizeInPixels().iHeight)
--- a/webengine/osswebengine/WebKit/s60/group/webkit/webkit.mmp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/group/webkit/webkit.mmp Wed Apr 14 17:06:56 2010 +0300
@@ -53,6 +53,8 @@
SOURCE WebScrollingDeceleratorGH.cpp
SOURCE WebScrollbarDrawer.cpp
SOURCE WebSprite.cpp
+SOURCE ThumbnailGenerator.cpp
+
SOURCEPATH ../../FormControls
SOURCE WebFormFill.cpp
--- a/webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -243,7 +243,7 @@
m_selectedElementRect = selectedRect;
m_focusPosition = selectedPoint;
m_node = selectedNode;
- selectedNode->document()->setFocusedNode(selectedNode);
+ m_webView->page()->focusController()->setFocusedNode(selectedNode, selectedNode->document()->frame());
m_webView->page()->focusController()->setFocusedFrame(selectedNode->document()->frame());
// And scroll to the selected element
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -509,10 +509,37 @@
// ----------------------------------------------------------------------------
void PluginSkin::makeVisible( TBool visible )
{
+ // if visible is true for a plugin, make sure that the plugin is actually visible in the window before proceeding
+ TBool visibility = EFalse;
+ if (visible) {
+ TRect fullRect(getPluginWinRect());
+ TRect clipRect(getClipRect());
+ TRect frameRect(m_frame->frameView()->rect());
+ TRect viewRect = control(m_frame)->webView()->Rect();
+ TBool isPageViewMode = control(m_frame)->webView()->inPageViewMode();
+ WebFrame* pf = m_frame;
+ TPoint p = frameRect.iTl;
+
+ if (m_frame->parentFrame()) {
+ pf = m_frame->parentFrame();
+ p = pf->frameView()->frameCoordsInViewCoords(frameRect.iTl);
+ }
+ TSize sz = pf->frameView()->toViewCoords(frameRect.Size());
+ TRect frameRectInViewCoord = TRect(p, sz);
+ TBool isPluginVisible = frameRectInViewCoord.Intersects(fullRect);
+ TBool isFrameVisible = m_frame->frameView()->isVisible() &&
+ frameRectInViewCoord.Intersects(viewRect);
+
+ visibility = isFrameVisible && !isPageViewMode && isPluginVisible;
+
+ }
if ( m_pluginwin )
{
+ if (visible && !visibility)
+ visible = EFalse;
+
m_visible = visible;
- if(m_active)
+ if(m_active && !visible)
deActivate();
m_pluginwin->makeVisible(visible);
}
@@ -1242,3 +1269,9 @@
pluginloader->start();
}
}
+
+void PluginSkin::PlayPauseNotify(bool pause)
+{
+ if(m_pluginwin)
+ m_pluginwin->PlayPausePluginL(pause);
+}
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.h Wed Apr 14 17:06:56 2010 +0300
@@ -416,6 +416,7 @@
void setElement(WebCore::Element* aElement) {m_element = aElement;}
void reCreatePlugin();
TInt activeStreams() { return m_streams.size(); }
+ void PlayPauseNotify(bool pause);
public: // from MMemoryCollector
TUint Collect(unsigned int aRequired);
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginWin.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginWin.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -152,7 +152,6 @@
void PluginWin::windowChangedL()
{
if (m_fullscreen) return;
- PlayPausePluginL();
if (m_pluginskin->getNPPluginFucs() && m_pluginskin->getNPPluginFucs()->setwindow ){
NPWindow window;
TRect rect( m_pluginskin->getPluginWinRect() );
@@ -700,19 +699,15 @@
}
}
}
-void PluginWin::PlayPausePluginL ()
+void PluginWin::PlayPausePluginL (bool pause)
{
- if(m_notifier)
- {
- CBrCtl* brCtl = control(m_pluginskin->frame());
- WebView* view = brCtl->webView();
- TBool scrolling = view->viewIsScrolling();
- if (scrolling) {
- m_notifier->NotifyL( MPluginNotifier::EPluginPause, (void*)1 );
- }
- else {
- m_notifier->NotifyL( MPluginNotifier::EPluginPause, (void*)0 );
- }
+ if(m_notifier) {
+ if (pause) {
+ m_notifier->NotifyL( MPluginNotifier::EPluginPause, (void*)1 );
+ }
+ else {
+ m_notifier->NotifyL( MPluginNotifier::EPluginPause, (void*)0 );
+ }
}
}
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginWin.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginWin.h Wed Apr 14 17:06:56 2010 +0300
@@ -477,7 +477,7 @@
void ToggleScreenMode(bool aFullScreen);
- void PlayPausePluginL ();
+ void PlayPausePluginL (bool pause);
void HandlePointerEventFromPluginL(const TPointerEvent& aEvent);
TBool HandleGesture(const TStmGestureEvent& aEvent);
TBool Windowed() { return m_windowedPlugin;}
--- a/webengine/osswebengine/WebKit/s60/webcoresupport/WebEditorClient.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webcoresupport/WebEditorClient.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -385,7 +385,7 @@
event->setDefaultHandled();
}
else {
- m_shouldEndEditing = !m_webView->fepTextEditor()->IsTextAreaFocused();
+ m_shouldEndEditing = !(m_webView->fepTextEditor()->IsTextAreaFocused() || m_webView->fepTextEditor()->IsInputElementFocused());
}
break;
@@ -408,7 +408,7 @@
event->setDefaultHandled();
}
else {
- m_shouldEndEditing = !m_webView->fepTextEditor()->IsTextAreaFocused();
+ m_shouldEndEditing = !(m_webView->fepTextEditor()->IsTextAreaFocused() || m_webView->fepTextEditor()->IsInputElementFocused());
}
break;
@@ -559,12 +559,9 @@
//-----------------------------------------------------------------------------
bool WebEditorClient::doTextFieldCommandFromEvent(Element*, KeyboardEvent*)
{
- /*
- * Check here from WAP css property. Returning true will cause
- * HTMLInputElement::defaultEventHandler(Event* evt) stop handling
- * keyboard event end set it as default handled.
- */
- return !m_webView->fepTextEditor()->validateTextFormat();
+
+ notImplemented();
+ return false;
}
//-----------------------------------------------------------------------------
--- a/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -45,6 +45,7 @@
#include "WebFormFillPopup.h"
#include "WebPageFullScreenHandler.h"
#include "PageScaler.h"
+#include "ThumbnailGenerator.h"
#include "HistoryController.h"
#include "HistoryEntry.h"
#include "HistoryInterface.h"
@@ -662,7 +663,7 @@
}
case TBrCtlDefs::ECommandCancelFetch:
{
- m_webView->mainFrame()->stopLoading();
+ m_webView->Stop();
break;
}
@@ -2088,8 +2089,14 @@
if ( entry ) {
CFbsBitmap* bitmap = entry->thumbnail();
if(!bitmap) {
- // get scaled page from PageScaler;
- bitmap = m_webView->pageScaler()->ScaledPage();
+ if(m_webView->pageThumbnailGenerator()) {
+ //get the page thumbnail
+ bitmap = m_webView->pageThumbnailGenerator()->PageThumbnail();
+ }
+ else {
+ // get scaled page from PageScaler;
+ bitmap = m_webView->pageScaler()->ScaledPage();
+ }
}
if(bitmap) {
// update the history with new bitmap
@@ -2519,3 +2526,4 @@
+
--- a/webengine/osswebengine/WebKit/s60/webview/BrCtlLayoutObserverImpl.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/BrCtlLayoutObserverImpl.h Wed Apr 14 17:06:56 2010 +0300
@@ -71,6 +71,7 @@
* @return void
*/
virtual void UpdateTitleL( const TDesC& /*aTitle*/ ) {}
+
};
#endif // BRCTLLAYOUTOBSERVERIMPL_H
--- a/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -163,7 +163,11 @@
TUint permittedCase ( EAknEditorAllCaseModes ) ;
TUint inputMode( EAknEditorNullInputMode );
TUint permittedInputModes( EAknEditorAllInputModes );
+#ifdef BRDO_MULTITOUCH_ENABLED_FF
+ TUint flags( EAknEditorFlagDefault | EAknEditorFlagSelectionVisible );
+#else
TUint flags( EAknEditorFlagDefault );
+#endif
TUint numericKeyMap( EAknEditorStandardNumberModeKeymap );
if (GetStateFromFormatMask(currentCase, permittedCase, inputMode, permittedInputModes, flags, numericKeyMap)) {
@@ -723,12 +727,21 @@
CAknEdwinState* state = static_cast<CAknEdwinState*>(State(KNullUid));
if ( IsTextAreaFocused() ) {
+#ifdef BRDO_MULTITOUCH_ENABLED_FF
// If in a TextArea, allow "enter" key presses to be newline/paragraph
state->SetFlags( flags | EAknEditorFlagUseSCTNumericCharmap
- | EAknEditorFlagAllowEntersWithScrollDown );
+ | EAknEditorFlagAllowEntersWithScrollDown | EAknEditorFlagSelectionVisible );
+#else
+ state->SetFlags( flags | EAknEditorFlagUseSCTNumericCharmap
+ | EAknEditorFlagAllowEntersWithScrollDown );
+#endif
}
else {
- state->SetFlags(flags | EAknEditorFlagUseSCTNumericCharmap);
+#ifdef BRDO_MULTITOUCH_ENABLED_FF
+ state->SetFlags(flags | EAknEditorFlagUseSCTNumericCharmap | EAknEditorFlagSelectionVisible);
+#else
+ state->SetFlags(flags | EAknEditorFlagUseSCTNumericCharmap );
+#endif
}
state->ReportAknEdStateEventL(MAknEdStateObserver::EAknEdwinStateFlagsUpdate);
@@ -834,6 +847,7 @@
}
}
setSCTAvailability(true);
+ CAknEdwinState* state = static_cast<CAknEdwinState*>(State(KNullUid));
switch( fm ) {
case ELeUpSymPuc: //A any upper case letter or symbolic
flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
@@ -853,14 +867,14 @@
flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
currentCase = EAknEditorUpperCase;
permittedCase= EAknEditorUpperCase;
- inputMode = EAknEditorTextInputMode;
+ inputMode = state->CurrentInputMode();
permittedInputModes= EAknEditorTextInputMode;
break;
case ELeLoNumSymPuc: //x any lower case, number or symbolic
flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
currentCase = EAknEditorLowerCase;
permittedCase= EAknEditorLowerCase;
- inputMode = EAknEditorTextInputMode;
+ inputMode = state->CurrentInputMode();
permittedInputModes= EAknEditorTextInputMode | EAknEditorNumericInputMode;
break;
case EAnyLow: //m any lower character can be changed to upper
@@ -1479,3 +1493,9 @@
return m_longKeyPress ;
}
+TBool CWebFepTextEditor::IsInputElementFocused() const
+ {
+ Frame* frame = m_webView->page()->focusController()->focusedOrMainFrame();
+ return ( frame && frame->document()->focusedNode() &&
+ frame->document()->focusedNode()->hasTagName(HTMLNames::inputTag));
+ }
--- a/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.h Wed Apr 14 17:06:56 2010 +0300
@@ -132,7 +132,7 @@
void HandleMaskedDeleteText(WebCore::Frame* frame);
bool IsWapMaskedModeInput(WebCore::Frame* frame);
void EnableCcpuL();
-
+ TBool IsInputElementFocused() const;
private:
void findPrevSiblingTextLen(Node*, TInt&) const;
Node* findTextNodeForCurPos(Node* aNode, TInt& aPos) const;
--- a/webengine/osswebengine/WebKit/s60/webview/WebFrame.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFrame.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -282,7 +282,6 @@
void WebFrame::notifyPluginsOfScrolling()
{
- setpluginToScroll(true);
Frame* coreFrame = core(this);
for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame)) {
PassRefPtr<HTMLCollection> objects = frame->document()->objects();
@@ -294,7 +293,6 @@
notifyPluginOfScrolling(n->renderer());
}
- setpluginToScroll(false);
}
void WebFrame::notifyPluginOfScrolling(RenderObject* renderer)
@@ -593,4 +591,14 @@
return 0;
}
+void WebFrame::PlayPausePlugins(bool pause)
+{
+ PluginHandler* plghandler = StaticObjectsContainer::instance()->pluginHandler();
+ WTF::HashSet<PluginSkin*> pluginObjs = plghandler->pluginObjects();
+ for(WTF::HashSet<PluginSkin*>::iterator it = pluginObjs.begin() ; it != pluginObjs.end() ; ++it ) {
+ static_cast<PluginSkin*> (*it)->PlayPauseNotify(pause);
+ }
+}
+
+
// END OF FILE
--- a/webengine/osswebengine/WebKit/s60/webview/WebFrame.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFrame.h Wed Apr 14 17:06:56 2010 +0300
@@ -97,6 +97,7 @@
void notifyPluginOfScrolling(WebCore::RenderObject* renderer);
PluginSkin* focusedPlugin();
WebFrame* frameAtPoint(const TPoint& pt_);
+ void PlayPausePlugins(bool pause);
// utility functions
int imageCount(bool visibleOnly_);
@@ -108,8 +109,6 @@
bool executeScript(const WebCore::String& script);
WebCore::Node* getClosestAnchorElement(const TPoint& pt, TPoint& newPos);
- void setpluginToScroll(bool pluginScroll){m_pluginToScroll=pluginScroll;}
- bool pluginToScroll(){return m_pluginToScroll;}
private:
WebFrame(const WebFrame&); // not implemented
--- a/webengine/osswebengine/WebKit/s60/webview/WebFrameView.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFrameView.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -72,6 +72,10 @@
void WebFrameView::draw(WebCoreGraphicsContext& gc, const TRect& r)
{
+ if (m_topView->isPinchZoom()) {
+ return;
+ }
+
TRect vr(visibleRect());
TRect rect(r);
if (isScaled() || m_frame->isFrameSet())
@@ -121,33 +125,31 @@
frameClip.Move(-cpos);
gc.setClippingRect( frameClip );
}
-
- if (!m_topView->pinchZoomHandler()->isPinchActive()) {
-
- // draw frame border
- CFbsBitGc& realgc = gc.gc();
- if (m_hasBorder && !m_frame->isFrameSet()) {
- // already moved the origin
- TRect borderRect(TPoint(-1,-1),toViewCoords(m_frameRect).Size());
- borderRect.iBr += TPoint(2,2);
- realgc.SetPenColor(TRgb(0x55,0x55,0x55));
- realgc.SetPenStyle(CGraphicsContext::ESolidPen);
- realgc.SetBrushStyle(CGraphicsContext::ENullBrush);
- realgc.SetPenSize(TSize(1,1));
- realgc.DrawRect(borderRect);
- // double border in bottom/right
- borderRect.iBr += TPoint(1,1);
- realgc.DrawRect(borderRect);
- }
+
+ // draw frame border
+ CFbsBitGc& realgc = gc.gc();
+ if (m_hasBorder && !m_frame->isFrameSet()) {
+ // already moved the origin
+ TRect borderRect(TPoint(-1,-1),toViewCoords(m_frameRect).Size());
+ borderRect.iBr += TPoint(2,2);
+ realgc.SetPenColor(TRgb(0x55,0x55,0x55));
+ realgc.SetPenStyle(CGraphicsContext::ESolidPen);
+ realgc.SetBrushStyle(CGraphicsContext::ENullBrush);
+ realgc.SetPenSize(TSize(1,1));
+ realgc.DrawRect(borderRect);
+ // double border in bottom/right
+ borderRect.iBr += TPoint(1,1);
+ realgc.DrawRect(borderRect);
+ }
- // draw scrollbars
- rect.Move( -m_contentPos );
- WebCore::GraphicsContext ctx(&gc);
- if (m_vScrollbar->isEnabled())
- m_vScrollbar->paint(&ctx, rect);
- if (m_hScrollbar->isEnabled())
- m_hScrollbar->paint(&ctx, rect);
- }
+ // draw scrollbars
+ rect.Move( -m_contentPos );
+ WebCore::GraphicsContext ctx(&gc);
+ if (m_vScrollbar->isEnabled())
+ m_vScrollbar->paint(&ctx, rect);
+ if (m_hScrollbar->isEnabled())
+ m_hScrollbar->paint(&ctx, rect);
+
gc.cancelClipping();
gc.restore(saved);
}
--- a/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -33,20 +33,9 @@
#include "WebFormFillPopup.h"
#include "WebPageScrollHandler.h"
#include "WebFepTextEditor.h"
-#include "WebCoreFrameBridge.h"
-#include "StaticObjectsContainer.h"
#include "PluginSkin.h"
#include "WebUtil.h"
-#include "Element.h"
-#include "Document.h"
-#include "Frame.h"
-#include "FrameView.h"
-#include "EventHandler.h"
-#include "EventNames.h"
-#include "HitTestResult.h"
-#include "MouseEvent.h"
#include "WebPageFullScreenHandler.h"
-#include "PluginSkin.h"
#include "PluginWin.h"
#include "WebFrameBridge.h"
#include "Page.h"
@@ -61,13 +50,7 @@
#include "WebScrollingDeceleratorGH.h"
#include "WebKitLogger.h"
-using namespace WebCore;
-using namespace EventNames;
-static const int KMinScrollAndTapInterval = 200000; // 200 ms
-static const int KDoubleTapMinActivationInterval = 100000; // 100 ms
-static const int KDoubleTapMaxActivationInterval = 500000; // 500 ms
-static const int KDoubleTapIdleInterval = 700000; // 700 ms, to prevent triple-tap effects
#define IS_NAVIGATION_NONE (m_webview->brCtl()->settings()->getNavigationType() == SettingsContainer::NavigationTypeNone)
#define IS_TABBED_NAVIGATION (m_webview->brCtl()->settings()->getNavigationType() == SettingsContainer::NavigationTypeTabbed)
@@ -90,7 +73,6 @@
: m_webview(view),
m_isHighlighted(false),
m_highlightedNode(NULL),
- m_buttonDownTimer( this, &WebPointerEventHandler::buttonDownTimerCB ),
m_ignoreTap(false),
m_gestureInterface(NULL)
{
@@ -102,7 +84,6 @@
WebPointerEventHandler::~WebPointerEventHandler()
{
delete m_gestureInterface;
- delete m_waiter;
}
//-----------------------------------------------------------------------------
@@ -115,7 +96,6 @@
#else
m_gestureInterface = NULL;
#endif
- m_waiter = new(ELeave) CActiveSchedulerWait();
}
@@ -184,11 +164,14 @@
{
m_ignoreTap = false;
handleTouchUp(aGesture);
+ m_webview->setScrolling(false);
break;
}
case stmGesture::EGestureUidPan:
{
+ if(!m_webview->isScrolling())
+ m_webview->setScrolling(true);
handleMove(aGesture);
break;
}
@@ -226,7 +209,6 @@
// ======================================================================
void WebPointerEventHandler::handleTapL(const TStmGestureEvent& aGesture)
{
- m_buttonDownTimer.stop();
m_lastTapEvent = m_currentEvent;
if(!m_webview->inPageViewMode()){
doTapL();
@@ -260,9 +242,6 @@
m_buttonDownEvent = m_currentEvent;
m_highlightPos = aGesture.CurrentPos();
- if ( !m_buttonDownTimer.isActive() && !m_webview->inPageViewMode()){
- m_buttonDownTimer.startOneShot(0.1f);
- }
if (!IS_NAVIGATION_NONE) {
m_webview->pageScrollHandler()->handleTouchDownGH(aGesture);
@@ -279,20 +258,8 @@
}
}
}
-
- /*
- * After introducing "link selection" pointer down action is done in
- * buttondown timer callback. When "down" gesture event is arrived we start
- * timer end exit, so gesture helper is ready to deliver next gesture event.
- * Meanwhile the processing of the first gesture event hasn't been finished yet.
- * The gesture helper doesn't "know" about our plans to handle the event inside
- * timer callback and only way for us to "tell" about this is to stop RunL()
- * of CGestureEventSender (HandleGestureL() is inside it) and finish buttondown
- * timer callback first.
- */
- if ( m_buttonDownTimer.isActive()){
- m_waiter->Start();
- }
+
+ doTouchDownL();
}
// ======================================================================
@@ -318,7 +285,7 @@
TPoint curPos = aGesture.CurrentPos();
PluginHandler* pluginHandler = WebCore::StaticObjectsContainer::instance()->pluginHandler();
pluginHandler->setPluginToActivate(NULL);
- m_buttonDownTimer.stop();
+
if (IS_NAVIGATION_NONE) {
Frame* frm = m_webview->page()->focusController()->focusedOrMainFrame();
m_webview->sendMouseEventToEngine(TPointerEvent::EMove, curPos, frm);
@@ -380,24 +347,6 @@
}
//-----------------------------------------------------------------------------
-// WebPointerEventHandler::checkForEventListener
-//-----------------------------------------------------------------------------
-bool WebPointerEventHandler::checkForEventListener(WebCore::Node* node)
-{
- EventTargetNode* etnfound = NULL;
- for (Node* np = node; np; np = np->parentNode()) {
- //check for a mouseover event listener
- if (np->isEventTargetNode()) {
- if (m_webview->page()->chrome()->client()->elementVisibilityChanged()) {
- return true;
- }
- }
- }
- return false;
-}
-
-
-//-----------------------------------------------------------------------------
// WebPointerEventHandler::highlitableElement
//-----------------------------------------------------------------------------
TBrCtlDefs::TBrCtlElementType WebPointerEventHandler::highlitableElement()
@@ -584,10 +533,8 @@
//-----------------------------------------------------------------------------
// WebPointerEventHandler::buttonDownTimerCallback
//-----------------------------------------------------------------------------
-void WebPointerEventHandler::buttonDownTimerCB(Timer<WebPointerEventHandler>* t)
+void WebPointerEventHandler::doTouchDownL()
{
- m_buttonDownTimer.stop();
-
Frame* coreFrame = core(m_webview->mainFrame());
TPointerEvent event;
@@ -607,9 +554,8 @@
* set it through FocuseController::setFocusedNode()
*/
if (IS_TABBED_NAVIGATION &&
- elType == TBrCtlDefs::EElementInputBox ||
- elType == TBrCtlDefs::EElementTextAreaBox) {
- coreFrame->document()->setFocusedNode(NULL);
+ (elType == TBrCtlDefs::EElementInputBox || elType == TBrCtlDefs::EElementTextAreaBox)) {
+ coreFrame->document()->setFocusedNode(NULL);
}
if (!IS_NAVIGATION_NONE) {
@@ -619,9 +565,6 @@
m_webview->sendMouseEventToEngine(TPointerEvent::EButton1Down, m_highlightPos, coreFrame);
}
- if (m_waiter->IsStarted()) {
- m_waiter->AsyncStop();
- }
}
--- a/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.h Wed Apr 14 17:06:56 2010 +0300
@@ -47,13 +47,12 @@
void HandleGestureEventL(const TStmGestureEvent& aGesture);
private:
- bool checkForEventListener(WebCore::Node* node);
bool canDehighlight(const TPoint &aPoint);
void dehighlight();
bool isHighlitableElement(TBrCtlDefs::TBrCtlElementType& elType);
TBrCtlDefs::TBrCtlElementType highlitableElement();
- void buttonDownTimerCB(WebCore::Timer<WebPointerEventHandler>* t);
+ void doTouchDownL();
void handleTouchDownL(const TStmGestureEvent& aGesture);
void handleTouchUp(const TStmGestureEvent& aGesture);
void handleTapL(const TStmGestureEvent& aGesture);
@@ -76,11 +75,7 @@
TPoint m_highlightPos;
WebCore::Node* m_highlightedNode;
TPointerEvent m_currentEvent;
- WebCore::Timer<WebPointerEventHandler> m_buttonDownTimer;
-
- TPointerEvent m_lastPointerEvent;
bool m_ignoreTap;
- CActiveSchedulerWait* m_waiter;
WebGestureInterface* m_gestureInterface;
};
--- a/webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -108,6 +108,7 @@
{
m_decelelatorSwitch = false;
if (m_decelTimer->IsActive()) {
+ m_webView.setScrolling(false);
m_decelTimer->Cancel();
}
}
@@ -135,11 +136,13 @@
m_numscrollsteps = 0;
if (m_decelTimer->IsActive()) {
+ m_webView.setScrolling(false);
m_decelTimer->Cancel();
}
WebFrameView* scrollingView = m_webView.pageScrollHandler()->currentScrollingFrameView();
if (scrollingView) {
+ m_webView.setScrolling(true);
m_startPos = scrollingView->contentPos();
m_lastPos = m_startPos;
m_decelTimer->Start(0, KScrollIntervalTimeout,
@@ -190,6 +193,7 @@
if (m_scrollbarDrawer) {
m_scrollbarDrawer->fadeScrollbar();
}
+ m_webView.setScrolling(false);
m_decelTimer->Cancel();
handler->clearScrollingElement();
m_webView.setViewIsScrolling(false);
--- a/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -99,6 +99,7 @@
#include "WebScrollbarDrawer.h"
#include "EventNames.h"
#include "Editor.h"
+#include "ThumbnailGenerator.h"
using namespace WebCore;
using namespace EventNames;
@@ -205,6 +206,8 @@
, m_pinchZoomHandler(NULL)
, m_isPinchZoom(false)
, m_drawsMissed(0)
+, m_scroll(false)
+, m_thumbnailGenerator(NULL)
{
}
@@ -257,6 +260,7 @@
delete m_pageFullScreenHandler;
delete m_bridge;
delete m_frameView;
+ delete m_thumbnailGenerator;
}
// -----------------------------------------------------------------------------
@@ -338,8 +342,15 @@
m_pageScalerEnabled = false;
}
else {
- initializePageScalerL();
- m_pageScalerEnabled = true;
+ if(m_brctl->capabilities() & TBrCtlDefs::ECapabilityGraphicalPage)
+ {
+ initializePageScalerL();
+ m_pageScalerEnabled = true;
+ }
+ else if(m_brctl->capabilities() & TBrCtlDefs::ECapabilityGraphicalHistory)
+ {
+ m_thumbnailGenerator = CThumbnailGenerator::NewL(*this);
+ }
}
if (m_brctl->capabilities() & TBrCtlDefs::ECapabilityAutoFormFill) {
m_webFormFill = new WebFormFill(this);
@@ -813,6 +824,9 @@
m_pageScaler->DocumentCompleted();
TRAP_IGNORE(m_pageScaler->DocumentChangedL());
}
+ else if(m_thumbnailGenerator) {
+ TRAP_IGNORE(m_thumbnailGenerator->CreatePageThumbnailL());
+ }
Node* focusedNode = NULL;
Frame* focusedFrame = page()->focusController()->focusedFrame();
@@ -1730,8 +1744,16 @@
if ( !aScroll && aFullScreen )
{
- // update the history with new bitmap
- CFbsBitmap* scaledPage = m_pageScaler->ScaledPage();
+ // update the history with new bitmap
+ CFbsBitmap* scaledPage = NULL;
+ if(m_thumbnailGenerator)
+ {
+ scaledPage = m_thumbnailGenerator->PageThumbnail();
+ }
+ else if(m_pageScaler)
+ {
+ scaledPage = m_pageScaler->ScaledPage();
+ }
if (scaledPage) {
// Get the browser control rect
TRAP_IGNORE( m_brctl->historyHandler()->historyController()->updateHistoryEntryThumbnailL(scaledPage));
@@ -2777,6 +2799,11 @@
void WebView::Stop()
{
+ if (m_thumbnailGenerator)
+ {
+ //Create a thumbnail for page history
+ TRAP_IGNORE(m_thumbnailGenerator->CreatePageThumbnailL());
+ }
mainFrame()->stopLoading();
}
void WebView::synchRequestPending(bool flag)
@@ -2996,7 +3023,6 @@
m_zoomLevelChangedByUser = true;
m_dirtyZoomMode = true;
m_isPluginsVisible = false;
- mainFrame()->makeVisiblePlugins(false);
m_isPinchZoom = true;
if (zoomLevel > m_startZoomLevel) {
@@ -3112,4 +3138,11 @@
}
}
+
+void WebView::setScrolling(bool scroll)
+{
+ m_scroll = scroll;
+ mainFrame()->PlayPausePlugins(m_scroll);
+}
+
// END OF FILE
--- a/webengine/osswebengine/WebKit/s60/webview/WebView.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebView.h Wed Apr 14 17:06:56 2010 +0300
@@ -68,6 +68,7 @@
class WebFrameView;
class WebFrameBridge;
class WebPagePinchZoomHandler;
+class CThumbnailGenerator;
const TUint KMouseEventFired = 0x00000001;
@@ -160,6 +161,7 @@
void scrollBuffer(TPoint aTo, TPoint aFrom, TBool aMayUseCopyScroll);
TRect offscreenRect() const {return m_offscreenrect;}
CPageScaler* pageScaler() const{ return m_pageScaler; }
+ CThumbnailGenerator* pageThumbnailGenerator()const { return m_thumbnailGenerator;}
//void updateScrollBarsL(CEikScrollBar::TOrientation aOrientation, const TInt aThumbPos, const int aScrollSpan);
int scalingFactor() const;
void openUrl(const TDesC& url);
@@ -369,6 +371,12 @@
* Recreate Plugins in case of Retry Connection
*/
void reCreatePlugins();
+
+ TBool isPinchZoom() {return m_isPinchZoom; }
+
+ void setScrolling(bool scroll);
+
+ bool isScrolling() { return m_scroll; }
public: // from MPageScalerCallback
/**
@@ -589,6 +597,7 @@
WebPageFullScreenHandler* m_pageFullScreenHandler; // owned
bool m_viewIsScrolling;
bool m_viewIsFastScrolling;
+ bool m_scroll;
// synchronous requests
bool m_synchRequestPending;
@@ -606,6 +615,7 @@
TBool m_isPinchZoom;
TRealPoint m_pinchDocDelta;
int m_drawsMissed;
+ CThumbnailGenerator* m_thumbnailGenerator;
};
#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/webkit/s60/webview/ThumbnailGenerator.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -0,0 +1,149 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Page thumbnail generator class definition
+*
+*/
+
+
+// INCLUDE FILES
+#include "ThumbnailGenerator.h"
+
+#include <fbs.h>
+#include <bitstd.h>
+#include <w32std.h>
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// ============================= CLASSES METHODS===============================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+CThumbnailGenerator* CThumbnailGenerator::NewL(MPageScalerCallback& aCallback)
+ {
+ CThumbnailGenerator* self = new( ELeave ) CThumbnailGenerator(aCallback);
+
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+
+ return self;
+
+ }
+
+CThumbnailGenerator::CThumbnailGenerator(MPageScalerCallback& aCallback)
+ : iCallback(&aCallback),
+ iThumbnailBitmap(NULL),
+ iThumbnailBitmapDevice(NULL),
+ iThumbnailBitmapGc(NULL)
+ {
+ }
+
+void CThumbnailGenerator::ConstructL()
+ {
+ }
+
+CThumbnailGenerator::~CThumbnailGenerator()
+ {
+ delete iThumbnailBitmap;
+ delete iThumbnailBitmapDevice;
+ delete iThumbnailBitmapGc;
+ }
+
+TBool CThumbnailGenerator::CreateBitMapL(TSize aSize, CFbsBitmap*& aBm, CFbsBitmapDevice*& aDev, CFbsBitGc*& aGc)
+ {
+ if ( aSize.iWidth==0 || aSize.iHeight==0 )
+ {
+ // delete bitmap if there was one
+ delete aGc;
+ delete aDev;
+ delete aBm;
+ aGc = 0;
+ aDev = 0;
+ aBm = 0;
+ return EFalse;
+ }
+ else
+ {
+ if ( aBm && aSize != aBm->SizeInPixels() )
+ {
+ // resize if different size
+ User::LeaveIfError(aDev->Resize(aSize));
+ aGc->Resized();
+ }
+ else if ( !aBm )
+ {
+ // create new
+ CFbsBitmap* bm = new (ELeave) CFbsBitmap;
+ CleanupStack::PushL(bm);
+ User::LeaveIfError(bm->Create(aSize,EColor64K));
+ CFbsBitmapDevice* dev = CFbsBitmapDevice::NewL(bm);
+ CleanupStack::PushL(dev);
+ User::LeaveIfError(dev->CreateContext(aGc));
+ aDev = dev;
+ aBm = bm;
+ CleanupStack::Pop(2);
+ }
+ }
+ return ETrue;
+ }
+
+void CThumbnailGenerator::CreatePageThumbnailL()
+ {
+ //Get the thumnail size
+ //if in portrait mode, take Thumbnail(60*height, height)
+ //In lanadscape mode, take Thumbnail(60*width,width)
+
+ TInt thumbnailWidth;
+ TInt thumbnailHeight;
+ TRect clientRect = iCallback->DocumentViewport();
+ if (clientRect.Width() > clientRect.Height())
+ {
+ thumbnailWidth = clientRect.Width() * 60 / 100;
+ thumbnailHeight = clientRect.Width();
+ }
+ else
+ {
+ thumbnailWidth = clientRect.Height() * 60 / 100;
+ thumbnailHeight = clientRect.Height();
+ }
+
+ TRect viewRect = TRect(0, 0, thumbnailWidth, thumbnailHeight);
+ if (!CreateBitMapL(viewRect.Size(), iThumbnailBitmap, iThumbnailBitmapDevice, iThumbnailBitmapGc))
+ {
+ return;
+ }
+
+ iCallback->DrawDocumentPart(*iThumbnailBitmapGc,iThumbnailBitmap,viewRect);
+ TSize bitmapSize = iThumbnailBitmap->SizeInPixels();
+ iCallback->ScaledPageChanged(viewRect, true, false);
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/webkit/s60/webview/ThumbnailGenerator.h Wed Apr 14 17:06:56 2010 +0300
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Page thumbnail generator class
+*
+*/
+
+
+
+#ifndef THUMBNAILGENERATOR_H
+#define THUMBNAILGENERATOR_H
+
+// INCLUDES
+#include <gdi.h>
+#include "PageScaler.h"
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CFbsBitGc;
+class CFbsBitmap;
+class CFbsBitmapDevice;
+
+class CThumbnailGenerator : public CBase
+ {
+ public: // Constructors and destructor
+
+ static CThumbnailGenerator* NewL(MPageScalerCallback& aCallback);
+ void ConstructL();
+ virtual ~CThumbnailGenerator();
+
+ void CreatePageThumbnailL();
+ CFbsBitmap* PageThumbnail() {return iThumbnailBitmap;}
+
+ protected:
+ CThumbnailGenerator(MPageScalerCallback& aCallback);
+ TBool CreateBitMapL(TSize aSize, CFbsBitmap*& aBm, CFbsBitmapDevice*& aDev, CFbsBitGc*& aGc);
+
+ private:
+ MPageScalerCallback* iCallback;
+ CFbsBitmap* iThumbnailBitmap; //owned
+ CFbsBitmapDevice* iThumbnailBitmapDevice; //owned
+ CFbsBitGc* iThumbnailBitmapGc; //owned
+ };
+
+#endif //THUMBNAILGENERATOR_H
+
+// End of File
--- a/webengine/osswebengine/webkit/s60/webview/WebPagePinchZoomHandler.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/webkit/s60/webview/WebPagePinchZoomHandler.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -63,6 +63,7 @@
, m_zoomStepSize(0)
, m_pinchActive(false)
, m_pinchCenter(0,0)
+, m_isPluginsVisible(true)
{
}
@@ -186,6 +187,10 @@
// -----------------------------------------------------------------------------
void WebPagePinchZoomHandler::setZoomLevel(int zoomLevel)
{
+ if (m_isPluginsVisible) {
+ m_webView->mainFrame()->makeVisiblePlugins(false);
+ m_isPluginsVisible = false;
+ }
m_webView->setPinchBitmapZoomLevel(zoomLevel);
}
@@ -207,6 +212,7 @@
// -----------------------------------------------------------------------------
void WebPagePinchZoomHandler::updateBitmap(void)
{
+ m_isPluginsVisible = true;
m_bitmapUpdateTimer->Cancel();
m_webView->restoreZoomLevel(m_webView->scalingFactor());
//update the plugin rect after pinch zoom exit
--- a/webengine/osswebengine/webkit/s60/webview/WebPagePinchZoomHandler.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/webkit/s60/webview/WebPagePinchZoomHandler.h Wed Apr 14 17:06:56 2010 +0300
@@ -117,6 +117,7 @@
TInt m_zoomStepSize;
bool m_pinchActive;
TPoint m_pinchCenter;
+ bool m_isPluginsVisible;
};
--- a/webengine/webkitutils/HistoryProvider/HistoryController.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/webkitutils/HistoryProvider/HistoryController.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -258,6 +258,9 @@
HistoryEntry* entry = entryByIndex(m_currentIndex);
if (entry) {
TSize bmsize = bitmap->SizeInPixels();
+#ifdef BRDO_MULTITOUCH_ENABLED_FF
+ entry->storeThumbnail(bitmap, TRect(0,0,bmsize.iWidth, bmsize.iHeight));
+#else
TRect parentControlRect = m_historyCallback->parent()->Rect();
int historyViewWidth = parentControlRect.Width();
int historyViewHeight( parentControlRect.Height());
@@ -265,7 +268,8 @@
int maxDimension = (historyViewWidth > historyViewHeight)? historyViewWidth:historyViewHeight;
int thumbnailHeight = Min(bmsize.iHeight, maxDimension*KCenterThumbnailHeightPercent/100);
int thumbnailWidth = Min(bmsize.iWidth, maxDimension*KCenterThumbnailWidthPercent/100);
- entry->storeThumbnail(bitmap, TRect(0,0,thumbnailWidth, thumbnailHeight));
+ entry->storeThumbnail(bitmap, TRect(0,0,thumbnailWidth, thumbnailHeight));
+#endif
}
}
}
--- a/webengine/webkitutils/HistoryProvider/HistoryView.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/webkitutils/HistoryProvider/HistoryView.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -46,8 +46,9 @@
const int KMinAnimFactor = 0;
const int KMinimumScroll = 20;
-#define KCenterImageBorderColor KRgbRed
+#define KCenterImageBorderColor TRgb(179,179,181)
#define KSideImageBorderColor KRgbBlack
+#define KSideImageMaskColor TRgb( 170, 170, 170, 150 )
// ============================= LOCAL FUNCTIONS ===============================
@@ -265,6 +266,15 @@
{
m_bitmapContext->Clear();
m_bitmapContext->Reset();
+
+ m_bitmapContext->SetPenColor(TRgb(45,44,50));
+ m_bitmapContext->SetPenStyle(CGraphicsContext::ESolidPen);
+ m_bitmapContext->SetBrushColor(KRgbDarkGray);
+ m_bitmapContext->SetBrushStyle(CGraphicsContext::ESolidBrush);
+ m_bitmapContext->DrawRect(Rect());
+ m_bitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush);
+ m_bitmapContext->SetPenStyle(CGraphicsContext::ENullPen);
+
// updateDisplay something to the bitmap
m_centerEntry = m_historyController->entryByIndex( m_centerPageIndex );
@@ -277,8 +287,11 @@
if (leftEntry->thumbnail()) {
m_bitmapContext->BitBlt( m_leftPlaceHolderRect.iTl, leftEntry->thumbnail(), TRect(TPoint(0,0), m_leftPlaceHolderRect.Size()) );
}
- m_bitmapContext->SetPenColor( KSideImageBorderColor );
+
+ m_bitmapContext->SetBrushColor ( KSideImageMaskColor );
+ m_bitmapContext->SetBrushStyle ( CWindowGc::ESolidBrush );
m_bitmapContext->DrawRect(m_leftPlaceHolderRect);
+ m_bitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush);
}
// updateDisplay the next thumbnail
if (rightEntry) {
@@ -288,8 +301,11 @@
if (rightEntry->thumbnail()) {
m_bitmapContext->BitBlt( m_rightPlaceHolderRect.iTl, rightEntry->thumbnail(), TRect(TPoint(0,0), m_rightPlaceHolderRect.Size()) );
}
- m_bitmapContext->SetPenColor( KSideImageBorderColor );
+
+ m_bitmapContext->SetBrushColor ( KSideImageMaskColor );
+ m_bitmapContext->SetBrushStyle ( CWindowGc::ESolidBrush );
m_bitmapContext->DrawRect(m_rightPlaceHolderRect);
+ m_bitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush);
}
// updateDisplay the center thumbnail
if (m_centerEntry ) {
@@ -297,16 +313,24 @@
TRAP_IGNORE(m_centerEntry->constructThumbnailL());
}
if (m_centerEntry->thumbnail()) {
+ m_bitmapContext->SetBrushColor(KRgbWhite);
+ m_bitmapContext->SetBrushStyle(CGraphicsContext::ESolidBrush);
+ m_bitmapContext->DrawRect(m_centerPlaceHolderRect);
+ m_bitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush);
+ TSize bitSize = m_centerEntry->thumbnail()->SizeInPixels();
m_bitmapContext->BitBlt( m_centerPlaceHolderRect.iTl, m_centerEntry->thumbnail(), TRect(TPoint(0,0), m_centerPlaceHolderRect.Size()) );
}
}
+
+ //Draw border for center thumbnail
+ m_bitmapContext->SetPenStyle( CGraphicsContext:: ESolidPen );
m_bitmapContext->SetPenColor( KCenterImageBorderColor );
-
m_bitmapContext->DrawRect( m_centerPlaceHolderRect );
// Reset Brush
m_bitmapContext->SetBrushColor(TRgb(255,255,255));
m_bitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush);
+ m_bitmapContext->SetPenStyle(CGraphicsContext::ENullPen);
// updateState(-1);
}
--- a/webengine/webkitutils/HistoryProvider/HistoryView.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/webkitutils/HistoryProvider/HistoryView.h Wed Apr 14 17:06:56 2010 +0300
@@ -37,10 +37,10 @@
// CONSTANTS
-const int KCenterThumbnailWidthPercent = 50;
-const int KCenterThumbnailHeightPercent = 90;
-const int KSideThumbnailWidthPercent = 25;
-const int KSideThumbnailHeightPercent = 70;
+const int KCenterThumbnailWidthPercent = 60;
+const int KCenterThumbnailHeightPercent = 75;
+const int KSideThumbnailWidthPercent = 20;
+const int KSideThumbnailHeightPercent = 60;
// FORWARD DECLARATIONS
class HistoryController;
--- a/webengine/webkitutils/stmgesturefw/inc/gesturehelpereventsender.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/webkitutils/stmgesturefw/inc/gesturehelpereventsender.h Wed Apr 14 17:06:56 2010 +0300
@@ -22,30 +22,20 @@
#include <coemain.h>
#include "stmgestureinterface.h"
-NONSHARABLE_CLASS(CGestureEventSender) : public CActive
+NONSHARABLE_CLASS(CGestureEventSender) : public CBase
{
public:
- enum TEventSenderState
- {
- ENoEvents,
- EEventsReady,
- EBusy
- };
+
static CGestureEventSender* NewL( MStmGestureListener& aObserver );
~CGestureEventSender();
- TInt AddEvent(TStmGestureUid aUid, const MStmGesture* aGestureEvent);
-protected:
- void RunL();
- void DoCancel();
- TInt RunError(TInt aError);
+ void AddEvent(TStmGestureUid aUid, const MStmGesture* aGestureEvent);
+
private:
CGestureEventSender(MStmGestureListener& aObserver);
- void Complete();
void EmitEventL( const TStmGestureEvent& aGestureEvent );
+private:
MStmGestureListener& iObserver;
- RArray< TStmGestureEvent > iEvents;
- TEventSenderState iState;
};
#endif /* GESTUREHELPEREVENTSENDER_H_ */
--- a/webengine/webkitutils/stmgesturefw/inc/stateengine.h Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/webkitutils/stmgesturefw/inc/stateengine.h Wed Apr 14 17:06:56 2010 +0300
@@ -173,6 +173,7 @@
TTime m_lastFilteredMessageTime ;
CStateEngineConfiguration* m_config ;
+ bool isStatemachineBlocked;
};
} // namespace
--- a/webengine/webkitutils/stmgesturefw/src/gesturehelpereventsender.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/webkitutils/stmgesturefw/src/gesturehelpereventsender.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -11,14 +11,12 @@
*
* Contributors:
*
-* Description: Gesture helper implementation
+* Description: Gesture event sender implementation
*
*/
#include "gesturehelpereventsender.h"
-const TInt KEventsQueueGranularity = 4;
-
CGestureEventSender* CGestureEventSender::NewL( MStmGestureListener& aObserver )
{
CGestureEventSender* self = new (ELeave) CGestureEventSender(aObserver);
@@ -26,25 +24,17 @@
return self;
}
-CGestureEventSender::CGestureEventSender( MStmGestureListener& aObserver ) :
- CActive(EPriorityUserInput - 1),
- iObserver(aObserver), iEvents(KEventsQueueGranularity)
+CGestureEventSender::CGestureEventSender( MStmGestureListener& aObserver )
+ :iObserver(aObserver)
{
- CActiveScheduler::Add(this);
}
CGestureEventSender::~CGestureEventSender()
{
- if (IsActive())
- {
- Cancel();
- }
-
- iEvents.Close();
}
-TInt CGestureEventSender::AddEvent(TStmGestureUid aUid, const MStmGesture* aGestureEvent)
- {
+void CGestureEventSender::AddEvent(TStmGestureUid aUid, const MStmGesture* aGestureEvent)
+{
TStmGestureEvent event;
if (aGestureEvent) {
event.SetCode(aGestureEvent->gestureUid());
@@ -58,75 +48,20 @@
}
else {
if (aUid != stmGesture::EGestureUidPinch) {
- return iEvents.Count();
+ return;
}
event.SetCode(aUid);
event.SetGestureState(EGestureExit);
}
- iEvents.Append(event);
-
+ EmitEventL(event);
if (event.Code() == stmGesture::EGestureUidTap) {
event.SetCode(stmGesture::EGestureUidRelease);
- iEvents.Append(event);
- }
-
- if (iState != EBusy)
- {
- iState = EEventsReady;
- }
-
- if (!IsActive())
- {
- Complete();
- }
- return iEvents.Count();
- }
-
-void CGestureEventSender::Complete()
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- SetActive();
+ EmitEventL(event);
}
-
-void CGestureEventSender::RunL()
- {
- switch (iState)
- {
- case EEventsReady:
- {
- if (iEvents.Count() > 0)
- {
- TInt count = iEvents.Count();
- for (int i = 0; i < count; i++)
- {
- TStmGestureEvent& gst = iEvents[i];
- EmitEventL(gst);
- }
- }
- iEvents.Reset();
- iState = ENoEvents;
- break;
- }
- }
- }
+}
void CGestureEventSender::EmitEventL( const TStmGestureEvent& aGesture )
- {
- iState = EBusy;
+{
iObserver.HandleGestureEventL(aGesture);
- iState = EEventsReady;
- }
-
-TInt CGestureEventSender::RunError(TInt aError)
- {
- iEvents.Reset();
- return aError;
- }
-
-void CGestureEventSender::DoCancel()
- {
- iEvents.Reset();
- iState = ENoEvents;
- }
+}
--- a/webengine/webkitutils/stmgesturefw/src/stateengine.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/webkitutils/stmgesturefw/src/stateengine.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -487,6 +487,7 @@
m_timerif = atimerif ;
m_currentState = EInit ;
m_index = aIndex ;
+ isStatemachineBlocked = false;
}
CStateEngine::~CStateEngine()
@@ -941,9 +942,11 @@
{
// We get an event into m_hwe by this moment, lets kick the state machine
m_wasFiltered = ETrue ;
+ if (isStatemachineBlocked)
+ return m_wasFiltered;
CalculateDelta() ;
- turnStateMachine() ;
+ turnStateMachine();
m_previousPointerEventPosition = m_hwe.iPosition ;
return m_wasFiltered ;
@@ -1085,6 +1088,7 @@
m_eventConsumed = false ; // run the loop until the event has been consumed
// Now run trough the motions of the state elements, and prepare to change to next state while doing so.
// If the state elements set the m_eventConsumed then all is done
+ isStatemachineBlocked = true;
while (!m_eventConsumed)
{
int i = 0 ;
@@ -1131,6 +1135,7 @@
if (m_config->m_enableLogging) DebugPrintState(nextState) ;
m_currentState = nextState ; // Change to the next state
}
+ isStatemachineBlocked = false;
}
TTimeIntervalMicroSeconds CStateEngine::getInterval()
{
--- a/webengine/widgetinstaller/Src/WidgetInstaller.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/widgetinstaller/Src/WidgetInstaller.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -64,7 +64,7 @@
_LIT( KWidgetAppDir, "\\private\\10282822\\" );
_LIT( KBackSlash, "\\" );
// todo: other keystring.dat for preference
-_LIT(KWidgetPref, "prefs.dat");
+_LIT(KWidgetPref, "prefs.dat*");
// =========================== MEMBER FUNCTIONS ===============================
@@ -776,9 +776,14 @@
//////////////////////////////////////////////////////////////////////////////////////////////////
// delete "\private\[WidgetUIUid]\bundleID\prefs.dat"
+ CFileMan* fileManager = CFileMan::NewL( iRfs );
+ CleanupStack::PushL( fileManager );
+
TFileName widgetPref( *newDir );
widgetPref.Append(KWidgetPref);
- err = iRfs.Delete( widgetPref );
+
+ err = fileManager->Delete(widgetPref);
+ CleanupStack::PopAndDestroy( fileManager ); // fileMananger
// it's ok not to have pref.dat
if( err != KErrNone && err != KErrNotFound )
{
--- a/webengine/widgetinstaller/Src/WidgetRegistrationManager.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/widgetinstaller/Src/WidgetRegistrationManager.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -125,12 +125,6 @@
RApaLsSession apparcSession;
CleanupClosePushL( apparcSession );
User::LeaveIfError( apparcSession.Connect() );
- // TODO move this where it is only done once
- apparcSession.PrepareNonNativeApplicationsUpdatesL();
- apparcSession.DeregisterNonNativeApplicationL( KUidWidgetLauncher );
- apparcSession.DeregisterNonNativeApplicationTypeL( KUidWidgetLauncher );
- apparcSession.CommitNonNativeApplicationsUpdatesL();
- // TODO end
// reasonably like an acceptable file name
TBuf<KWidgetRegistryVal> appName;
--- a/webengine/wmlengine/src/utils/src/CBrowserSettings.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/wmlengine/src/utils/src/CBrowserSettings.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -102,7 +102,7 @@
iIsEmbedded = NW_FALSE;
iIMEINotifyEnabled = NW_UINT8_CAST( GetIntValue( KBrowserIMEINotification ));
iSendReferrerHeader = NW_UINT8_CAST( GetIntValue( KBrowserSendReferrerHeader ));
- //iHttpSecurityWarnings = GetBooleanValue( KWmlBrowserHttpSecurityWarnings );
+ iHttpSecurityWarnings = GetBooleanValue( KBrowserNGShowSecurityWarnings );
iSecUI = GetBooleanValue( KBrowserSecurityUI );
iIapId = 0;
@@ -377,11 +377,11 @@
CBrowserSettings::GetHttpSecurityWarnings(void)
{
// iSecUI = 1 means "supressing security UI"
- if( iSecUI )
+ /*if( iSecUI )
{
return NW_FALSE;
}
-
+ */
return iHttpSecurityWarnings;
}
@@ -462,3 +462,4 @@
}
+
--- a/webengine/wrtharvester/inc/sapidatapluginuids.hrh Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/wrtharvester/inc/sapidatapluginuids.hrh Wed Apr 14 17:06:56 2010 +0300
@@ -19,8 +19,6 @@
#ifndef SAPIDATAPLUGINUIDS_HRH
#define SAPIDATAPLUGINUIDS_HRH
-#include <aicontentpublisheruid.hrh>
-
/**
* Ecom dll uid for AI Data plug-in.
*/
--- a/widgets/widgetapp/src/WidgetUiWindowContainer.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/widgets/widgetapp/src/WidgetUiWindowContainer.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -280,7 +280,7 @@
if (aKeyEvent.iCode == EKeyNo)
{
// Close the current active widget
- iWindowManager.CloseWindowsAsync(EFalse);
+ //iWindowManager.CloseWindowsAsync(EFalse);
return EKeyWasConsumed;
}
--- a/widgets/widgetinstaller/inc/WidgetUIOperationsWatcher.h Wed Mar 31 23:16:40 2010 +0300
+++ b/widgets/widgetinstaller/inc/WidgetUIOperationsWatcher.h Wed Apr 14 17:06:56 2010 +0300
@@ -127,7 +127,7 @@
/**
* Called when install or uninstallation is finished, to update installer log
*/
- void HandleLogsL(const TDesC& aWidgetName, const TUid &aUid,TBool aVendor, SwiUI::TLogTaskAction aAction);
+ void HandleLogsL(const TDesC& aWidgetName, const TUid &aUid,TBool aVendor,const TDesC& version,SwiUI::TLogTaskAction aAction);
public: // Functions from base classes
--- a/widgets/widgetinstaller/src/WidgetRegistrationManager.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/widgets/widgetinstaller/src/WidgetRegistrationManager.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -128,10 +128,6 @@
RApaLsSession apparcSession;
CleanupClosePushL( apparcSession );
User::LeaveIfError( apparcSession.Connect() );
- apparcSession.PrepareNonNativeApplicationsUpdatesL();
- apparcSession.DeregisterNonNativeApplicationL( KUidWidgetLauncher );
- apparcSession.DeregisterNonNativeApplicationTypeL( KUidWidgetLauncher );
- apparcSession.CommitNonNativeApplicationsUpdatesL();
// reasonably like an acceptable file name
TBuf<KWidgetRegistryVal> appName;
--- a/widgets/widgetinstaller/src/WidgetUIOperationsWatcher.cpp Wed Mar 31 23:16:40 2010 +0300
+++ b/widgets/widgetinstaller/src/WidgetUIOperationsWatcher.cpp Wed Apr 14 17:06:56 2010 +0300
@@ -801,8 +801,8 @@
iUIHandler->CloseFinalizeDialogL();
iUIHandler->DisplayCompleteL();
}
-
- HandleLogsL(*(iPropertyValues[EBundleDisplayName]), TUid::Uid( *(iPropertyValues[EUid]) ), *(iPropertyValues[ENokiaWidget]), SwiUI::ELogTaskActionInstall);
+
+ HandleLogsL(*(iPropertyValues[EBundleDisplayName]), TUid::Uid( *(iPropertyValues[EUid]) ), *(iPropertyValues[ENokiaWidget]), *(iPropertyValues[EBundleVersion]), SwiUI::ELogTaskActionInstall);
}
else // cancelled
{
@@ -1007,6 +1007,12 @@
CWidgetPropertyValue* propValue = iRegistry.GetWidgetPropertyValueL(aUid, ENokiaWidget);
TBool aVendor = propValue && *(propValue);
delete propValue;
+ propValue = NULL;
+ propValue = iRegistry.GetWidgetPropertyValueL(aUid,EBundleVersion);
+ TBuf<KWidgetRegistryVal> version;
+ if(propValue)
+ version = (const TDesC& )*propValue;
+ delete propValue;
// TODO if any of next steps leave does state become inconsistent?
@@ -1034,7 +1040,7 @@
TRAP(err, FinishUninstallL( KErrNone ));
if(err == KErrNone)
{
- HandleLogsL(bundleName, aUid, aVendor, SwiUI::ELogTaskActionUninstall);
+ HandleLogsL(bundleName, aUid, aVendor, version, SwiUI::ELogTaskActionUninstall);
}
}
else
@@ -1323,7 +1329,7 @@
// CWidgetUIOperationsWatcher::HandleLogsL
//
// ============================================================================
-void CWidgetUIOperationsWatcher::HandleLogsL(const TDesC& aWidgetName, const TUid &aUid, TBool aVender, SwiUI::TLogTaskAction aAction)
+void CWidgetUIOperationsWatcher::HandleLogsL(const TDesC& aWidgetName, const TUid &aUid, TBool aVender, const TDesC& aVersion, SwiUI::TLogTaskAction aAction)
{
CTask* task = CTask::NewL( KLogTaskImplUid, EFalse );
CleanupStack::PushL(task);
@@ -1337,7 +1343,24 @@
TTime time;
time.UniversalTime();
params.iTime = time;
-
+
+ TLex lex(aVersion);
+ TInt i[] = {0,0,0}, j = 0;
+ while((lex.Get()) != 0 )
+ {
+ TInt num = 0;
+ while ( lex.Peek() && (lex.Peek()) != '.')
+ lex.Inc();
+ TLex toNum(lex.MarkedToken());
+ toNum.Val(num);
+ i[j++] = num;
+ lex.Inc();
+ lex.Mark();
+ }
+ params.iVersion.iMajor = i[0];
+ params.iVersion.iMinor = i[1];
+ params.iVersion.iBuild = i[2];
+
TLogTaskParamPckg pckg( params );
task->SetParameterL( pckg, 0 );
iTaskManager->AddTaskL( task );