Revision: 201006 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 12 Mar 2010 15:43:05 +0200
branchRCL_3
changeset 45 dbd79466b1ed
parent 41 d6c1cc3e4806
child 46 5dedbccec665
Revision: 201006 Kit: 201008
browserplugins/browseraudiovideoplugin/inc/BavpPlugin.h
browserplugins/browseraudiovideoplugin/src/BavpControllerVideo.cpp
browserplugins/browseraudiovideoplugin/src/BavpPlugin.cpp
browserui/browser/BrowserAppSrc/BrowserAppUi.cpp
browserui/browser/BrowserAppSrc/BrowserPreferences.cpp
browserui/browser/BrowserAppSrc/BrowserSpecialLoadObserver.cpp
browserui/browser/BrowserAppSrc/BrowserWindow.cpp
browserui/browser/FavouritesSrc/BrowserBookmarksView.cpp
browserui/browser/FeedsSrc/FeedsEditFeedDialog.cpp
browserui/browser/IadSis/buildIADsis.pl
browserui/browser/IadSis/createIADpackages.pl
--- a/browserplugins/browseraudiovideoplugin/inc/BavpPlugin.h	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserplugins/browseraudiovideoplugin/inc/BavpPlugin.h	Fri Mar 12 15:43:05 2010 +0200
@@ -277,7 +277,8 @@
         // Mime type. Added for scripting functionality
         HBufC8* iMimeType;
         NPP iNPP;
-
+        //browser plugin state, used for play and resume 
+        TBool iPauseState; 
     };
 
 /**
--- a/browserplugins/browseraudiovideoplugin/src/BavpControllerVideo.cpp	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserplugins/browseraudiovideoplugin/src/BavpControllerVideo.cpp	Fri Mar 12 15:43:05 2010 +0200
@@ -863,6 +863,10 @@
     iBavpView->UpdateView();
 
     iVideoPlayer->SetPositionL( iClipInfo->iPosition );
+    //Fix for "EABU-7ZW9YT" if the pause is initiated for foreground to background and also for plugin invisible and plugin playpause
+    if(iCurrentState == EBavpPaused)
+        iCurrentState = EBavpPlaying;
+
     iVideoPlayer->Play();
   // ETwelveOClock: Timer tick is on the second - from Symbian
   if (!iBackLightUpdater->IsActive())
--- a/browserplugins/browseraudiovideoplugin/src/BavpPlugin.cpp	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserplugins/browseraudiovideoplugin/src/BavpPlugin.cpp	Fri Mar 12 15:43:05 2010 +0200
@@ -43,7 +43,8 @@
 // -----------------------------------------------------------------------------
 CBavpPlugin::CBavpPlugin()
     : iError( EFalse ),
-    iMimeType( NULL )
+    iMimeType( NULL ), 
+    iPauseState ( EFalse )
     {
     
     }
@@ -344,9 +345,51 @@
                 // If Browser in-focus, we send this plugin aParam=ETrue, if
                 // the plugin is (was) in-focus or activated.
                 iBavpController->HandleBrowserNotification( TBool(aParam) );
+ 				if(!aParam) //app background
+                    {
+                    if(EBavpPlaying == iBavpController->State()) 
+                        { 
+                        iPauseState = ETrue; 
+                        iBavpController->PauseL(); 
+                        }
+                    }
+                else    //app foreground  
+                    { 
+                    if(EBavpPaused == iBavpController->State() && iPauseState) 
+                       { 
+                       iPauseState = EFalse; 
+                       iBavpController->PlayL();
+                       }
+                    
+                    }
+                
                 }
             break;
 
+        case EPluginPause :
+            if( !aParam )
+               {
+                if(iBavpController  && iPauseState && (iBavpController->State() == EBavpPaused))
+                    { 
+                    iPauseState = EFalse; 
+                    iBavpController->PlayL(); 
+                    }
+               } 
+
+            break; 
+        case EPluginInvisible : 
+            if( !aParam )
+                {
+                if ( iBavpController  && (!iPauseState) ) //plugin background 
+                       { 
+                       if(EBavpPlaying == iBavpController->State()) 
+                           { 
+                           iPauseState = ETrue; 
+                           iBavpController->PauseL(); 
+                           }
+                       }
+                } 
+				break; 
         default:
             // Not implemented
             break;
--- a/browserui/browser/BrowserAppSrc/BrowserAppUi.cpp	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserui/browser/BrowserAppSrc/BrowserAppUi.cpp	Fri Mar 12 15:43:05 2010 +0200
@@ -39,6 +39,7 @@
 #include <AiwGenericParam.h>
 #include <AknDef.h>
 #include <DocumentHandler.h>
+#include <SysUtil.h>
 
 #ifdef BRDO_APP_GALLERY_SUPPORTED_FF
 #include <MGXFileManagerFactory.h>
@@ -121,6 +122,8 @@
 _LIT( KDefaultSchema, "http://" );
 const TInt KDefaultSchemaLength = 7;
 
+const TInt KMinimumCDriveDiskSpace = 512 * 1024;
+
 // ================= MEMBER FUNCTIONS =======================
 
 // -----------------------------------------------------------------------------
@@ -272,6 +275,19 @@
 //
 void CBrowserAppUi::InitBrowserL()
     {
+    RFs fs;
+    User::LeaveIfError(fs.Connect());
+    TInt drive( EDriveC );
+    TBool isSpace( EFalse );
+    TInt err( KErrNone );
+    TRAP( err, isSpace = !SysUtil::DiskSpaceBelowCriticalLevelL(
+                                                &fs,
+                                                KMinimumCDriveDiskSpace,
+                                                drive ));
+    fs.Close();
+    if (!isSpace)
+        User::Leave(KErrDiskFull);
+
     if (!iStartedUp)
         {
         LOG_ENTERFN( "CBrowserAppUi::InitBrowser" );
@@ -1236,7 +1252,13 @@
             if ( (Preferences().AccessPointSelectionMode() == EConnectionMethod) || 
                  (Preferences().AccessPointSelectionMode() == EAlwaysAsk) )
                 {
-    			iRequestedAp = Preferences().DefaultAccessPoint();
+                iRequestedAp = Preferences().DefaultAccessPoint();
+#ifdef BRDO_OCC_ENABLED_FF //Setting ap should not be taken if OCC is enabled, instead bookmark ap should be taken
+#ifndef __WINS__
+                iRequestedAp = aAccessPoint.ApId();
+                BROWSER_LOG( ( _L( "Bookmark Iap id : %d" ), iRequestedAp ) );
+#endif
+#endif                
                 }
             else if ( Preferences().AccessPointSelectionMode() == EDestination ) 
                 {
@@ -1254,6 +1276,7 @@
         // it's ok to assign in the case of EDest, since CBrCtl doesn't use the apId passed in LoadUrlL()
         TUint32 IAPid = iRequestedAp;
         TUint32 defaultSnap =  iPreferences->DefaultSnapId();
+#ifndef BRDO_OCC_ENABLED_FF
         // if no AP or SNAP is defined, define it
         if( (iRequestedAp == KWmlNoDefaultAccessPoint && iPreferences->AccessPointSelectionMode() == EConnectionMethod) || 
             (defaultSnap == KWmlNoDefaultSnapId && iPreferences->AccessPointSelectionMode() == EDestination) )
@@ -1285,7 +1308,7 @@
     		IAPid = Util::IapIdFromWapIdL( *this, iRequestedAp );  // Get currently active ap
     		BROWSER_LOG( ( _L( "No AP 2" ) ) );
             }
-
+#endif // BRDO_OCC_ENABLED_FF
 #else	//we can use any numbers here
         // alr: snap on emulator should not exist; use cm mode instead?
 		iRequestedAp = 2;
@@ -1888,7 +1911,8 @@
            
 	        if( !specialSchemeInHomePageAddress )
 	            {
-	        	ActivateLocalViewL( LastActiveViewId() );
+                if( iCurrentView != iLastViewId )
+                    ActivateLocalViewL( LastActiveViewId() );
 	            }
         	}        	   	  
         }
--- a/browserui/browser/BrowserAppSrc/BrowserPreferences.cpp	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserui/browser/BrowserAppSrc/BrowserPreferences.cpp	Fri Mar 12 15:43:05 2010 +0200
@@ -20,6 +20,7 @@
 
 
 // INCLUDE FILES
+#include <browser_platform_variant.hrh>
 #include <s32stor.h>
 #include <eikappui.h>
 #include <eikapp.h>
@@ -544,7 +545,11 @@
     TInt ap;
 
     // Read Accesss point selection mode for advanced settings
+#ifdef BRDO_OCC_ENABLED_FF
+    const TInt selectionMode = EBrowserCenRepApSelModeAlwaysAsk;
+#else
     const TInt selectionMode = GetIntValue( KBrowserAccessPointSelectionMode );
+#endif
     switch ( selectionMode )
         {
         case EBrowserCenRepApSelModeUserDefined:
--- a/browserui/browser/BrowserAppSrc/BrowserSpecialLoadObserver.cpp	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserui/browser/BrowserAppSrc/BrowserSpecialLoadObserver.cpp	Fri Mar 12 15:43:05 2010 +0200
@@ -18,6 +18,7 @@
 
 
 // INCLUDE FILES
+#include <browser_platform_variant.hrh>
 #include "BrowserContentView.h"  // not used, to be removed
 #include "BrowserSpecialLoadObserver.h"
 #include "BrowserLoadObserver.h"
@@ -142,7 +143,7 @@
         TBool isValid( EFalse );
         TUint32 ap( 0 );
         TInt err( KErrNone );
-
+#ifndef BRDO_OCC_ENABLED_FF
 		BROWSER_LOG((_L("AP selectionMode: %d."),
     	iApiProvider->Preferences().AccessPointSelectionMode() ));
 
@@ -257,8 +258,10 @@
         		{
         		BROWSER_LOG((_L("wrong type of connection")));	
         		}
-        	} //switch	
- 		
+        	} //switch
+#else //BRDO_OCC_ENABLED_FF
+        isValid = ETrue; 
+#endif //BRDO_OCC_ENABLED_FF
 		BROWSER_LOG((_L("isValid 2: %d"), isValid));
         if( isValid )
             {
--- a/browserui/browser/BrowserAppSrc/BrowserWindow.cpp	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserui/browser/BrowserAppSrc/BrowserWindow.cpp	Fri Mar 12 15:43:05 2010 +0200
@@ -229,6 +229,7 @@
 		TBrCtlDefs::ECapabilityFavicon |
         TBrCtlDefs::ECapabilityToolBar |
         TBrCtlDefs::ECapabilityFitToScreen |
+        TBrCtlDefs::ECapabilityPinchZoom |  
         autoLaunch );
         
 	if ( Preferences().UiLocalFeatureSupported( KBrowserGraphicalPage ))
--- a/browserui/browser/FavouritesSrc/BrowserBookmarksView.cpp	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserui/browser/FavouritesSrc/BrowserBookmarksView.cpp	Fri Mar 12 15:43:05 2010 +0200
@@ -2192,7 +2192,9 @@
 //
 void CBrowserBookmarksView::DimToolbarButtons(TBool aDimButtons)
     {
-    Toolbar()->SetDimmed(aDimButtons);
+    Toolbar()->SetItemDimmed( EWmlCmdAddBookmark, aDimButtons , ETrue );
+    Toolbar()->SetItemDimmed( EWmlCmdGoToAddress, aDimButtons , ETrue );
+    Toolbar()->SetItemDimmed( EWmlCmdDelete, aDimButtons , ETrue );
     if (!aDimButtons)
         {
         // when undimming buttons we may not want them all back on
@@ -2393,8 +2395,7 @@
         sender.SendAddressL( );
         }
 
-    Container()->Listbox()->ClearSelection();
-    Container()->Listbox()->SetCurrentItemIndexAndDraw( 0 );
+    Container()->Listbox()->SetCurrentItemIndexAndDraw( Container()->Listbox()->CurrentItemIndex());
     }
 
 
--- a/browserui/browser/FeedsSrc/FeedsEditFeedDialog.cpp	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserui/browser/FeedsSrc/FeedsEditFeedDialog.cpp	Fri Mar 12 15:43:05 2010 +0200
@@ -135,14 +135,11 @@
         }
     else
         {
+        CAknForm::HandlePointerEventL(aPointerEvent);
         if ((iSelectedDlgLine == EFeedsEditAutomaticUpdatingId) && (aPointerEvent.iType == TPointerEvent::EButton1Up))
             {
             HandleFreqCmdL();
             }
-        else
-            {
-            CAknForm::HandlePointerEventL(aPointerEvent);
-            }   
         }
     }
 
--- a/browserui/browser/IadSis/buildIADsis.pl	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserui/browser/IadSis/buildIADsis.pl	Fri Mar 12 15:43:05 2010 +0200
@@ -1,23 +1,22 @@
-#
-# Copyright (c) 2008 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".
+#!/usr/local/bin/perl -w
+# ============================================================================
+# Name        : buildIADsis.pl
+# Description: Creates SIS installation packages for S60 Browser that
+#	     meets Arrow/IAD program requirements for delivery to end-user devices.
+#	    Also generates R&D signed SIS packages for Nokia R&D internal use.
 #
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:  Creates SIS installation packages for S60 Browser that
-#       meets Arrow/IAD program requirements for delivery to end-user devices.
-#       Also generates R&D signed SIS packages for Nokia R&D internal use.
-#
+# Copyright © 2008 Nokia.  All rights reserved.
+# This material, including documentation and any related computer
+# programs, is protected by copyright controlled by Nokia.  All
+# rights are reserved.  Copying, including reproducing, storing,
+# adapting or translating, any or all of this material requires the
+# prior written consent of Nokia.  This material also contains
+# confidential information which may not be disclosed to others
+# without the prior written consent of Nokia.
+# ============================================================================
 
 # TODOs
-#       Baseline whatlog and build whatlog need to be processed and compared 
+#			Baseline whatlog and build whatlog need to be processed and compared 
 
 # Notes for maintainers:
 # Versioning guide:
@@ -40,31 +39,36 @@
 Usage: buildIADsis.pl -opmode dev -appversion 7.1.2 -binversion 10.1 -variant 01  -nocache -verbose
 
 Mandatory arguments: 
-  -opmode : either dev or integration. If integration, use filelist argument below
-  -appversion: Browser version as a string e.g 7.1.420 (major.minor.build). Minor must be 1 digit.
-  -variant: S60 platform specific variant code. E.g for 3.23: 01->English, 22->Chinese etc.
+ -opmode : either dev or integration. If integration, use filelist argument below
+ -appversion: Browser version as a string e.g 7.1.420 (major.minor.build). Minor must be 1 digit.
+ -platform: S60 platform. E.g 3.23 or 5.0 
+ -variant: S60 platform specific variant code. E.g for 3.23: 01->English, 22->Chinese etc.
 
-Optional arguments:
-  -filelist:     A text file containing list of files to include in the PKG 
-                    File paths must be of the form \epoc32\dir\urel\file.ext
-  -binversion:   version to inject inside all EXEs and DLLs. Must be 10.0 or higher.
-  -nocache:      does everything cleanly, no old data used
-  -verbose:      Turns on debug statements
-  -webkey:       Web signing key filename 
-  -webcert:      Web signing certificate filename
-  -cenrepkey:    Cenrep signing key filename
-  -cenrepcert:   Cenrep signing certificate filename
-
+Optional arguments:  
+ -platform:     S60 platform. Such as S60.323 or S60.50 
+ -filelist: 		A text file containing list of files to include in the PKG 
+            		File paths must be of the form \epoc32\dir\urel\file.ext
+ -binversion: 	version to inject inside all EXEs and DLLs. Must be 10.0 or higher.
+ -nocache: 			does everything cleanly, no old data used
+ -verbose: 			Turns on debug statements
+ -webkey:				Web signing key filename 
+ -webcert: 			Web signing certificate filename
+ -cenrepkey: 		Cenrep signing key filename
+ -cenrepcert: 	Cenrep signing certificate filename
+			 
+  For quick primer on differences between Application version and Binary version, see: 
+  http://s60wiki.nokia.com/S60Wiki/How_to_guide_for_versioning
 };
 
-my ($rawFilelist,$appVersion, $binVersion, $variant,$opmode,$lang_code);
+my ($s60platform, $rawFilelist,$appVersion, $binVersion, $variant,$opmode,$lang_code);
 my (@variants);
 my $langgroup;
 my $type = "rnd";
 my $brExe_UID3 = "0x10008D39"; #Unique ID for Browser application
 my $packageTypeMajor = "RU";  # even though we use SA,RU, mention the RU in filename since it sounds more important
 #TODO: We should be able to query the S60 platform by parsing some file in epoc32. Dunno how to do this. This should NOT be hardcoded. 
-my $s60platform = "S60.323";
+# Inital value for s60Platform is S60.323
+$s60platform = "S60.323";
 my $cenrepPkg = ".\\pkg\\BrowserNG_Cenrep.pkg";
 my $cenrepSis = "BrowserNG_Cenrep.sis";
 my $finalBrowserPkg = ".\\pkg\\BrowserNG.pkg";
@@ -76,10 +80,13 @@
 my $webcert = ".\\cert\\RDTest_02.der";
 my $cenrepkey = ".\\cert\\RDTest_02.key";
 my $cenrepcert = ".\\cert\\RDTest_02.der";
+my $buildType = "urel";
 
 my @cleanupList = ();
 
-GetOptions( "appversion=s",\$appVersion,
+GetOptions(
+      "platform=s", \$s60platform,  
+      "appversion=s",\$appVersion,
 			"binversion=s",\$binVersion,
             "variant=s",\$variant,
 			"opmode=s",\$opmode,
@@ -89,7 +96,8 @@
 			"webkey=s", \$webkey,
 			"webcert=s", \$webcert,
 			"cenrepkey=s", \$cenrepkey,
-			"cenrepcert=s", \$cenrepcert
+			"cenrepcert=s", \$cenrepcert,
+			"build=s", \$buildType
 			);
 
 
@@ -143,9 +151,14 @@
   }
   print STDOUT "\n=== SIS filename: $browserSIS \n" ;
 }
+# Handle S60.50 situations 
+if ( $s60platform eq "S60.50" ) 
+{
+# May need special handling later 
+}
 
 ### Call pkg generation perl script 
-system("CreateIADpackages.pl -v $variant -p armv5 -r urel -bmajor $parsedAppVer[0] -bminor $parsedAppVer[1] -bnumber $parsedAppVer[2]"); 
+system("CreateIADpackages.pl -s $s60platform -v $variant -p armv5 -r urel -bmajor $parsedAppVer[0] -bminor $parsedAppVer[1] -bnumber $parsedAppVer[2] -build $buildType"); 
 
 # Pick up any files from the WHAT output that match any of these regex patterns
 my $filenameRegEx = join '|', qw( 
@@ -161,7 +174,7 @@
 								[.]exe$);
 
 							
-my $buildType = "urel";
+
 
 
 
--- a/browserui/browser/IadSis/createIADpackages.pl	Fri Feb 19 22:53:19 2010 +0200
+++ b/browserui/browser/IadSis/createIADpackages.pl	Fri Mar 12 15:43:05 2010 +0200
@@ -1,19 +1,31 @@
+#!perl
+# ============================================================================
+# Name: createIADPackages.pl 
 #
-# Copyright (c) 2008 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:  This script generate various SIS package files depeding on the 
+# Description: This script generate various SIS package files depeding on the 
 #							 depending on the variant selection. for example variant 01 will create
 #							 a package support English, French, Germany and Portuguese. 
+# 
+# Example for using this script: 
+# perl %name create_package.pl -v 15 -p armv5 -r urel -bmajor 7 -bminor 1 -bnumber 32 
+#
+# Copyright © 2008 Nokia.  All rights reserved.
+# This material, including documentation and any related computer
+# programs, is protected by copyright controlled by Nokia.  All
+# rights are reserved.  Copying, including reproducing, storing,
+# adapting or translating, any or all of this material requires the
+# prior written consent of Nokia.  This material also contains
+# confidential information which may not be disclosed to others
+# without the prior written consent of Nokia.
+# ============================================================================
+#
+# TODOs
+#			If possible, make all the components configurable 
+#			Support 5.0 and onward
+# Notes: 
+# 		Currently only armv5 is supported, winscw is not supported
+#			Currently only urel is supported. udeb is not supported 
+#			Currently variant support only CCB on 323
 #
 use Getopt::Long;
 use File::Copy;
@@ -26,12 +38,13 @@
 use fcntl; 
 
 my $usage = q{
-Description: This script generate browser SISx package file automatically. 
+Description: This script generate browser sisx package file automatically. 
 This script usually is called by buildIADsis.pl. However it can be used separately as well. 
 	
-Example: create_package.pl -v 01 -p armv5 -r urel -bmajor 7 -bminor 1 -bnumber 32  
+Example: create_package.pl -s S60.323 -v 01 -p armv5 -r urel -bmajor 7 -bminor 1 -bnumber 32  
 
 Mandatory arguments: 
+-s: S60 platform. Value such as S60.323 or  S60.50
 -v: S60 language variant number
 -p: Build target platform. Valid values are: armv5 or winscw, only armv5 supported right now
 -r: Release build. Valid values are: urel or udeb, only urel supported right now 
@@ -43,8 +56,8 @@
 - None
 
 Limitations
-- This script is currently valid only for 'armv5 urel' builds on S60 3.2.3 platform.
-
+- This script only support armv5 urel currently
+- This script is valid for CCB on 323 build currently 
 }; 
 
 my %num_lang = (
@@ -81,16 +94,20 @@
 print @ARGV; 
 print "\n"; 
 
-my ($variant_num,$platform,$release,$bmajor,$bminor,$bnumber); 
+my ($s60,$variant_num,$platform,$release,$bmajor,$bminor,$bnumber,$udeburel); 
+$s60 = "S60.323"; # Initialize the default value
+$udeburel = "urel";
 #my ($test1, $test2, $test3); 
-GetOptions("v=s", => \$variant_num, "p=s",=> \$platform, "r=s",=> \$release,
-           "bmajor=s", => \$bmajor, "bminor=s",=> \$bminor, "bnumber=s",=> \$bnumber) or die $usage; 
+GetOptions("s=s", => \$s60, "v=s", => \$variant_num, "p=s",=> \$platform, "r=s",=> \$release,
+           "bmajor=s", => \$bmajor, "bminor=s",=> \$bminor, "bnumber=s",=> \$bnumber, 
+           "build=s", => \$udeburel) or die $usage; 
 print "variant $variant_num \n";
-print "platform $platform \n"; 
+print "s60platform $s60 \n"; 
 print "release $release \n";
 print "bmajor, $bmajor \n"; 
 print "bminor, $bminor \n"; 
 print "bnumber, $bnumber \n"; 
+print "build $udeburel \n"; 
  
 print "... package variant $variant_num\n";
 print "... package platform $platform \n";
@@ -115,9 +132,20 @@
 :"Nokia"
 
 ;Supports S60 3rd Edition
-[0x102032BE], 0, 0, 0, {"Series60ProductID"}
+ENDHEADER0
+# consider the platform support
+# [0x102032BE], 0, 0, 0, {"Series60ProductID"}
+# [0x1028315F], 0, 0, 0, {"Series60ProductID"}
+# if ( $s60platform eq "S60.50" ) 
+if ( $s60 eq "S60.323" ) 
+{
+    print CENPKGFILE "[0x102032BE], 0, 0, 0, \{\"Series60ProductID\"\} \n\n";
+}    
+if ( $s60 eq "S60.50" ) 
+{
+    print CENPKGFILE "[0x1028315F], 0, 0, 0, \{\"Series60ProductID\"\} \n\n";
+}    
 
-ENDHEADER0
 print CENPKGFILE "\; CenRep ini file\n";
 my $SrcDir = "\\epoc32\\data\\z\\private\\10202be9\\";
 my $TargetDir = "c:\\private\\10202be9\\"; 
@@ -153,9 +181,17 @@
 :"Nokia"
 
 ;Supports S60 3rd Edition
-[0x102032BE], 0, 0, 0, {"Series60ProductID"}
-
 ENDHEADER
+#[0x102032BE], 0, 0, 0, {"Series60ProductID"}
+#[0x1028315F], 0, 0, 0, {"Series60ProductID"}
+if ( $s60 eq "S60.323" ) 
+{
+    print PKGFILE "[0x102032BE], 0, 0, 0, \{\"Series60ProductID\"\} \n\n";
+}    
+if ( $s60 eq "S60.50" ) 
+{
+    print PKGFILE "[0x1028315F], 0, 0, 0, \{\"Series60ProductID\"\} \n\n";
+}
 
 # MIF resource files ot install
 $SrcDir = "\\epoc32\\data\\Z\\resource\\apps\\";
@@ -292,6 +328,8 @@
 $SrcDir = "\\epoc32\\data\\z\\resource\\plugins\\";
 $TargetDir = "!:\\resource\\plugins\\"; 
 print PKGFILE "\n";
+if ( $s60 eq "S60.323" ) 
+{
 @install_files = (
 	"AiwBrowserProvider",
 	"BrowserRec",
@@ -301,8 +339,6 @@
 	"DeflateFilter",
 	"HttpFilterAcceptHeader",
 	"HttpFilterAuthentication",
-	"HttpFilterCache",
-	"HttpFilterPipeliningConfig",
 	"PushMtmPushContentHandler",
 	"PushMtmWhiteListAdapter",
 	"SchemeDispatcher",
@@ -317,16 +353,52 @@
 	"npSystemInfoPlugin", 
 	"uaproffilter",
 	"widgetmemoryplugin"	
-);
+  );
+}
+# Note: Some way of figuring out what need to be on the packages and 
+#       hope we will be able to develp an algorithms for it 
+# 1. The components change you're aware of. For example gesture lib addition to browser
+# 2. Build system, you can find out what's are builded from the build system
+# 3. Search for iby files
+if ( $s60 eq "S60.50" ) 
+{
+@install_files = (
+	"AiwBrowserProvider",
+	"BrowserRec",
+	"CodRecog",
+	"CookieFilter",
+	"DdRecog",
+	"DeflateFilter",
+	"HttpFilterAcceptHeader",
+	"HttpFilterAuthentication",
+	"PushMtmPushContentHandler",
+	"PushMtmWhiteListAdapter",
+	"SchemeDispatcher",
+	"WidgetInstallerUI", 
+	"widgetRecognizer",
+	"httpfilterIop",
+	"httpfilterconnhandler",
+	"httpfilterproxy",
+	"memoryplugin",
+	"npBrowserAudioVideoPlugin",
+	"npGpsPlugin",
+	"npSystemInfoPlugin", 
+	"uaproffilter",
+	"widgetmemoryplugin"
+  );
+}
 print PKGFILE "\n";
 for my$install_file (@install_files) {
 print PKGFILE "\"$SrcDir$install_file.rsc\"\n - \"$TargetDir$install_file.rsc\" \n"; 
 }
 
 # Files to install (binaries - DLL)
-$SrcDir = "\\epoc32\\release\\armv5\\urel\\";
+$SrcDir = "\\epoc32\\release\\armv5\\" . $udeburel . "\\";
 $TargetDir = "!:\\sys\\bin\\"; 
 print PKGFILE "\n";
+
+if ( $s60 eq "S60.323" ) 
+{
 @install_files = (
 	"AiwBrowserProvider",
 	"BrowserCache",
@@ -345,13 +417,10 @@
 	"FavouritesEngine",
 	"FeedsServerApi",
 	"FeedsServerClient",
-	"HttpCacheManager",
 	"HttpDMServEng",
 	"HttpFilterAcceptHeader",
 	"HttpFilterAuthentication",
-	"HttpFilterCache",
 	"HttpFilterCommon", 
-	"HttpFilterPipeliningConfig",
 	"JavaScriptCore",
 	"MemMan",
 	"Multipartparser",
@@ -384,14 +453,77 @@
 	"widgetengine",
 	"WidgetInstaller",
 	"widgetmemoryplugin",
-	"wmlEngine"
+	"wmlEngine",
+	"jsdevice",
 );	
+}
+if ( $s60 eq "S60.50" ) 
+{
+@install_files = (
+	"AiwBrowserProvider",
+	"BrowserCache",
+	"BrowserLauncher",
+	"BrowserRec",
+	"BrowserTelService",
+	"CodDownload",
+	"CodEng",
+	"CodRecog",
+	"CodUi",
+	"ConnectionManager",
+	"DdRecog",
+	"DeflateFilter",
+	"DownloadMgr",
+	"DownloadMgrUiLib", 
+	"FavouritesEngine",
+	"FeedsServerApi",
+	"FeedsServerClient",
+	"HttpDMServEng",
+	"HttpFilterAcceptHeader",
+	"HttpFilterAuthentication",
+	"HttpFilterCommon", 
+	"JavaScriptCore",
+	"MemMan",
+	"Multipartparser",
+	"PushMtmCliSrv",
+	"PushMtmPushContentHandler",
+	"PushMtmUi",
+	"PushMtmUtil",
+	"PushMtmWhiteListAdapter",
+	"RECENTURLSTORE",
+	"SchemeDispatcher",
+	"WidgetInstallerUI",
+	"WidgetRecognizer",
+	"WidgetRegistryClient",
+	"browserdialogsprovider",
+	"browserengine",
+	"cXmlParser",
+	"cookiefilter",
+	"cookiemanager",
+	"httpfilterIop",
+	"httpfilterconnhandler",
+	"httpfilterproxy",
+	"memoryplugin",
+	"npBrowserAudioVideoPlugin",
+	"npGpsPlugin",
+	"npSystemInfoPlugin",
+	"pagescaler",
+	"uaproffilter",
+	"webkitutils",
+	"webutils",
+	"widgetengine",
+	"WidgetInstaller",
+	"widgetmemoryplugin",
+	"wmlEngine",
+	"stmgesturefw",
+	"jsdevice",
+  );		
+}
 for my$install_file (@install_files) {
 print PKGFILE "\"$SrcDir$install_file.dll\"\n - \"$TargetDir$install_file.dll\" \n"; 
 }
 
 # Files to install (binaries - EXE)
-$SrcDir = "\\epoc32\\release\\armv5\\urel\\";
+$SrcDir = "\\epoc32\\release\\armv5\\" . $udeburel . "\\";
 $TargetDir = "!:\\sys\\bin\\"; 
 print PKGFILE "\n";
 @install_files = (