web_plat/launcher_api/inc/BrowserLauncher.h
changeset 0 dd21522fd290
child 36 0ed94ceaa377
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web_plat/launcher_api/inc/BrowserLauncher.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,247 @@
+/*
+* Copyright (c) 2002-2004 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:  Browser launcher service. Clients can instruct the Browser to 
+*                download something.
+*
+*/
+
+
+
+#ifndef BROWSERLAUNCHER_H
+#define BROWSERLAUNCHER_H
+
+//  INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <FavouritesDb.h>
+
+// FORWARD DECLARATIONS
+class CBrowserLauncherExtension;
+class MDownloadedContentHandler;
+class MAknServerAppExitObserver;
+class TBrowserOverriddenSettings;
+
+// CLASS DECLARATION
+
+/**
+*  Browser Launcher.
+*  It launches the Browser application embedded to download the required 
+*  content. The operation can be cancelled with Cancel().
+*
+*  @lib BrowserLauncher.lib
+*  @since Series 60 2.0
+*/
+NONSHARABLE_CLASS( CBrowserLauncher ): public CBase
+    {
+	public: // Constructors and destructor
+
+		/** 
+		* Two-phased constructor. Launch Kimono Browser.
+        * @return The created instance of CBrowserLauncher
+        */
+		IMPORT_C static CBrowserLauncher* NewL();
+		
+		/** 
+		* Two-phased constructor. Launch Kimono Browser.
+        * @return The created instance of CBrowserLauncher
+        */		
+		IMPORT_C static CBrowserLauncher* NewLC();
+
+		/** 
+		* Two-phased constructor. Launch BrowserNG.
+		* DEPRICATED - DO NOT USE
+        * @param aOverrideBrowserUid Uid of BrowseNG
+        * @return The created instance of CBrowserLauncher
+        */
+		IMPORT_C static CBrowserLauncher* NewL( TInt /*aOverrideBrowserUid*/ );
+		
+		/** 
+		* Two-phased constructor. Launch BrowserNG.
+		* DEPRICATED - DO NOT USE
+        * @param aOverrideBrowserUid Uid of BrowseNG
+        * @return The created instance of CBrowserLauncher
+        */		
+		IMPORT_C static CBrowserLauncher* NewLC( TInt /*aOverrideBrowserUid*/ );
+
+		/**
+		* Destructor
+		*/
+		IMPORT_C virtual ~CBrowserLauncher();
+
+	public: // New functions
+
+        // Asynchronous methods -----------------------------------------------
+
+        /**
+        * Launch the Browser embedded with the given parameters. Asynchronous 
+        * operation.
+        * @param aParams Parameters to pass to the browser through the OpenFileL method.
+        * @param aContentHandler Implementation of the file based content handler.
+        * @param aExitObserver Embedded Browser application exit observer.
+        * @param aSettings Overridden user preferences. Ownership is not taken!
+        * @return None
+        */
+        IMPORT_C void LaunchBrowserEmbeddedL
+                      ( const TDesC& aParams, 
+                        MDownloadedContentHandler* aContentHandler = NULL, 
+                        MAknServerAppExitObserver* aExitObserver = NULL, 
+                        TBrowserOverriddenSettings* aSettings = NULL );
+
+        /**
+        * Launch the Browser embedded with the given parameters. Asynchronous 
+        * operation.
+        * @param aContextId Context ID.
+        * @param aContentHandler Implementation of the file based content handler.
+        * @param aExitObserver Embedded Browser application exit observer.
+        * @param aSettings Overridden user preferences. Ownership is not taken!
+        * @return None
+        */
+        IMPORT_C void LaunchBrowserEmbeddedL
+                      ( TInt aContextId, 
+                        MDownloadedContentHandler* aContentHandler = NULL, 
+                        MAknServerAppExitObserver* aExitObserver = NULL, 
+                        TBrowserOverriddenSettings* aSettings = NULL );
+
+
+        // Synchronous methods -----------------------------------------------
+
+        /**
+        * Launch the Browser embedded with the given parameters. 
+        * The operation is synchronous, and waits until the Browser terminates.
+        * Be careful when using: it uses CActiveSchedulerWait!
+        * @param aParams Parameters to pass to the browser through the 
+        *                OpenFileL method.
+        * @param aContentHandler Implementation of the file based content handler.
+        * @param aSettings Overridden user preferences. Ownership is not taken!
+        * @return Integer error value returned by the embedded Browser.
+        */
+        IMPORT_C TInt LaunchBrowserSyncEmbeddedL
+                      ( const TDesC& aParams, 
+                        MDownloadedContentHandler* aContentHandler = NULL, 
+                        TBrowserOverriddenSettings* aSettings = NULL );
+
+        /**
+        * Launch the Browser embedded with the given parameters. 
+        * The operation is synchronous, and waits until the Browser terminates.
+        * Be careful when using: it uses CActiveSchedulerWait!
+        * @param aContextId Context ID.
+        * @param aContentHandler Implementation of the file based content handler.
+        * @param aSettings Overridden user preferences. Ownership is not taken!
+        * @return Integer error value returned by the embedded Browser.
+        */
+        IMPORT_C TInt LaunchBrowserSyncEmbeddedL
+                      ( TInt aContextId, 
+                        MDownloadedContentHandler* aContentHandler = NULL, 
+                        TBrowserOverriddenSettings* aSettings = NULL );
+
+        // Cancel method -----------------------------------------------
+
+        IMPORT_C void Cancel();
+
+    private: // Constructors
+    
+    	/**
+    	* Default constructor
+    	*/
+         CBrowserLauncher();
+         
+        /** 
+        * Second phase constructor
+        */
+        void ConstructL();
+
+    private: // New functions
+
+        /**
+        * Launch the Browser embedded with the given parameters. Asynchronous 
+        * operation.
+        * @param aParams Parameters to pass to the browser through the OpenFileL method.
+        * @param aContextId Context ID.
+        * @param aContentHandler Implementation of the file based content handler.
+        * @param aExitObserver Embedded Browser application exit observer.
+        * @param aSettings Overridden user preferences. Ownership is not taken!
+        * @return None.
+        */
+        void LaunchBrowserEmbeddedL
+                      ( const TDesC& aParams, 
+                        TInt aContextId, 
+                        MDownloadedContentHandler* aContentHandler, 
+                        MAknServerAppExitObserver* aExitObserver, 
+                        TBrowserOverriddenSettings* aSettings );
+
+        TInt FolderByContextIdL( TUint32 aContextId );
+        TInt BookmarksIdByFolderIdL( TUint32 aFolderId );
+        TBool EnhancedSeamlessLinkLocalFeaturesSupportedL();
+
+    private: // Data members
+
+        // Extension. Owned.
+        CBrowserLauncherExtension* iExtension; 
+        
+        // The Uid of the Browser to lauch. ( KimonoBrowser/BrowserNG )
+        TUid iBrowserUid;
+
+        RFavouritesSession iFavouritesSess;
+
+    private:
+
+        friend class CBrowserLauncherExtension;
+    };
+
+// CLASS DECLARATION
+
+/**
+*  TLauncherPackageUtils
+*  Helper class to pack data on client side, and unpack the same data on server
+*  side, that was sent through IPC
+*/
+class TLauncherPackageUtils
+    {
+	public:
+		/**
+		* Client packs the data that is about to send throudh IPC.
+	    * @param aEmbeddingAppUid The embedding application`s UID		
+	    * @param aSettings Overridden user preferences. Ownership is not taken!
+	    * @param aFolderUid The Uid of the folder that the Browser should open.
+	    * @param seamlessParam	    	    
+	    * @param aIsContentHandlerRegistered True if a content handler is registered
+		* @return The packed data that can be send through IPC.
+		*/		
+		static HBufC8* PackLauncherDataL( const TUid aEmbeddingAppUid, 
+										  const TBrowserOverriddenSettings* aSettings, 
+										  TInt folderUid, 
+										  const TDesC& seamlessParam, 
+										  TBool aIsContentHandlerRegistered );
+		
+		/**
+		* Server unpacks the data that was sent from client throudh IPC.
+		* The method sets the parameters values.
+	    * @param aEmbeddingAppUid The embedding application`s UID
+	    * @param aSettings Overridden user preferences. Ownership is not taken!
+	    * @param aFolderUid The Uid of the folder that the Browser should open.
+	    * @param aSeamlessParam 
+	    * @param aData Data to unpack.
+	    * @param aIsContentHandlerRegistered True if a content handler is registered
+	    * @param aIsOverriddenSettings True if the client set an overridden setting
+		*/		
+		static void UnPackLauncherDataL( TUid& aEmbeddingAppUid, 
+										 TBrowserOverriddenSettings* aSettings, 
+										 TInt& aFolderUid, 
+										 TPtrC& aSeamlessParam, 
+										 const TDesC8& aData, 
+										 TBool& aIsContentHandlerRegistered, 
+										 TBool& aIsOverriddenSettings );
+    };
+
+#endif // BROWSERLAUNCHER_H
\ No newline at end of file