webengine/widgetengine/src/WidgetClient.cpp
changeset 5 10e98eab6f85
parent 0 dd21522fd290
child 48 79859ed3eea9
--- 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 ) );