diff -r 7c90e6132015 -r 10e98eab6f85 webengine/widgetengine/src/WidgetClient.cpp --- a/webengine/widgetengine/src/WidgetClient.cpp Fri May 08 08:25:06 2009 +0300 +++ b/webengine/widgetengine/src/WidgetClient.cpp Fri Jul 03 15:54:40 2009 +0100 @@ -54,13 +54,15 @@ // // ---------------------------------------------------------------------------- // -CWidgetClient* CWidgetClient::NewL(MWidgetCallback& aWidgetCallback, - MWidgetEngineCallbacks& aWidgetEngineCallback, - WidgetPreferences* preferences) +CWidgetClient* CWidgetClient::NewL( MWidgetCallback& aWidgetCallback, + MJSObjectProtector* protector, + MWidgetEngineCallbacks& aWidgetEngineCallback, + WidgetPreferences* preferences + ) { CWidgetClient* self = new ( ELeave ) CWidgetClient(aWidgetCallback, aWidgetEngineCallback, preferences); CleanupStack::PushL( self ); - self->ConstructL(aWidgetEngineCallback); + self->ConstructL(aWidgetEngineCallback, protector); CleanupStack::Pop(); return self; } @@ -92,10 +94,6 @@ // CWidgetClient::~CWidgetClient() { - if (m_jswidget) { - KJS::Collector::unprotect(m_jswidget); - } - delete m_renderer; } @@ -107,11 +105,10 @@ // // ---------------------------------------------------------------------------- // -void CWidgetClient::ConstructL(MWidgetEngineCallbacks& aWidgetEngineCallback) +void CWidgetClient::ConstructL(MWidgetEngineCallbacks& aWidgetEngineCallback, MJSObjectProtector* protector) { - m_jswidget = new KJS::JSWidget(this); + m_jswidget = new KJS::JSWidget(this, protector); m_renderer = new (ELeave) WidgetRenderer(aWidgetEngineCallback); - KJS::Collector::protect(m_jswidget); } @@ -280,6 +277,18 @@ } // ---------------------------------------------------------------------------- +// CWidgetClient::setNavigationType +// +// +// +// ---------------------------------------------------------------------------- +// +void CWidgetClient::setNavigationType( const TDesC& aType ) +{ + m_widgetenginecallback->setNavigationType(aType); +} + +// ---------------------------------------------------------------------------- // CWidgetClient::prepareForTransition // // @@ -310,7 +319,7 @@ // // ---------------------------------------------------------------------------- // -TInt CWidgetClient::preferenceForKey( const TDesC& aKey, TPtrC& aValue ) +TInt CWidgetClient::preferenceForKey( const TDesC& aKey, HBufC*& aValue ) { TInt ret = KErrNotFound; TRAP_IGNORE( ret = m_preferences->preferenceL( aKey, aValue ) );