--- a/browserutilities/browserdialogsprovider/Src/BrowserDialogsProvider.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/browserutilities/browserdialogsprovider/Src/BrowserDialogsProvider.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -69,6 +69,8 @@
const TInt KBrCtlGBFormat = 10;
const TInt KBrCtlMegabyte = 1000; // although 1MB=1024 kB, treat as 1000kb for user simplicity
const TInt KBrowserFileNotFound = -26003; // Defined in ErrorDefs.h but not exported so define here
+//There is an empty note popup is displayed because of this undefined error code that has been thrown by http layer
+const TInt KHttpErrIgnore = -26173;
// DLL resource file name with path
_LIT( KBrowserDialogsProviderDirAndFile, "z:BrowserDialogsProvider.rsc" );// resource
@@ -148,6 +150,8 @@
//-----------------------------------------------------------------------------
EXPORT_C void CBrowserDialogsProvider::DialogNotifyErrorL( TInt aErrCode )
{
+ if( aErrCode == KHttpErrIgnore )
+ return;
TInt httpErr = KBrCtlHttpErrorsOffset - aErrCode;
CTextResolver* textresolver = CTextResolver::NewLC();
TPtrC msg;
--- a/browserutilities/connectionmanager/Src/ConnectionObservers.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/browserutilities/connectionmanager/Src/ConnectionObservers.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -106,6 +106,7 @@
{
CLOG_ENTERFN("CConnectionStageNotifierWCB::RunL()");
CLOG_WRITE_1( "CConnectionStageNotifierWCB Stage: %d", iProgressBuf().iStage );
+ CLOG_WRITE_1( "CConnectionStageNotifierWCB Stage Error id: %d", iProgressBuf().iError );
if( !iMultiObserver )
{
--- a/browserutilities/connectionmanager/Src/InternetConnectionManager.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/browserutilities/connectionmanager/Src/InternetConnectionManager.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -23,7 +23,7 @@
//System Includes
#include <bldvariant.hrh>
-
+#include <browser_platform_variant.hrh>
#include <ApAccessPointItem.h>
#include <VpnAPEngine.h>
#include <AknNotifyStd.h>
@@ -207,6 +207,8 @@
User::LeaveIfError( iConnection.GetDesSetting( query, val ) );
iConnName = val.AllocL();
+ CLOG_WRITE_1( "Iap id used : %d", iapId );
+ CLOG_WRITE_1( "Conn name : %S", iConnName);
}
else if( !iRequestedAPIds.iFirstPreference )
{
@@ -582,7 +584,11 @@
TApBearerType CInternetConnectionManager::BearerTypeL( TUint32 aIAPId )
{
TApBearerType apbearerType = EApBearerTypeAllBearers;
- if( iSilentMode || !iRequestedAPIds.iFirstPreference )
+#ifdef BRDO_OCC_ENABLED_FF
+ if( !iRequestedAPIds.iFirstPreference )
+#else
+ if( iSilentMode || !iRequestedAPIds.iFirstPreference )
+#endif
// Temp fix for CDMA
{
return EApBearerTypeAllBearers;
@@ -643,7 +649,12 @@
CLOG_ENTERFN( "StopConnectionL()" );
StopConnectionObserving();
- iConnection.Close();
+ if( iConnected )
+ {
+ CLOG_WRITE( "StopConnectionL() Stop the Connection" );
+ iConnection.Stop(RConnection::EStopAuthoritative);
+ }
+
// iServ.Close();
iConnected = EFalse;
iEasyWlan = EFalse;
--- a/browserutilities/downloadmgr/DownloadMgrServEng/Group/HttpDMServEng.mmp Fri Mar 12 15:48:51 2010 +0200
+++ b/browserutilities/downloadmgr/DownloadMgrServEng/Group/HttpDMServEng.mmp Mon Mar 15 12:44:50 2010 +0200
@@ -40,7 +40,7 @@
SOURCEPATH ../src
MW_LAYER_SYSTEMINCLUDE
-#if defined(__PLATFORM_VERSION_50_TUBE__) || defined( __PLATFORM_VERSION_50__)
+#if defined(__PLATFORM_VERSION_S60_50__) || defined( __PLATFORM_VERSION_5250__)
MW_LAYER_ECOM_SYSTEMINCLUDE
MW_LAYER_HTTP_SYSTEMINCLUDE
APP_LAYER_SYSTEMINCLUDE
--- a/browserutilities/downloadmgr/DownloadMgrUiLib/Group/DownloadMgrUiLib.mmp Fri Mar 12 15:48:51 2010 +0200
+++ b/browserutilities/downloadmgr/DownloadMgrUiLib/Group/DownloadMgrUiLib.mmp Mon Mar 15 12:44:50 2010 +0200
@@ -63,7 +63,7 @@
MW_LAYER_SYSTEMINCLUDE
-#if defined(__PLATFORM_VERSION_50_TUBE__) || defined( __PLATFORM_VERSION_50__)
+#if defined(__PLATFORM_VERSION_S60_50__) || defined( __PLATFORM_VERSION_5250__)
APP_LAYER_SYSTEMINCLUDE
MW_LAYER_HTTP_SYSTEMINCLUDE
#endif
--- a/browserutilities/downloadmgr/DownloadMgrUiLib/Src/CDownloadMgrUiDownloadsList.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/browserutilities/downloadmgr/DownloadMgrUiLib/Src/CDownloadMgrUiDownloadsList.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -1761,8 +1761,11 @@
isProgressively = EFalse;
}
// First close the downloads list.
- CancelDisplayingDownloadsList();
- iUiUtils->LaunchPdAppL(currDownload, isProgressively);
+ if ( state != EHttpProgMovingContentFile )
+ {
+ CancelDisplayingDownloadsList();
+ iUiUtils->LaunchPdAppL(currDownload, isProgressively);
+ }
}
else
{
--- a/codhandler/codeng/group/CodEng.mmp Fri Mar 12 15:48:51 2010 +0200
+++ b/codhandler/codeng/group/CodEng.mmp Mon Mar 15 12:44:50 2010 +0200
@@ -72,7 +72,7 @@
MW_LAYER_SYSTEMINCLUDE
OS_LAYER_ESTLIB_SYSTEMINCLUDE
-#if defined(__PLATFORM_VERSION_50_TUBE__) || defined(__PLATFORM_VERSION_50__)
+#if defined(__PLATFORM_VERSION_S60_50__) || defined(__PLATFORM_VERSION_5250__)
APP_LAYER_SYSTEMINCLUDE
#endif
--- a/web_plat/browser_platform_api/group/bld.inf Fri Mar 12 15:48:51 2010 +0200
+++ b/web_plat/browser_platform_api/group/bld.inf Mon Mar 15 12:44:50 2010 +0200
@@ -28,12 +28,12 @@
../inc/browser_platform_variant.hrh BRDO_ADDED_EXPORT_LOCATION(browser_platform_variant.hrh)
#endif
-#ifdef __PLATFORM_VERSION_50_TUBE__
+#ifdef __PLATFORM_VERSION_S60_50__
../inc/browser_platform_variant.hrh /epoc32/include/oem/browser_platform_variant.hrh
../inc/browser_platform_variant.hrh /epoc32/include/oem/platform/mw/browser_platform_variant.hrh
#endif
-#ifdef __PLATFORM_VERSION_50__
+#ifdef __PLATFORM_VERSION_5250__
../inc/browser_platform_variant.hrh /epoc32/include/oem/browser_platform_variant.hrh
#endif
--- a/web_plat/browser_platform_api/inc/Browser_platform_variant.hrh Fri Mar 12 15:48:51 2010 +0200
+++ b/web_plat/browser_platform_api/inc/Browser_platform_variant.hrh Mon Mar 15 12:44:50 2010 +0200
@@ -34,7 +34,7 @@
*/
/*
* ===================
-* S60 3.23 Gadget, etc..
+* S60 3.23 etc..
* ===================
*/
#if defined(__S60_32__)
@@ -44,22 +44,22 @@
/*
* ===================
-* S60 5.0 Tube, Alvin, Ivalo, Saga, etc.
+* S60 5.0 PF_52_50, etc.
* 5.0/5250 platforms
* ===================
*/
#elif defined(__S60_50__)
// manually edit the following lines to enable definition for
// whichever platform is in use
-// un-comment following line for 5.0/5250 platforms running on products similar on Tube and Alvin
-// #define __PLATFORM_VERSION_50_TUBE__
+// un-comment following line for 5.0/5250 platforms running on products similar on S60_50
+// #define __PLATFORM_VERSION_S60_50__
-// un-comment following line for 5.0/5250 platforms for Ivalo and Saga
-// #define __PLATFORM_VERSION_50__
+// un-comment following line for 5.0/5250
+// #define __PLATFORM_VERSION_5250__
/*
* ===================
-* S60 5.1 Corolla, etc.
+* S60 5.1 S60_51, etc.
* ===================
*/
// #elif defined(__S60_51__)
@@ -68,13 +68,13 @@
/*
* ===================
-* S60 5.2 Vasco, etc.
+* S60 5.2 TB_92, etc.
* ===================
*/
// #elif defined(__S60_52__)
// un-comment following line for 5.2/TB9.2 platforms
-#define __PLATFORM_VERSION_52__
+#define __PLATFORM_VERSION_52_TB92__
//
#endif
@@ -133,6 +133,9 @@
// Defines WRT widgets feature to publish on homescreen
#define BRDO_WRT_HS_FF
+// Defines flag for OOM Monitor-2
+#define BRDO_OOM_MONITOR2_COMPONENT_FF
+
// Gallery App is not present
#undef BRDO_APP_GALLERY_SUPPORTED_FF
@@ -205,6 +208,9 @@
// Defines WRT widgets feature to publish on homescreen
#undef BRDO_WRT_HS_FF
+// Defines flag for OOM Monitor-2
+#undef BRDO_OOM_MONITOR2_COMPONENT_FF
+
// Gallery App is present
#define BRDO_APP_GALLERY_SUPPORTED_FF
@@ -246,10 +252,10 @@
/*
* ===================
-* S60 5.0 PF5250 / Tube / Alvin
+* S60 5.0 S60_50
* ===================
*/
-#elif defined(__PLATFORM_VERSION_50_TUBE__)
+#elif defined(__PLATFORM_VERSION_S60_50__)
//OCC support
#undef BRDO_OCC_ENABLED_FF
@@ -272,6 +278,9 @@
// Defines WRT widgets feature to publish on homescreen
#undef BRDO_WRT_HS_FF
+// Defines flag for OOM Monitor-2
+#undef BRDO_OOM_MONITOR2_COMPONENT_FF
+
// Gallery App is present
#define BRDO_APP_GALLERY_SUPPORTED_FF
@@ -312,10 +321,10 @@
#undef BRDO_HTTP_STACK_93
/*
* ===================
-* S60 5.0 PF5250+ / Ivalo / Saga
+* S60 5.0 PF5250+
* ===================
*/
-#elif defined(__PLATFORM_VERSION_50__)
+#elif defined(__PLATFORM_VERSION_5250__)
//OCC support
#undef BRDO_OCC_ENABLED_FF
@@ -394,7 +403,7 @@
*/
//Flag provieded to not fix the problem for Multiple heap created for in application startup
#undef BRDO_STATIC_DATA_CLEANUP_SUPPORT_FF
-#elif defined(__PLATFORM_VERSION_52__)
+#elif defined(__PLATFORM_VERSION_52_TB92__)
// Defines whether SAPI Security Manager Prompt Enhancement is available
#undef BRDO_SEC_MGR_PROMPT_ENHANCEMENT_FF
--- a/web_plat/widget_registry_api/inc/WidgetRegistryConstants.h Fri Mar 12 15:48:51 2010 +0200
+++ b/web_plat/widget_registry_api/inc/WidgetRegistryConstants.h Mon Mar 15 12:44:50 2010 +0200
@@ -30,7 +30,12 @@
const TUid KUidWidgetUi = { 0x10282822 };
const TUid KUidWidgetLauncher = { 0x10282821 };
-#define WIDGETPROPERTYLISTVERSION 3
+#define WIDGETPROPERTYLISTVERSION 4
+
+const TInt KWidgetPropertyListVersion32 = 1;
+const TInt KWidgetPropertyListVersion71 = 3;
+const TInt KWidgetPropertyListVersion71CWRT = 4;
+
// Before changing these, consider that there will be widgets
// installed on removable memory cards according to an allocation
// scheme using these bounds.
@@ -45,6 +50,15 @@
const TInt32 KWidgetUidExternalMemoryStart = (KWidgetUidLowerBound + KWidgetUidUpperBound + 1) / 2; // half way
const TInt32 KWidgetUidExternalMemoryStop = KWidgetUidUpperBound;
+// Additions for separation of CWRT Widget UID space from WRT Widget UID space
+const TInt32 KWidgetUidWRTInternalMemoryStop = (KWidgetUidInternalMemoryStart + KWidgetUidExternalMemoryStart + 1) / 2;
+const TInt32 KWidgetUidCWRTInternalMemoryStart = KWidgetUidWRTInternalMemoryStop;
+const TInt32 KWidgetUidCWRTInternalMemoryStop = KWidgetUidExternalMemoryStart;
+const TInt32 KWidgetUidWRTExternalMemoryStop = (KWidgetUidExternalMemoryStart + KWidgetUidExternalMemoryStop + 1) / 2;
+const TInt32 KWidgetUidCWRTExternalMemoryStart = KWidgetUidWRTExternalMemoryStop;
+const TInt32 KWidgetUidCWRTExternalMemoryStop = KWidgetUidUpperBound + 1;
+
+
const TInt KWidgetRegistryClientVersionMajor = 0;
const TInt KWidgetRegistryClientVersionMinor = 1;
const TInt KWidgetRegistryClientVersionBuild = 1;
@@ -128,9 +142,12 @@
// Do not add enums prior to this, if you are adding enums here
// take into consideration the compatibility problems, i.e widgets working after firmware update.
- EMiniViewEnable, //optional; int internally 0 0r 1
- EBlanketPermGranted, //optional; int internally 0 0r 1
+ EMiniViewEnable, // optional; int internally 0 0r 1
+ EBlanketPermGranted, // optional; int internally 0 0r 1
EPreInstalled, // optional; int internally 0 or 1
+
+ EProcessUid, // int (UID of widget execution process)
+ EMimeType,
// end property list, begin special values
EWidgetPropertyIdCount, // must be at end of properties
--- a/webengine/osswebengine/MemoryManager/Inc/MemoryPool.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/MemoryManager/Inc/MemoryPool.h Mon Mar 15 12:44:50 2010 +0200
@@ -253,6 +253,10 @@
virtual void RestoreRescueBuffer() = 0;
+ virtual void InitOOMDialog();
+
+ virtual void ResetOOMDialog();
+
protected:
CMemoryPool() : iNotifier( 0 ) {}
@@ -358,7 +362,7 @@
TUint FreeMemory( TFreeMem& aFree );
void RestoreRescueBuffer();
void InitOOMDialog();
- void ResetOOMDialogDisplayed();
+ void ResetOOMDialog();
#ifdef OOM_LOGGING
void DumpHeapLogs();
#endif
--- a/webengine/osswebengine/MemoryManager/Src/MemoryManager.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/MemoryManager/Src/MemoryManager.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -109,9 +109,7 @@
{
#ifdef __NEW_ALLOCATOR__
if (s_pool)
- {
- ((CNewSymbianHeapPool *)s_pool)->InitOOMDialog();
- }
+ s_pool->InitOOMDialog();
#endif
}
@@ -122,9 +120,7 @@
{
#ifdef __NEW_ALLOCATOR__
if (s_pool)
- {
- ((CNewSymbianHeapPool *)s_pool)->ResetOOMDialogDisplayed();
- }
+ s_pool->ResetOOMDialog();
#endif
}
--- a/webengine/osswebengine/MemoryManager/Src/MemoryPool.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/MemoryManager/Src/MemoryPool.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -223,6 +223,20 @@
}
//-----------------------------------------------------------------------------
+// CMemoryPool::InitOOMDialog()
+//-----------------------------------------------------------------------------
+void CMemoryPool::InitOOMDialog()
+ {
+ }
+
+//-----------------------------------------------------------------------------
+// CMemoryPool::ResetOOMDialog()
+//-----------------------------------------------------------------------------
+void CMemoryPool::ResetOOMDialog()
+ {
+ }
+
+//-----------------------------------------------------------------------------
// CPlainAllocator::DoAlloc
//-----------------------------------------------------------------------------
TUint CFastMemoryPool::FreeMemory(TFreeMem& aFree )
@@ -719,7 +733,7 @@
}
}
-void CNewSymbianHeapPool::ResetOOMDialogDisplayed()
+void CNewSymbianHeapPool::ResetOOMDialog()
{
iOOMDisplayed = EFalse;
}
--- a/webengine/osswebengine/WebCore/html/HTMLEmbedElement.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebCore/html/HTMLEmbedElement.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -278,5 +278,10 @@
return false;
return static_cast<RenderPartObject*>(renderer())->isFocusable();
}
+
+bool HTMLEmbedElement::canStartSelection() const
+{
+return false;
+}
#endif
}
--- a/webengine/osswebengine/WebCore/html/HTMLEmbedElement.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebCore/html/HTMLEmbedElement.h Mon Mar 15 12:44:50 2010 +0200
@@ -59,7 +59,9 @@
#if USE(JAVASCRIPTCORE_BINDINGS)
virtual KJS::Bindings::Instance* getInstance() const;
#endif
+
#if PLATFORM(SYMBIAN)
+ virtual bool canStartSelection() const;
bool isFocusable() const;
#endif
String src() const;
--- a/webengine/osswebengine/WebCore/html/HTMLObjectElement.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebCore/html/HTMLObjectElement.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -535,6 +535,11 @@
return false;
return static_cast<RenderPartObject*>(renderer())->isFocusable();
}
+
+bool HTMLObjectElement::canStartSelection() const
+{
+return false;
+}
#endif
}
--- a/webengine/osswebengine/WebCore/html/HTMLObjectElement.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebCore/html/HTMLObjectElement.h Mon Mar 15 12:44:50 2010 +0200
@@ -62,7 +62,9 @@
#if USE(JAVASCRIPTCORE_BINDINGS)
virtual KJS::Bindings::Instance* getInstance() const;
#endif
-
+#if PLATFORM(SYMBIAN)
+ virtual bool canStartSelection() const;
+#endif
String archive() const;
void setArchive(const String&);
--- a/webengine/osswebengine/WebCore/html/HTMLParser.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebCore/html/HTMLParser.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -841,6 +841,7 @@
gFunctionMap.set(trTag.localName().impl(), &HTMLParser::nestedCreateErrorCheck);
gFunctionMap.set(ttTag.localName().impl(), &HTMLParser::nestedStyleCreateErrorCheck);
gFunctionMap.set(uTag.localName().impl(), &HTMLParser::nestedStyleCreateErrorCheck);
+ gFunctionMap.set(ulTag.localName().impl(), &HTMLParser::nestedStyleCreateErrorCheck);
}
bool proceed = true;
@@ -858,9 +859,10 @@
// about 1500 tags, all from a bunch of <b>s. We will only allow at most 20
// nested tags of the same type before just ignoring them all together.
unsigned i = 0;
- for (HTMLStackElem* curr = blockStack;
- i < cMaxRedundantTagDepth && curr && curr->tagName == tagName;
- curr = curr->next, i++);
+ for (HTMLStackElem* curr = blockStack; i < cMaxRedundantTagDepth && curr; curr = curr->next) {
+ if (curr->tagName == tagName)
+ i++;
+ }
return i != cMaxRedundantTagDepth;
}
--- a/webengine/osswebengine/WebCore/platform/network/ResourceHandle.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebCore/platform/network/ResourceHandle.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -71,6 +71,7 @@
ResourceHandleClient* ResourceHandle::client() const
{
+ if(d && d->m_client)
return d->m_client;
}
--- a/webengine/osswebengine/WebCore/platform/network/symbian/ResourceHandleManagerSymbian.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/ResourceHandleManagerSymbian.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -118,7 +118,7 @@
// check if we have enough memory to handle this request
if (resource->request().mainLoad()) {
- OOM_PRE_CHECK(contentLength<<4, contentLength, "CResourceHandleManager::receiveData()")
+ OOM_PRE_CHECK(contentLength<<2, contentLength, "CResourceHandleManager::receiveData()")
client->didReceiveData(resource, (const char*)data.Ptr(), data.Length(), data.Length());
OOM_POST_CHECK_FAILED(client->didFail(resource, ResourceError(String(), KErrNoMemory, String(), String()));)
}
--- a/webengine/osswebengine/WebCore/platform/symbian/FontCacheSymbian.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebCore/platform/symbian/FontCacheSymbian.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -1,4 +1,4 @@
-/*
+ /*
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
@@ -214,7 +214,12 @@
// convert to platform-supported font family
TPtrC fPtr( SystemFontFamily( fontDescription.family().family() ) );
-
+ //Locate the left most font if the fptr string contains more than one font family names comma seperated
+ TInt comma = fPtr.Locate(TChar(','));
+ if (comma != KErrNotFound) {
+ fPtr.Set(fPtr.Left(comma));
+ }
+
TFontSpec fontSpec(fPtr, twipSize);
fontSpec.iFontStyle.SetStrokeWeight(fontDescription.bold() ? EStrokeWeightBold : EStrokeWeightNormal);
fontSpec.iFontStyle.SetPosture(fontDescription.italic() ? EPostureItalic : EPostureUpright);
--- a/webengine/osswebengine/WebCore/platform/symbian/FormFillController.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebCore/platform/symbian/FormFillController.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -36,6 +36,9 @@
#include "FormFillPopup.h"
#include "PlatformFontCache.h"
#include "StaticObjectsContainer.h"
+#include "FontDescription.h"
+
+#define KMaxZoomFactorForPopup 125
namespace WebCore {
static const double kSearchStartTimeout = 0.5f;
@@ -80,8 +83,13 @@
// system font to be used by popup
float newFont = 12.0f * zoomFactor /100.0f;
- FontPlatformData* font = FontCache::getDeviceDefaultFont(newFont);
+ FontDescription fd;
+ fd.setComputedSize(newFont);
+ //If zoom factor is greater than 120 and less than or equals 200, then make it 125 by default. This
+ //will make it selectable not too big.
+ FontPlatformData* font = new FontPlatformData(cache->zoomedFont(fd, (zoomFactor > 120)? KMaxZoomFactorForPopup : zoomFactor));;
m_popup = m_callback->createFormFillPopup(font->Font());
+ delete font;
}
if (!m_popup) {
return;
--- a/webengine/osswebengine/WebKit/s60/formcontrols/WebFormFillPopup.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/formcontrols/WebFormFillPopup.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -195,7 +195,9 @@
break;
}
-
+ if (response == EKeyWasConsumed) {
+ m_parent->page()->chrome()->client()->setElementVisibilityChanged(false);
+ }
return response;
}
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.h Mon Mar 15 12:44:50 2010 +0200
@@ -431,8 +431,9 @@
RArray<NPN_GenericElement>* genericElementArray(){
return iGenericElementArray;
}
+ void setPluginWinClipedRect();
private: // private member data
- void setPluginWinClipedRect();
+
TRect frameVisibleRect() const;
void Close();
--- a/webengine/osswebengine/WebKit/s60/webcoresupport/WebEditorClient.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/webcoresupport/WebEditorClient.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -413,7 +413,14 @@
break;
case EKeyUpArrow:
- frame->editor()->execCommand("MoveUp");
+ if (select) { //If shift is pressed then highlight the selection
+ if(kevent->isKeyDown())
+ break;
+ frame->editor()->execCommand("MoveUpAndModifySelection");//from createCommandMap()
+ }
+ else {
+ frame->editor()->execCommand("MoveUp");
+ }
m_webView->fepTextEditor()->HandleUpdateCursor();
if (frame->selectionController()->start() != startPos &&
frame->selectionController()->end() != endPos) {
@@ -425,7 +432,14 @@
break;
case EKeyDownArrow:
- frame->editor()->execCommand("MoveDown");
+ if (select) {//If shift is pressed then highlight the selection
+ if(kevent->isKeyDown())
+ break;
+ frame->editor()->execCommand("MoveDownAndModifySelection");//from createCommandMap()
+ }
+ else {
+ frame->editor()->execCommand("MoveDown");
+ }
m_webView->fepTextEditor()->HandleUpdateCursor();
if (frame->selectionController()->start() != startPos &&
frame->selectionController()->end() != endPos) {
--- a/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -699,6 +699,9 @@
{
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
@@ -2024,7 +2027,12 @@
EXPORT_C TBool CBrCtl::OkToExit()
{
- return WebCore::StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->httpDownload()->okToExit();
+ HttpDownload* httpDownload = WebCore::StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->httpDownload();
+ if ( httpDownload )
+ {
+ return httpDownload->okToExit();
+ }
+ return ETrue;
}
EXPORT_C CGulIcon* CBrCtl::GetBitmapData(const TDesC& aUrl, TBrCtlDefs::TBrCtlBitmapInfo aBitmapInfo)
@@ -2467,3 +2475,4 @@
+
--- a/webengine/osswebengine/WebKit/s60/webview/WebCursor.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/webview/WebCursor.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -799,6 +799,7 @@
m_view->setFocusedElementType(elType);
}
else {
+ if(m_view)
m_view->setFocusedElementType(TBrCtlDefs::EElementNone);
}
}
--- a/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -1149,6 +1149,8 @@
void CWebFepTextEditor::CcpuCopyL()
{
PlaceDataOnClipboardL();
+ if (m_CcpuSupport)
+ m_CcpuSupport->HandleSelectionChangeL();
}
// -----------------------------------------------------------------------------
--- a/webengine/osswebengine/WebKit/s60/webview/WebFrameView.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFrameView.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -32,6 +32,7 @@
#include "SettingsContainer.h"
#include "StaticObjectsContainer.h"
#include "WebTabbedNavigation.h"
+#include "WebPagePinchZoomHandler.h"
using namespace WebCore;
@@ -120,30 +121,33 @@
frameClip.Move(-cpos);
gc.setClippingRect( frameClip );
}
- // 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);
+
+ 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 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/WebPageZoomHandler.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPageZoomHandler.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -103,6 +103,8 @@
if ( AknLayoutUtils::PenEnabled() )
{
if (m_zoomSlider) {
+ if( m_zoomSlider->IsVisible())
+ m_zoomSlider->CloseVolumePopup();
delete m_zoomSlider;
m_zoomSlider = NULL;
}
--- a/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -357,6 +357,7 @@
WebScrollingDeceleratorGH* scrollDecelGH = m_webview->pageScrollHandler()->ScrollingDeceleratorGH();
if(scrollDecelGH) {
scrollDecelGH->cancelDecel();
+ m_webview->setViewIsScrolling(false);
}
}
@@ -415,8 +416,8 @@
Element* eventNode = frm->document()->elementFromPoint(pt.iX, pt.iY);
if (m_isHighlighted){
- dehighlight();
- }
+ dehighlight(pos);
+ }
m_highlightedNode = NULL;
@@ -537,15 +538,14 @@
//-----------------------------------------------------------------------------
// WebPointerEventHandler::deHighlight
//-----------------------------------------------------------------------------
-void WebPointerEventHandler::dehighlight()
+void WebPointerEventHandler::dehighlight(const TPoint &aPoint)
{
- // send dehighlight event to engine by passing -1, -1
- // sending any other pointer value may result in highligh of other links
+ // m_highlightPos should be (-1, -1).
m_highlightPos = TPoint(-1, -1);
m_isHighlighted = EFalse;
Frame* frm = m_webview->page()->focusController()->focusedOrMainFrame();
- m_webview->sendMouseEventToEngine(TPointerEvent::EMove, m_highlightPos, frm);
+ m_webview->sendMouseEventToEngine(TPointerEvent::EMove, aPoint, frm);
m_highlightedNode = NULL;
@@ -598,6 +598,10 @@
Frame* coreFrame = core(m_webview->mainFrame());
TPointerEvent event;
+ if (!IS_NAVIGATION_NONE) {
+ m_webview->page()->chrome()->client()->setElementVisibilityChanged(false);
+ }
+
TBrCtlDefs::TBrCtlElementType elType = highlitableElement();
if (!isHighlitableElement(elType)) {
@@ -619,7 +623,6 @@
}
if (!IS_NAVIGATION_NONE) {
- m_webview->page()->chrome()->client()->setElementVisibilityChanged(false);
//to initiate hover
if (m_isHighlighted) {
setFocusRing();
--- a/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.h Mon Mar 15 12:44:50 2010 +0200
@@ -49,7 +49,7 @@
private:
bool checkForEventListener(WebCore::Node* node);
bool canDehighlight(const TPoint &aPoint);
- void dehighlight();
+ void dehighlight(const TPoint &aPoint = TPoint(-1,-1));
bool isHighlitableElement(TBrCtlDefs::TBrCtlElementType& elType);
TBrCtlDefs::TBrCtlElementType highlitableElement();
--- a/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -1859,6 +1859,9 @@
void WebView::clearOffScreenBitmap()
{
+ if( !IsVisible() )
+ return;
+
m_webcorecontext->gc().Reset();
m_webcorecontext->gc().Clear();
}
--- a/webengine/osswebengine/webkit/s60/webview/WebPagePinchZoomHandler.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/osswebengine/webkit/s60/webview/WebPagePinchZoomHandler.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -20,7 +20,7 @@
#include <../bidi.h>
#include "WebPagePinchZoomHandler.h"
#include "WebView.h"
-
+#include "PluginSkin.h"
const int KBitmapUpdateTimeout = 100*1000;
const int KPinchExitWaitTimeout = 300*1000;
@@ -209,6 +209,13 @@
{
m_bitmapUpdateTimer->Cancel();
m_webView->restoreZoomLevel(m_webView->scalingFactor());
+ //update the plugin rect after pinch zoom exit
+ PluginSkin* pluginskin = m_webView->mainFrame()->focusedPlugin();
+ if(pluginskin)
+ {
+ pluginskin->setPluginWinClipedRect();
+ }
+
}
// -----------------------------------------------------------------------------
--- a/webengine/webkitutils/stmgesturefw/rom/stmgesturefw.iby Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/webkitutils/stmgesturefw/rom/stmgesturefw.iby Mon Mar 15 12:44:50 2010 +0200
@@ -18,9 +18,11 @@
#ifndef _STMGESTUREFW_IBY_
#define _STMGESTUREFW_IBY_
-
-#include <platform/mw/Browser_platform_variant.hrh>
-
+#ifdef __S60_32__
+#include <browser_platform_variant.hrh>
+#else
+#include <platform/mw/browser_platform_variant.hrh>
+#endif
#ifdef BRDO_USE_GESTURE_HELPER
#include <data_caging_paths_for_iby.hrh>
--- a/webengine/webkitutils/stmgesturefw/src/pinchgesturerecogniser.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/webkitutils/stmgesturefw/src/pinchgesturerecogniser.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -59,7 +59,7 @@
// Look at the events to see if it looks like pinch in single touch
// WARNING: this code is a hack : in single touch capacitive touch device (like Alvin with 52.50) it works so-and-so,
// because the pointer events were reported from the corners of the rectangle formed by two fingers pressing.
- // In resistive touch device like Tube or Ivalo the reported points are somewhere int he middle between the fingers
+ // In resistive touch device like S60_50 or PF_52_50 the reported points are somewhere int he middle between the fingers
// and jumping a lot, so it is very difficult to get it right.
if (numOfActiveStreams == 1)
{
--- a/webengine/widgetbackuprestore/group/WidgetBackupRestore.mmp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetbackuprestore/group/WidgetBackupRestore.mmp Mon Mar 15 12:44:50 2010 +0200
@@ -47,7 +47,7 @@
MW_LAYER_SYSTEMINCLUDE
OS_LAYER_ESTLIB_SYSTEMINCLUDE
-#if defined(__PLATFORM_VERSION_32__) || defined(__PLATFORM_VERSION_50_TUBE__) || defined(__PLATFORM_VERSION_50__)
+#if defined(__PLATFORM_VERSION_32__) || defined(__PLATFORM_VERSION_S60_50__) || defined(__PLATFORM_VERSION_5250__)
MW_LAYER_CONNECT_SYSTEMINCLUDE
#endif
--- a/webengine/widgetengine/src/Renderer.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetengine/src/Renderer.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -34,8 +34,8 @@
// CONSTANTS
const TUint8 KMaxTransitionCount = 30;
const TInt KMediumResolutionDpi = 200;
-//NOTE: 5 transitions is plenty for Tube, but mileage may vary
-// on future high-res devices.
+//NOTE: 5 transitions is plenty for S60_50, but mileage may vary
+// on future high-res devices.
const TUint8 KMinTransitionCount = 5;
// LOCAL FUNCTION PROTOTYPES
--- a/webengine/widgetinstaller/Src/WidgetInstaller.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetinstaller/Src/WidgetInstaller.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -126,7 +126,7 @@
CWidgetPropertyValue* value = CWidgetPropertyValue::NewL();
User::LeaveIfError( iPropertyValues.Insert( value, i ) );
}
- *(iPropertyValues[EWidgetPropertyListVersion]) = WIDGETPROPERTYLISTVERSION;
+ *(iPropertyValues[EWidgetPropertyListVersion]) = KWidgetPropertyListVersion71;
#ifdef _DEBUG
_LIT(KDir, "WidgetBUR");
@@ -1170,7 +1170,7 @@
CWidgetPropertyValue* value = CWidgetPropertyValue::NewL();
User::LeaveIfError( propertyValues->Insert( value, i ) );
}
- *(*propertyValues)[EWidgetPropertyListVersion] = WIDGETPROPERTYLISTVERSION;
+ *(*propertyValues)[EWidgetPropertyListVersion] = KWidgetPropertyListVersion71;
// UID
*(*propertyValues)[EUid] = aUid.iUid;
// size
--- a/webengine/widgetregistry/Client/src/WidgetRegistryClient.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetregistry/Client/src/WidgetRegistryClient.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -625,14 +625,14 @@
CBufFlat* RWidgetRegistryClientSession::MarshalPropertyValuesL(
const RPointerArray<CWidgetPropertyValue>& aPropertyValues ) const
{
- CBufFlat* buf = CBufFlat::NewL( 512 );
+ CBufFlat* buf = CBufFlat::NewL( 4096 );
CleanupStack::PushL( buf );
RBufWriteStream stream( *buf );
CleanupClosePushL( stream );
TInt i = 0;
- for ( ; i < EWidgetPropertyIdCount; ++i )
+ for ( ; i < aPropertyValues.Count(); ++i )
{
aPropertyValues[i]->SerializeL( stream );
}
--- a/webengine/widgetregistry/Server/inc/UidAllocator.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetregistry/Server/inc/UidAllocator.h Mon Mar 15 12:44:50 2010 +0200
@@ -34,5 +34,6 @@
TInt AllocateL( const RUidArray& aUsedUids, TInt aDriveLetter );
static TBool IsWidget( TUid aUid );
+ static TBool IsCWRTWidget( TUid aUid );
};
#endif
--- a/webengine/widgetregistry/Server/inc/WidgetEntry.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetregistry/Server/inc/WidgetEntry.h Mon Mar 15 12:44:50 2010 +0200
@@ -182,6 +182,11 @@
* 2-phase constructor
*/
void ConstructL();
+
+ /**
+ * Property cleanup
+ */
+ void PropertyCleanupL();
protected:
RPointerArray<CWidgetPropertyValue> iPropertyValues;
@@ -191,9 +196,9 @@
TInt iActive; // bool, 1 if widget is executing
- TInt iMiniView; // bool, 1 if launched in miniview
+ TInt iMiniView; // bool, 1 if launched in miniview
- TInt iFullView; // bool, 1 if launched in fullview
+ TInt iFullView; // bool, 1 if launched in fullview
TInt iBlanketPermGranted; // bool, 1 if platform service access needs to be prompted
};
--- a/webengine/widgetregistry/Server/inc/WidgetRegistry.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetregistry/Server/inc/WidgetRegistry.h Mon Mar 15 12:44:50 2010 +0200
@@ -367,6 +367,7 @@
TBuf<KWidgetRegistryMaxPathName> iWidgetInstallPath;
TBuf<KWidgetRegistryMaxPathName> iRegistryBinaryFileName;
TBuf<KWidgetRegistryMaxPathName> iRegistryXmlFileName;
+ TBuf<KWidgetRegistryMaxPathName> iRegistryCWRTXmlFileName;
TBuf<KWidgetRegistryMaxPathName> iRegistryXmlTempFileName;
TBuf<KWidgetRegistryMaxPathName> iLprojName;
--- a/webengine/widgetregistry/Server/src/UidAllocator.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetregistry/Server/src/UidAllocator.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -38,8 +38,8 @@
KWidgetUidInternalMemoryStart :
KWidgetUidExternalMemoryStart );
TInt uidStop = ( ('c' == aDriveLetter) ?
- KWidgetUidExternalMemoryStart :
- KWidgetUidExternalMemoryStop + 1);
+ KWidgetUidWRTInternalMemoryStop :
+ KWidgetUidWRTExternalMemoryStop);
TInt uid = uidStart;
for ( ; uid < uidStop; ++uid )
@@ -62,3 +62,24 @@
&& aUid.iUid <= KWidgetUidUpperBound )?
ETrue : EFalse );
}
+
+// ============================================================================
+// TUidAllocator::IsCWRTWidget()
+// Returns true if the Uid falls within the range specified for CWRT widgets
+// ============================================================================
+//
+TBool TUidAllocator::IsCWRTWidget( TUid aUid )
+ {
+ if ( ( ( aUid.iUid >= KWidgetUidCWRTInternalMemoryStart ) &&
+ ( aUid.iUid < KWidgetUidCWRTInternalMemoryStop ) ) ||
+ ( ( aUid.iUid >= KWidgetUidCWRTExternalMemoryStart ) &&
+ ( aUid.iUid < KWidgetUidCWRTExternalMemoryStop ) ) )
+ {
+ return ETrue;
+ }
+ else
+ {
+ return EFalse;
+ }
+
+ }
--- a/webengine/widgetregistry/Server/src/WidgetEntry.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetregistry/Server/src/WidgetEntry.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -17,6 +17,7 @@
*/
#include "WidgetEntry.h"
+#include "UidAllocator.h"
#include <widgetregistryconstants.h>
#include <s32file.h>
#include <f32file.h>
@@ -54,8 +55,6 @@
_LIT( KXmlDataTypeString, "string" );
_LIT( KXmlDataTypeUid, "uid" );
-static const TInt KWidgetPropertyListVersion32 = 1;
-static const TInt KWidgetPropertyListVersion71 = 3;
// MODULE DATA STRUCTURES
// LOCAL FUNCTION PROTOTYPES
@@ -93,7 +92,8 @@
CWidgetEntry* CWidgetEntry::NewL( RPointerArray<CWidgetPropertyValue>** aProps )
{
CWidgetEntry* tmp = NewL();
- for ( TInt i = 0; i < (*aProps)->Count(); i++ )
+ TInt i = 0;
+ for ( ; i < (*aProps)->Count(); i++ )
{
CWidgetPropertyValue* value = CWidgetPropertyValue::NewL();
tmp->iPropertyValues.AppendL( value );
@@ -102,6 +102,14 @@
(**aProps)[i]->iType = EWidgetPropTypeUnknown;
delete (**aProps)[i];
}
+
+ // Pad out with unknown properties to reach the correct number
+ for ( ; i < EWidgetPropertyIdCount ; i++ )
+ {
+ CWidgetPropertyValue* value = CWidgetPropertyValue::NewL();
+ tmp->iPropertyValues.AppendL( value );
+ }
+
(*aProps)->Close();
delete *aProps;
*aProps = NULL;
@@ -170,12 +178,42 @@
//WIDGETPROPERTYLISTVERSION is 1 in case of Tiger engine and 3 in case of Leopard engine. Therefore, modifying the check such that
//when the Version id is 1 or 3, we do not treat the file as corrupt.
if ( ( EWidgetPropTypeUnknown == (*this)[EWidgetPropertyListVersion].iType )
- || ( (KWidgetPropertyListVersion32 != (*this)[EWidgetPropertyListVersion] ) && (KWidgetPropertyListVersion71 != (*this)[EWidgetPropertyListVersion] )) )
+ || ( (KWidgetPropertyListVersion32 != (*this)[EWidgetPropertyListVersion] ) &&
+ (KWidgetPropertyListVersion71 != (*this)[EWidgetPropertyListVersion] ) &&
+ (KWidgetPropertyListVersion71CWRT != (*this)[EWidgetPropertyListVersion] ) ))
{
User::Leave( KErrCorrupt );
}
- // Read only until the ENokiaWidget for the 3.2 widgets
- TInt propertyIdCount = (*this)[EWidgetPropertyListVersion] == KWidgetPropertyListVersion32 ? ENokiaWidget+1 : EWidgetPropertyIdCount;
+
+ // Provide appropriate values for EProcessUid and EMimeType
+ (*this)[EProcessUid] = KUidWidgetUi.iUid;
+
+ HBufC* heapBuf = HBufC::NewLC(KWidgetMime().Length());
+ TPtr ptr(heapBuf->Des());
+ ptr.Copy(KWidgetMime); // 8-bit to 16-bit copy
+ (*this)[EMimeType] = *heapBuf;
+ CleanupStack::PopAndDestroy();
+
+ // Read only until the ENokiaWidget for the 3.2 widgets, EPreInstalled for 7.1 widgets
+ TInt propertyIdCount = 0;
+ switch ((*this)[EWidgetPropertyListVersion]) {
+ case KWidgetPropertyListVersion32:
+ propertyIdCount = ENokiaWidget+1;
+ // since we've filled in the EProcessUid and EMimeType we're
+ // now at KWidgetPropertyListVersion71CWRT
+ (*this)[EWidgetPropertyListVersion] = KWidgetPropertyListVersion71CWRT;
+ break;
+ case KWidgetPropertyListVersion71:
+ propertyIdCount = EPreInstalled+1;
+ // since we've filled in the EProcessUid and EMimeType we're
+ // now at KWidgetPropertyListVersion71CWRT
+ (*this)[EWidgetPropertyListVersion] = KWidgetPropertyListVersion71CWRT;
+ break;
+ case KWidgetPropertyListVersion71CWRT:
+ propertyIdCount = EWidgetPropertyIdCount;
+ break;
+ }
+
// fill property values array
for ( TInt i = 1; i < propertyIdCount; ++i )
{
@@ -218,6 +256,8 @@
iPropertyValues.AppendL( val );
CleanupStack::Pop(); // val
}
+ // Internalization of the Xml is complete, cleanup the properties appropriately
+ PropertyCleanupL();
return;
}
TPtrC8 propTag( n->name );
@@ -584,7 +624,17 @@
User::LeaveIfError( wsSession.Connect() );
CleanupClosePushL( wsSession );
TApaTaskList taskList( wsSession );
- TApaTask task = taskList.FindApp( KUidWidgetUi );
+
+ TUid uid;
+
+ if ( EWidgetPropTypeUnknown == (*this)[EProcessUid].iType ) {
+ uid = KUidWidgetUi;
+ } else {
+ uid = TUid::Uid( (*this)[EProcessUid] );
+ }
+
+ TApaTask task = taskList.FindApp( uid );
+
if ( EFalse == task.Exists() )
{
// widget UI crashed, reset active
@@ -618,5 +668,49 @@
}
}
+
+// ============================================================================
+// CWidgetEntry::PropertyCleanupL()
+// Make adjustments to bring the property values up to the current
+// property list version
+//
+// @since
+// ============================================================================
+//
+void CWidgetEntry::PropertyCleanupL()
+{
+ TInt currentVersion = (*this)[EWidgetPropertyListVersion];
+
+ while (currentVersion < WIDGETPROPERTYLISTVERSION) {
+ switch (currentVersion) {
+ case KWidgetPropertyListVersion32:
+ // Go from PropertyListVersion32 to PropertyListVersion71
+ // Adds EMiniViewEnable, EBlanketPermGranted, EPreInstalled
+ // (all are optional, just update the version number now
+ // and they will be undefined when serialized/deserialized)
+ currentVersion = KWidgetPropertyListVersion71;
+ break;
+ case KWidgetPropertyListVersion71:
+ // Go from PropertlyListVersion71 to PropertyListVersion71CWRT
+ // 1) add ProcessUid for WRT (wgz) widgets
+ (*this)[EProcessUid] = KUidWidgetUi.iUid;
+
+ // 2) add MIMEType
+ HBufC* heapBuf = HBufC::NewLC(KWidgetMime().Length());
+ TPtr ptr(heapBuf->Des());
+ ptr.Copy(KWidgetMime); // 8-bit to 16-bit copy
+ (*this)[EMimeType] = *heapBuf;
+ CleanupStack::PopAndDestroy();
+
+ currentVersion = KWidgetPropertyListVersion71CWRT;
+ break;
+ default:
+ // Trouble
+ return;
+ }
+
+ (*this)[EWidgetPropertyListVersion] = currentVersion;
+ }
+}
// End of File
--- a/webengine/widgetregistry/Server/src/WidgetRegistry.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetregistry/Server/src/WidgetRegistry.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -63,6 +63,8 @@
"a:\\private\\10282f06\\WidgetEntryStore.dat" );
_LIT( KWidgetEntryStoreXmlFile,
"a:\\private\\10282f06\\WidgetEntryStore.xml" );
+_LIT( KCWRTWidgetEntryStoreXmlFile,
+ "c:\\private\\10282f06\\CWRTWidgetEntryStore.xml" );
_LIT( KWidgetEntryStoreXmlTempFile,
"a:\\private\\10282f06\\WidgetEntryStoreTemp.xml" );
_LIT( KWidgetDirFile, "widget_lproj.xml" );
@@ -169,6 +171,7 @@
iWidgetInstallPath( KWidgetInstallPath ),
iRegistryBinaryFileName( KWidgetEntryStoreBinaryFile ),
iRegistryXmlFileName( KWidgetEntryStoreXmlFile ),
+ iRegistryCWRTXmlFileName( KCWRTWidgetEntryStoreXmlFile ),
iRegistryXmlTempFileName( KWidgetEntryStoreXmlTempFile ),
iPolicyId( 0 )
{
@@ -336,7 +339,7 @@
}
}
#else
- iPolicyId = KErrNotSupported;
+ iPolicyId = KErrNotSupported;
#endif
return iPolicyId;
}
@@ -581,11 +584,15 @@
// UIDs already known to app arch be reserved.
for ( TInt i = 0; i < appArchList.Count(); i++ )
{
- if ( KErrNone != iUsedUids.Append( (appArchList)[i] ) )
+ // Do not maintain the list of used CWRT widget UIDs
+ if ( !TUidAllocator::IsCWRTWidget((appArchList)[i]) )
{
- // no recovery possible
- doConsistency = EFalse;
- break;
+ if ( KErrNone != iUsedUids.Append( (appArchList)[i] ) )
+ {
+ // no recovery possible
+ doConsistency = EFalse;
+ break;
+ }
}
}
}
@@ -598,6 +605,23 @@
// on error use english
iLprojName = _L("en");
}
+
+ // Internalize the CWRT widgets, without consistency checking
+ // No multi-drive support for CWRT
+ TDriveUnit driveUnit(EDriveC);
+ CDir* installedListForDrive = NULL;
+ RArray<TInt> installedListForDriveFlags;
+ TRAP_IGNORE( // consistency checking doesn't apply to CWRT
+ InternalizeXmlL( iRegistryCWRTXmlFileName,
+ driveUnit,
+ EFalse,
+ appArchList,
+ appArchListFlags,
+ installedListForDrive,
+ installedListForDriveFlags,
+ dirtyFlag ) );
+ delete installedListForDrive;
+ installedListForDriveFlags.Close();
// List all drives in the system
TDriveList driveList;
@@ -707,10 +731,14 @@
delete installedListForDrive;
installedListForDriveFlags.Close();
} // for
+
+ // appArchList will not contain CWRT widgets, so
+ // consistency checking will not apply to them
if ( doConsistency )
{
AppArchListConsistency( appArchList, appArchListFlags );
- }
+ }
+
CleanupStack::PopAndDestroy( 2, &appArchList );//appArchListFlags, appArchList
aDirtyFlag = dirtyFlag;
@@ -977,10 +1005,20 @@
// and value as an array of entry indices for that drive
RPtrHashMap< TInt, CArrayFixFlat<TInt> > driveEntryHashMap;
CleanupClosePushL( driveEntryHashMap );
+ CArrayFixFlat<TInt>* cwrtWidgetArray = new (ELeave) CArrayFixFlat<TInt>(1);
+ CleanupStack::PushL( cwrtWidgetArray );
for (TInt i = 0 ;i < iEntries.Count(); i++)
{
CWidgetEntry* entry = iEntries[i];
+
+ // Bypass if the widget is a CWRT widget, they're externalized
+ // independently
+ if (TUidAllocator::IsCWRTWidget(TUid::Uid((*entry)[EUid]))) {
+ cwrtWidgetArray->AppendL(i);
+ continue;
+ }
+
const TDesC& driveName = (*entry)[EDriveName];
TDriveUnit driveUnit( driveName );
CArrayFixFlat<TInt>* array =
@@ -1070,11 +1108,35 @@
}
}
}
+
+ TDriveUnit driveUnit( EDriveC );
+ iRegistryXmlTempFileName[0] = driveUnit.Name()[0];
+
+ iFs.CreatePrivatePath( driveUnit );
+
+ // a transactional file update to protect against
+ // disk full, etc: overwrite temp then rename temp to original
+
+ TRAPD( error,
+ ExternalizeXmlL( iRegistryXmlTempFileName, cwrtWidgetArray ) );
+ if ( KErrNone == error )
+ {
+ // last steps in transactional update
+ BaflUtils::DeleteFile( iFs, iRegistryCWRTXmlFileName );
+ BaflUtils::RenameFile( iFs,
+ iRegistryXmlTempFileName,
+ iRegistryCWRTXmlFileName );
+ }
+ else // handle leave by deleting temp file
+ {
+ BaflUtils::DeleteFile( iFs, iRegistryXmlTempFileName );
+ }
for ( TInt i = 0; i < driveEntryHashMap.Count(); i++ )
{
CleanupStack::Pop();
}
+ CleanupStack::PopAndDestroy( cwrtWidgetArray );
CleanupStack::Pop( &driveEntryHashMap );
driveEntryHashMap.ResetAndDestroy();
driveEntryHashMap.Close();
@@ -1828,7 +1890,8 @@
error = iAppArch.GetNextApp( info );
if ( KErrNone == error )
{
- if ( TUidAllocator::IsWidget( info.iUid ) )
+ if ( TUidAllocator::IsWidget( info.iUid ) &&
+ !TUidAllocator::IsCWRTWidget( info.iUid ) )
{
LOG2( " widget uid 0x%x (%d)",
(TUint)(info.iUid.iUid), info.iUid.iUid );
@@ -1857,10 +1920,10 @@
{
aUids.Reset();
}
- else
- {
- error = KErrNone;
- }
+ else
+ {
+ error = KErrNone;
+ }
LOG_CODE( if ( aUids.Count() ) )
LOG1( "AppArchWidgetUids done widget count %d",
aUids.Count() );
@@ -2297,4 +2360,6 @@
}
LOG( "AppArchListConsistency done" );
}
+
+
// End of File
--- a/webengine/widgetregistry/Server/src/WidgetRegistryXml.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/widgetregistry/Server/src/WidgetRegistryXml.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -44,6 +44,8 @@
_LIT( KMiniViewEnabled, "MiniViewEnabled" );
_LIT( KBlanketPermGranted, "BlanketPermissionGranted" ); // optional
_LIT( KPreInstalled, "PreInstalled" );
+_LIT( KProcessUid, "ProcessUid" );
+_LIT( KMimeType, "MimeType" );
static void XmlFree( TAny* aPtr )
{
@@ -193,6 +195,16 @@
property.name.Set( KPreInstalled );
property.type = EWidgetPropTypeInt;
iProperties.AppendL(property);
+ //
+ property.id = EProcessUid;
+ property.name.Set( KProcessUid );
+ property.type = EWidgetPropTypeInt; // not TUid
+ iProperties.AppendL(property);
+ //
+ property.id = EMimeType;
+ property.name.Set( KMimeType );
+ property.type = EWidgetPropTypeString;
+ iProperties.AppendL(property);
}
// ============================================================================
--- a/webengine/wrtharvester/inc/wrtharvester.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/wrtharvester/inc/wrtharvester.h Mon Mar 15 12:44:50 2010 +0200
@@ -125,6 +125,8 @@
void DialogShown();
static TInt DeleteCallback(TAny* aPtr);
+
+ TBool SetSystemShutdown(TBool aState){ iSystemShutdown = aState; }
private:
@@ -279,6 +281,12 @@
* own
*/
CWrtUsbHandler* iWidgetUsbListener;
+
+ /**
+ * Publish & Subscribe listener
+ * own
+ */
+ CWrtHarvesterPSNotifier* iWidgetSystemShutdownListener;
/**
*
@@ -355,6 +363,11 @@
*
*/
CAsyncCallBack* iAsyncCallBack;
+
+ /**
+ *
+ */
+ TBool iSystemShutdown;
};
#endif // C_WRTCONTENTHARVESTER_H
--- a/webengine/wrtharvester/inc/wrtharvesterconst.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/wrtharvester/inc/wrtharvesterconst.h Mon Mar 15 12:44:50 2010 +0200
@@ -54,6 +54,7 @@
_LIT8( KTemplateType, "template_type");
_LIT8( KWidgetName, "widget_name");
_LIT8( KWidgetInfo, "widget_info");
+_LIT8( KWidgetType, "widget_type");
_LIT( KTemplatedWidget, "ai3templatedwidget");
_LIT8( KMyActionMap, "action_map" );
_LIT8( KMyItem, "item" );
--- a/webengine/wrtharvester/inc/wrtharvesterpsnotifier.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/wrtharvester/inc/wrtharvesterpsnotifier.h Mon Mar 15 12:44:50 2010 +0200
@@ -26,7 +26,7 @@
// Content Harvester server secure id
const TUid KPropertyCat = { 0x10282E5A };
// Can not conflict with other Content Harvester plugin keys
-enum TPropertyKeys { EWidgetUIState = 109, EWidgetRegAltered, EWidgetMMCAltered, EWidgetMassStorageMode };
+enum TPropertyKeys { EWidgetUIState = 109, EWidgetRegAltered, EWidgetMMCAltered, EWidgetMassStorageMode, EWidgetSystemShutdown };
/**
* Publish&Subscribe event listener
--- a/webengine/wrtharvester/inc/wrtharvesterregistryaccess.h Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/wrtharvester/inc/wrtharvesterregistryaccess.h Mon Mar 15 12:44:50 2010 +0200
@@ -27,6 +27,7 @@
class CWidgetInfo;
// CONSTANTS
+const TInt32 KS60Widget = 1;
template < class T > class RWrtArray : public RPointerArray< T >
{
public:
@@ -72,6 +73,7 @@
iUid = TUid::Uid(0);
iDisplayName = NULL;
iBundleId = NULL;
+ iType = KErrNotFound;
}
/**
@@ -87,6 +89,7 @@
TUid iUid;
HBufC* iDisplayName;// widget display name
HBufC* iBundleId; // widget bundle identifier
+ TInt iType; // widget type
};
// CLASS DECLARATION
@@ -131,6 +134,15 @@
* @return Yes or no.
*/
TBool SupportsMiniviewL( RWidgetRegistryClientSession& aSession, const TUid& aUid );
+
+ /**
+ * Check if the widget is wgz.
+ *
+ * @param aSession Widget registry session
+ * @param aUid UID of widget.
+ * @return Yes or no.
+ */
+ TBool IsNokiaWidget( RWidgetRegistryClientSession& aSession, const TUid& aUid );
/**
* Returns the property value for the widget as a string. Ownership transferred.
--- a/webengine/wrtharvester/src/wrtharvester.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/wrtharvester/src/wrtharvester.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -25,7 +25,7 @@
#include "wrtharvesterconst.h"
#include <widgetregistryconstants.h>
#include <wrtharvester.rsg>
-
+#include <startupdomainpskeys.h>
#include <ecom/implementationproxy.h>
#include <LiwServiceHandler.h>
@@ -225,8 +225,11 @@
void CWrtHarvester::ConstructL()
{
User::LeaveIfError( iApaSession.Connect() );
+
+ iSystemShutdown = EFalse;
iWidgetUIListener = CWrtHarvesterPSNotifier::NewL( this, EWidgetUIState );
iWidgetRegListener = CWrtHarvesterPSNotifier::NewL( this, EWidgetRegAltered );
+ iWidgetSystemShutdownListener = CWrtHarvesterPSNotifier::NewL( this, EWidgetSystemShutdown );
User::LeaveIfError( iFs.Connect() );
iWidgetUsbListener = CWrtUsbHandler::NewL( this, iFs );
@@ -287,6 +290,7 @@
delete iWidgetRegListener;
delete iWidgetMMCListener;
delete iWidgetUsbListener;
+ delete iWidgetSystemShutdownListener;
if(iAsyncCallBack)
{
iAsyncCallBack->Cancel();
@@ -316,14 +320,28 @@
{
//Do not send the Operations to the Widgets when in Mass storage mode.. . .
- if( IsInMSMode() == 1 )
- {
- if(aTrigger == KDeActive)
- RemovePublisherAndObserverL(aContentId);
- return;
- }
-
TUid uid( WidgetUid( aContentId ) );
+
+
+ if(iSystemShutdown && aTrigger == KDeActive )
+ {
+ return ;
+ }
+ if( IsInMSMode() == 1 && aTrigger == KDeActive)
+ {
+ RemovePublisherAndObserverL(aContentId);
+
+ if(!iSystemShutdown)
+ {
+ RWidgetRegistryClientSession session;
+ CleanupClosePushL( session );
+ User::LeaveIfError( session.Connect() );
+ session.SetBlanketPermissionL( uid, EBlanketUnknown );
+ CleanupStack::PopAndDestroy( &session );
+ }
+ return;
+ }
+
TWidgetOperations operation( Uninitialized );
if( aTrigger == KActive )
{
@@ -357,8 +375,20 @@
break;
}
}
- delete temp;
- }
+ delete temp;
+
+ // Removing . Miniview, shall remove full view as well. For blanket permissions
+ // will be revoked for miniview
+
+ if(!iSystemShutdown)
+ {
+ RWidgetRegistryClientSession session;
+ CleanupClosePushL( session );
+ User::LeaveIfError( session.Connect() );
+ session.SetBlanketPermissionL( uid, EBlanketUnknown );
+ CleanupStack::PopAndDestroy( &session );
+ }
+ }
else if( aTrigger == KSuspend )
{
operation = WidgetSuspend;
@@ -502,8 +532,38 @@
if( publisherMap && publisherMap->FindL( KContentId , variant ))
{
HBufC* bundleId = variant.AsDes().AllocLC();
- publishers.AppendL( bundleId );
- CleanupStack::Pop( bundleId );
+ variant.Reset();
+ TBool isNokiaWidget = EFalse;
+ if ( publisherMap->FindL( KDataMap, variant) )
+ {
+ CLiwDefaultMap* dataMap = CLiwDefaultMap::NewLC();
+ variant.Get( *dataMap );
+ variant.Reset();
+ if ( dataMap->FindL( KWidgetInfo, variant ) )
+ {
+ CLiwDefaultMap* widgetInfoMap = CLiwDefaultMap::NewLC();
+ variant.Get( *widgetInfoMap );
+ if ( widgetInfoMap->FindL( KWidgetType, variant ) )
+ {
+ if ( KS60Widget == variant.AsTInt32())
+ {
+ isNokiaWidget = ETrue;
+ }
+ }
+ CleanupStack::PopAndDestroy( widgetInfoMap );
+ }
+ CleanupStack::PopAndDestroy( dataMap );
+ }
+
+ if (isNokiaWidget )
+ {
+ publishers.AppendL( bundleId );
+ CleanupStack::Pop( bundleId );
+ }
+ else
+ {
+ CleanupStack::PopAndDestroy( bundleId );
+ }
}
CleanupStack::PopAndDestroy( publisherMap );
}
@@ -554,6 +614,7 @@
widgetInfo->InsertL( KTemplateType, TLiwVariant( KTemplateName ));
widgetInfo->InsertL( KWidgetName, TLiwVariant( wrtInfo.iDisplayName ));
widgetInfo->InsertL( KWidgetIcon, TLiwVariant( wrtuid)); // uid(0x12345678) This is the expected format
+ widgetInfo->InsertL( KWidgetType, TLiwVariant( TInt32 (wrtInfo.iType ) ));
datamap->InsertL( KWidgetInfo , TLiwVariant( widgetInfo ));
CleanupStack::PopAndDestroy( widgetInfo );
--- a/webengine/wrtharvester/src/wrtharvesterpsnotifier.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/wrtharvester/src/wrtharvesterpsnotifier.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -20,6 +20,7 @@
#include "wrtharvester.h"
#include <UikonInternalPSKeys.h>//For MMC Observing
#include <usbmsshared.h>//For USB monitor
+#include <startupdomainpskeys.h> // For shutdown observer
// ============================ MEMBER FUNCTIONS =============================
@@ -90,6 +91,10 @@
{
User::LeaveIfError( iProperty.Attach( KUsbMsDriveState_Category,EUsbMsDriveState_DriveStatus ));
}
+ else if( iKey == EWidgetSystemShutdown )
+ {
+ User::LeaveIfError( iProperty.Attach( KPSUidStartup,KPSGlobalSystemState ));
+ }
else
{
User::LeaveIfError( iProperty.Attach( KPropertyCat, iKey));
@@ -131,7 +136,10 @@
TUsbMsDrivesStatus allDrivesStatus;
if( iKey != EWidgetMMCAltered && iKey != EWidgetMassStorageMode )
{
- iProperty.Get( KPropertyCat, iKey, value );
+ if (iKey == EWidgetSystemShutdown)
+ GetValue( value);
+ else
+ iProperty.Get( KPropertyCat, iKey, value );
}
else
{
@@ -164,6 +172,10 @@
}
iHarvester->UpdateL();
}
+ else if( iKey == EWidgetSystemShutdown && value == ESwStateShuttingDown )
+ {
+ iHarvester->SetSystemShutdown(ETrue);
+ }
}
}
--- a/webengine/wrtharvester/src/wrtharvesterregistryaccess.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/webengine/wrtharvester/src/wrtharvesterregistryaccess.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -61,12 +61,15 @@
{
CWidgetInfo* widgetInfo( widgetInfoArr[i] );
- if ( SupportsMiniviewL( session, widgetInfo->iUid ) )
+
+ if ( SupportsMiniviewL( session, widgetInfo->iUid ) &&
+ IsNokiaWidget( session, widgetInfo->iUid ))
{
CWrtInfo* info = new CWrtInfo();
info->iUid = widgetInfo->iUid;
info->iBundleId = WidgetPropertyL( session, widgetInfo->iUid, EBundleIdentifier );
info->iDisplayName = WidgetPropertyL( session, widgetInfo->iUid, EBundleDisplayName );
+ info->iType = KS60Widget;
aWidgetInfoArray.AppendL( info );
}
}
@@ -94,6 +97,25 @@
}
// ---------------------------------------------------------------------------
+// Check if it is wgz widget .
+// ---------------------------------------------------------------------------
+//
+TBool WrtHarvesterRegistryAccess::IsNokiaWidget(
+ RWidgetRegistryClientSession& aSession,
+ const TUid& aUid )
+ {
+ TBool res( EFalse );
+
+ CWidgetPropertyValue* value( NULL );
+ value = aSession.GetWidgetPropertyValueL( aUid, ENokiaWidget );
+
+ res = value && ( *value == 0 || *value == 1 );
+
+ delete value;
+ return res;
+ }
+
+// ---------------------------------------------------------------------------
// Get the widget property as string.
// ---------------------------------------------------------------------------
//
@@ -113,3 +135,4 @@
// End of File
+
--- a/widgets/widgetapp/inc/WidgetUiWindowManager.h Fri Mar 12 15:48:51 2010 +0200
+++ b/widgets/widgetapp/inc/WidgetUiWindowManager.h Mon Mar 15 12:44:50 2010 +0200
@@ -61,12 +61,40 @@
#endif
// CLASS DECLARATION
+class CRepository;
+
+class MCenrepWatcher
+ {
+ public:
+ virtual void CenrepChanged(TInt aHSModeOnline) = 0;
+ };
+class CCenrepNotifyHandler : public CActive
+ {
+ public:
+ static CCenrepNotifyHandler* NewL( MCenrepWatcher& aObserver);
+ static CCenrepNotifyHandler* NewLC( MCenrepWatcher& aObserver);
+ void StartObservingL();
+ void StopObserving();
+ virtual ~CCenrepNotifyHandler();
+ void RunL();
+ void RunErrorL(TInt aError);
+ void DoCancel();
+ protected:
+ CCenrepNotifyHandler(MCenrepWatcher& aObserver);
+ void ConstructL();
+ private:
+ CRepository* iRepository;
+ TUint32 iKey;
+ TUid iUid;
+ MCenrepWatcher& iObserver; //class using the observer
+ };
/**
* CWidgetUiWindowManager
* @lib WidgetUi.app
* @since 3.1
*/
-class CWidgetUiWindowManager : public CBase
+class CWidgetUiWindowManager : public CBase,
+ public MCenrepWatcher
{
public: // constructors / destructor
@@ -87,6 +115,14 @@
* @return none
*/
virtual ~CWidgetUiWindowManager();
+ public: //MCenrepWatcher
+
+ /**
+ * CenrepChanged
+ * @since 7.x
+ * @param aHSModeOnline HS web status online/offline.
+ */
+ void CenrepChanged(TInt aHSModeOnline);
public:
@@ -597,6 +633,7 @@
#ifdef BRDO_WRT_HS_FF
CCpsPublisher* iCpsPublisher; // Owned, interface to publish bitmap to CPS
+ CCenrepNotifyHandler* iCenrepNotifyHandler;
#endif
// TODO should this be created only when needed?
CActiveApDb* iDb; // owned, responsible for deleting
@@ -604,7 +641,7 @@
CPeriodic* iNotifyHarvester;//Notify harvester to send next event
#ifdef OOM_WIDGET_CLOSEALL
TTime iTimeLastWidgetOpen;
-#endif
+#endif
};
#endif // WIDGETUIWINDOWMANAGER_H_
--- a/widgets/widgetapp/src/WidgetUiWindow.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/widgets/widgetapp/src/WidgetUiWindow.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -808,6 +808,7 @@
TInt ask( 1 );
TInt wmlId( KWmlNoDefaultAccessPoint );
TInt snapId( KWmlNoDefaultSnapId );
+#ifndef BRDO_OCC_ENABLED_FF
CRepository* rep( NULL );
TRAPD( cenrepError, rep = CRepository::NewL( KCRUidBrowser ) );
if ( KErrNone == cenrepError )
@@ -817,6 +818,7 @@
(void)rep->Get( KBrowserNGDefaultSnapId, snapId );
}
delete rep;
+#endif
if ( ask == EBrowserCenRepApSelModeDestination &&
( snapId != KWmlNoDefaultSnapId) )
{
@@ -1001,8 +1003,11 @@
aDesArray,
paramFound );
- TLex lex(dlId);
- User::LeaveIfError(lex.Val(iDlId));
+ if ( paramFound )
+ {
+ TLex lex(dlId);
+ User::LeaveIfError(lex.Val(iDlId));
+ }
TDataType dataType( *contentType8 );
CAiwGenericParamList* genericParamList =
--- a/widgets/widgetapp/src/WidgetUiWindowManager.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/widgets/widgetapp/src/WidgetUiWindowManager.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -181,9 +181,9 @@
#ifdef BRDO_WRT_HS_FF
iCpsPublisher = CCpsPublisher::NewL();
+ iCenrepNotifyHandler = CCenrepNotifyHandler::NewL( *this );
+ iNetworkListener = CWidgetUiNetworkListener::NewL( *this );
#endif
-
- iNetworkListener = CWidgetUiNetworkListener::NewL( *this );
}
// -----------------------------------------------------------------------------
@@ -211,12 +211,18 @@
//
CWidgetUiWindowManager::~CWidgetUiWindowManager()
{
+#ifdef BRDO_WRT_HS_FF
+ iCenrepNotifyHandler->DoCancel();
+ delete iCenrepNotifyHandler;
+#endif
if( iDialogsProvider)
iDialogsProvider->CancelAll();
iActiveFsWindow = NULL;
iWindowList.ResetAndDestroy();
-
+
+#ifdef BRDO_WRT_HS_FF
delete iNetworkListener;
+#endif
// TODO Why there is a "Disconnect" method in the first place...
// RHandleBase::Close() should be enough?
@@ -261,7 +267,7 @@
// Removing . Miniview, shall remove full view as well. For blanket permissions
// will be revoked for miniview
- iClientSession.SetBlanketPermissionL( aUid, EBlanketUnknown );
+
iClientSession.SetMiniViewL( aUid, EFalse );
return CloseWindow( wdgt_window );
}
@@ -1421,7 +1427,7 @@
{
User::LeaveIfError(iOomSession.Connect());
CActiveScheduler::Add( this );
-#ifdef FF_OOM_MONITOR2_COMPONENT
+#ifdef BRDO_OOM_MONITOR2_COMPONENT_FF
iOomSession.RequestOptionalRam(KMemoryToCreateWidgetWindow, KMemoryToCreateWidgetWindow, KUidWidgetOOMPlugin, iStatus);
SetActive();
#else
@@ -1487,5 +1493,119 @@
{
iOomSession.CancelRequestFreeMemory();
}
+void CWidgetUiWindowManager::CenrepChanged(TInt aHSModeOnline)
+ {
+ for ( TInt i = 0; i < iWindowList.Count(); i++ )
+ {
+ CWidgetUiWindow* window = iWindowList[i];
+ if( window && window->WidgetMiniViewState() == EPublishSuspend )
+ {
+ if ( window->NetworkModeWait()->IsStarted() )
+ {
+ window->NetworkModeWait()->AsyncStop();
+ }
+ if(aHSModeOnline)
+ {
+ iNetworkMode = EOnlineMode;
+ }
+ else
+ {
+ iNetworkMode = EOfflineMode;
+ if ( ( !FullViewWidgetsOpen() ) && ( iConnection->Connected() ) )
+ {
+ TRAP_IGNORE( window->Engine()->HandleCommandL(
+ (TInt)TBrCtlDefs::ECommandIdBase +
+ (TInt)TBrCtlDefs::ECommandCancelFetch ) );
+
+ window->Engine()->HandleCommandL(
+ (TInt)TBrCtlDefs::ECommandIdBase +
+ (TInt)TBrCtlDefs::ECommandDisconnect );
+ iConnection->CancelConnection();
+ iConnection->StopConnectionL();
+ }
+ }
+ if(window->IsWidgetLoaded())
+ window->DetermineNetworkState();
+ else
+ window->NeedToNotifyNetworkState(ETrue);
+
+ }
+ }
+ }
+
+//cenrep notification handling
+
+CCenrepNotifyHandler * CCenrepNotifyHandler::NewL(
+ MCenrepWatcher& aObserver)
+ {
+ CCenrepNotifyHandler* o = CCenrepNotifyHandler::NewLC(aObserver);
+ CleanupStack:: Pop(o);
+ return o;
+ }
+CCenrepNotifyHandler* CCenrepNotifyHandler::NewLC(
+ MCenrepWatcher& aObserver)
+ {
+ CCenrepNotifyHandler* self( new( ELeave ) CCenrepNotifyHandler( aObserver) );
+ CleanupStack:: PushL(self);
+ self->ConstructL();
+ return self;
+ }
+void CCenrepNotifyHandler::ConstructL()
+ {
+ iUid = TUid::Uid( KCRUidActiveIdleLV );
+ iKey = KAIWebStatus;
+ iRepository = CRepository::NewL( iUid );
+ CActiveScheduler::Add(this);
+ StartObservingL();
+ }
+
+CCenrepNotifyHandler::CCenrepNotifyHandler(MCenrepWatcher& aObserver) : iObserver(aObserver), CActive (EPriorityLow)
+ {
+
+ }
+
+CCenrepNotifyHandler::~CCenrepNotifyHandler()
+ {
+ Cancel(); //first cancel because iRepository is used there
+ delete iRepository;
+ iRepository=NULL;
+ }
+
+void CCenrepNotifyHandler::StartObservingL()
+ {
+ if( IsActive() )
+ {
+ return; //do nothing if allready observing
+ }
+ User::LeaveIfError(
+ iRepository->NotifyRequest( iKey, iStatus ) );
+ SetActive();
+ }
+
+void CCenrepNotifyHandler::StopObserving()
+ {
+ Cancel();
+ }
+
+void CCenrepNotifyHandler::DoCancel()
+ {
+ iRepository->NotifyCancel(iKey);
+ }
+
+void CCenrepNotifyHandler::RunL()
+ {
+ TInt value = 0;
+ TInt error = iRepository->Get( iKey, value);
+ if( error == KErrNone )
+ {
+ iObserver.CenrepChanged(value);
+ }
+ // Re-subscribe
+ error = iRepository->NotifyRequest( iKey, iStatus );
+ if( error == KErrNone )
+ {
+ SetActive();
+ }
+ }
// End of file
--- a/widgets/widgetapp/src/WidgetUiWindowView.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/widgets/widgetapp/src/WidgetUiWindowView.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -412,7 +412,7 @@
//
TBool CWidgetUiWindowView::IsOptionsMenuActivated()
{
- return iIsOptionsMenuActivated;
+ return AppUi()->IsDisplayingMenuOrDialog();
}
--- a/widgets/widgetinstaller/src/WidgetUIOperationsWatcher.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/widgets/widgetinstaller/src/WidgetUIOperationsWatcher.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -133,7 +133,7 @@
CWidgetPropertyValue* value = CWidgetPropertyValue::NewL();
User::LeaveIfError( iPropertyValues.Insert( value, i ) );
}
- *(iPropertyValues[EWidgetPropertyListVersion]) = WIDGETPROPERTYLISTVERSION;
+ *(iPropertyValues[EWidgetPropertyListVersion]) = KWidgetPropertyListVersion71;
iTaskManager = CTaskManager::NewL();
}
--- a/widgets/widgetlauncher/src/WidgetLauncher.cpp Fri Mar 12 15:48:51 2010 +0200
+++ b/widgets/widgetlauncher/src/WidgetLauncher.cpp Mon Mar 15 12:44:50 2010 +0200
@@ -31,7 +31,7 @@
#include <APGTASK.H>
#include <oommonitorsession.h>
#include <e32property.h>
-#ifndef FF_OOM_MONITOR2_COMPONENT
+#ifndef BRDO_OOM_MONITOR2_COMPONENT_FF
#include <systemwarninglevels.hrh>
#endif
#include "browser_platform_variant.hrh"
@@ -211,7 +211,7 @@
TInt bytesAvailaible(0);
if (aOperation != WidgetSelect && aOperation != LaunchFullscreen )
{
-#ifdef FF_OOM_MONITOR2_COMPONENT
+#ifdef BRDO_OOM_MONITOR2_COMPONENT_FF
err = monitorSession.RequestOptionalRam(KMemoryToLaunchWidgetUi, KMemoryToLaunchWidgetUi,KUidWidgetOOMPlugin, bytesAvailaible);
#else
TMemoryInfoV1Buf info;
--- a/widgets/widgetsidchecker/group/bld.inf Fri Mar 12 15:48:51 2010 +0200
+++ b/widgets/widgetsidchecker/group/bld.inf Mon Mar 15 12:44:50 2010 +0200
@@ -15,7 +15,7 @@
*
*/
-//#ifdef __PLATFORM_VERSION_52__
+//#ifdef __PLATFORM_VERSION_52_TB92__
#include <platform_paths.hrh>
#include "../../../web_plat/browser_platform_api/inc/browser_platform_variant.hrh"