--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tzservices/tzserver/test/switest/inc/cswitestsecurityinstuihandler.h Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,346 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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 contains CCSwiTestSecurityInstUIHandler
+//
+//
+
+#ifndef CSWITESTSECURITYINSTUIHANDLER_H_
+#define CSWITESTSECURITYINSTUIHANDLER_H_
+
+// Epoc Include
+#include <swi/msisuihandlers.h>
+
+/*@{*/
+//Macros
+#define KUserNameMaxLength 64
+#define KPassword 64
+/*@}*/
+
+enum KMyErrCode
+ {
+ KErrNothing,
+ KErrLanguage,
+ KErrDrive,
+ KErrOptions,
+ KErrAbortInstall,
+ KErrAbortUnInstall,
+ KErrLeave,
+ KErrCannotOverwriteFile,
+ KErrError
+ };
+
+/**
+This represents the User Interface handler for the install engine
+The higher code should provide one of these interfaces for the engine
+to use for a UI.
+
+@publishedPartner
+@released
+*/
+using namespace Swi;
+
+class CSwiTestSecurityInstUIHandler : public CBase, public Swi::MUiHandler
+// This represents the User Interface handler for the install engine
+// The higher code should provide one of these interfaces for the engine
+// to use for a UI
+ {
+ public:
+ static CSwiTestSecurityInstUIHandler* NewL();
+
+ ~CSwiTestSecurityInstUIHandler();
+
+ /**
+ * Displays a dialog at the beginning of an installation with details about the SISX package
+ * being installed. This dialog must be shown in TrustedUI mode.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aLogo The logo data in the SISX file. If no logo is present it will be NULL.
+ * @param aCertificates An array of end entity certificates, one for each chain in the SISX file.
+ * If the SISX file is unsigned this array will have zero length.
+ *
+ * @note Trusted UI
+ *
+ * @return ETrue if the user pressed the Yes button to continue the install,
+ * EFalse if the user pressed the No button, aborting the installation.
+ */
+ TBool DisplayInstallL (const CAppInfo& aAppInfo,
+ const CApaMaskedBitmap* aLogo,
+ const RPointerArray <CCertificateInfo> & aCertificates);
+ /**
+ * Displays a dialog requesting that the user grants these capabilities to the SISX package
+ * being installed. This dialog must be shown in TrustedUI mode.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aCapabilitySet The capabilities requested by the SISX package.
+ *
+ * @note Trusted UI
+ *
+ * @return ETrue to continue the installation, or EFalse to abort the installation.
+ */
+ TBool DisplayGrantCapabilitiesL(const CAppInfo& aAppInfo,
+ const TCapabilitySet& aCapabilitySet);
+
+ /**
+ * Requests preferred language and dialect information from the UI.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aLanguages Array of languages supported by the SIS file.
+ *
+ * @return Must return index in the passed array that corresponds to the user's selected
+ * preferred language. If out-of-bounds value is returned, the engine will abort
+ * installation.
+ */
+ TInt DisplayLanguageL(const CAppInfo& aAppInfo,
+ const RArray<TLanguage>& aLanguages);
+
+ /**
+ * Requests the drive to install the package on, from the UI.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aSize Total size of the files that will be installed on the configurable drive.
+ * @param aDriveLetters Array of drive letters on which the package can be installed.
+ * @param aDriveSpaces Array of space free (in bytes) on each of the drives in the aDriveLetters array.
+ *
+ * @return An index in the drive array. If the index is out of range the engine will abort
+ * the installation.
+ */
+ TInt DisplayDriveL(const CAppInfo& aAppInfo,
+ TInt64 aSize,
+ const RArray<TChar>& aDriveLetters,
+ const RArray<TInt64>& aDriveSpaces);
+
+ /**
+ * Displays a dialog asking whether we want to upgrade an application present on the device.
+ *
+ * @param aAppInfo Information about the application being installed.
+ * @param aExistingAppInfo Information about the existing application.
+ *
+ * @return ETrue if the user pressed the Yes button,
+ * EFalse if the user pressed the No button.
+ */
+ TBool DisplayUpgradeL(const CAppInfo& aAppInfo,
+ const CAppInfo& aExistingAppInfo);
+
+ /**
+ * Displays a dialog box asking which options the user wishes to install.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aOptions An array of option names.
+ * @param aSelections An array of booleans, corresponding to the aOptions array.
+ *
+ * @return ETrue on success, EFalse on error.
+ */
+ TBool DisplayOptionsL(const CAppInfo& aAppInfo,
+ const RPointerArray<TDesC>& aOptions,
+ RArray<TBool>& aSelections);
+
+ /**
+ * Informs the UI of events occurring during installation.
+ *
+ * @param aEvent The event which has occurred.
+ * @param aValue The value associated with the event if applicable.
+ * @param aDes A descriptor associated with the event if applicable.
+ */
+ TBool HandleInstallEventL(const CAppInfo& aAppInfo,
+ TInstallEvent aEvent,
+ TInt aValue=0,
+ const TDesC& aDes=KNullDesC);
+ /**
+ * Informs the UI of cancellable events occurring during installation.
+ *
+ * @param aEvent The event which has occurred.
+ * @param aCancelHandler This mix-in is used to inform Software Install that the user has
+ * pressed the cancel button on the dialog.
+ * @param aValue The value associated with the event if applicable.
+ * @param aDes A descriptor associated with the event if applicable.
+ */
+ void HandleCancellableInstallEventL(const CAppInfo& aAppInfo,
+ TInstallCancellableEvent aEvent,
+ MCancelHandler& aCancelHandler,
+ TInt aValue=0,
+ const TDesC& aDes=KNullDesC);
+ /**
+ * Displays a dialog indicating that the package is unsigned, or that signature validation has failed.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aSigValidationResult The result of signature validation.
+ * @param aPkixResult Results of a validation of the PKIX certificate chain.
+ * Note that is can be NULL, in this case no validation results are available.
+ * @param aCertificates An array containing information about the certificates in the chain.
+ * @param aInstallAnyway ETrue if installation is allowed to continue.
+ *
+ * @return ETrue to continue the installation, EFalse to abort.
+ */
+ TBool DisplaySecurityWarningL(const CAppInfo& aAppInfo,
+ Swi::TSignatureValidationResult aSigValidationResult,
+ RPointerArray<CPKIXValidationResultBase>& aPkixResults,
+ RPointerArray<CCertificateInfo>& aCertificates,
+ TBool aInstallAnyway);
+
+ /**
+ * Displays a dialog indicating that there was an error carrying out online certificate status checking.
+ *
+ * @param aMessage The error which occurred during online certificate status checking
+ * @param aOutcome The outcome of the OCSP check. If no outcome can be given, it will be NULL.
+ * @param aWarningOnly ETrue if the installation is allowed to continue after a warning, EFalse otherwise.
+ *
+ * @return ETrue on success, EFalse on error.
+ */
+ TBool DisplayOcspResultL(const CAppInfo& aAppInfo,
+ TRevocationDialogMessage aMessage,
+ RPointerArray<TOCSPOutcome>& aOutcomes,
+ RPointerArray<CCertificateInfo>& aCertificates,
+ TBool aWarningOnly);
+
+ /**
+ * Used to inform the user the installation they are attempting is trying to overwrite
+ * a file that does not belong to it. Following this message installation is aborted.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aInstalledAppInfo Information about the application that owns the file in question.
+ * @param aFileName The filename of the file in question
+ */
+ void DisplayCannotOverwriteFileL(const CAppInfo& aAppInfo,
+ const CAppInfo& aInstalledAppInfo,
+ const TDesC& aFileName);
+
+ /**
+ * Displays a dialog at the start of the uninstallation with information about the application
+ * to be uninstalled. The user may cancel the uninstallation at this stage. This dialog must
+ * be shown in TrustedUI mode.
+ *
+ * @param aAppInfo Information about the application.
+ *
+ * @note Trusted UI
+ *
+ * @return ETrue to continue the uninstallation, or EFalse to abort the uninstallation.
+ */
+ TBool DisplayUninstallL(const CAppInfo& aAppInfo);
+
+
+ /**
+ * Displays a dialog containing text. This dialog has only a Continue button if aOption is
+ * EInstFileTextOptionContinue, or Yes and No buttons otherwise.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aOption The type of dialog box to display.
+ * @param aText The text to display
+ *
+ * @return ETrue is the user wants to go forward, EFalse otherwise.
+ */
+ TBool DisplayTextL(const CAppInfo& aAppInfo,
+ TFileTextOption aOption,
+ const TDesC& aText);
+
+ /**
+ * Displays a dialog showing an error message.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aType The error message to display.
+ * @param aParam An error specific parameter.
+ */
+ void DisplayErrorL(const CAppInfo& aAppInfo,
+ TErrorDialog aType,
+ const TDesC& aParam);
+
+ /**
+ * Displays a dialog indicating that a component which is being uninstalled is a dependency
+ * of another component installed.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aComponents An array of components which depend on components of the application
+ *
+ * @return ETrue to continue the uninstallation, EFalse to abort.
+ */
+ TBool DisplayDependencyBreakL(const CAppInfo& aAppInfo,
+ const RPointerArray<TDesC>& aComponents);
+
+ /**
+ * Informs user that the applications are in use during an uninstallation.
+ * Return ETrue if the user wishes to continue the removal process and
+ * close the applications anyway
+ *
+ * @param aAppNames An array containing the name of the application in use.
+ *
+ * @return ETrue if the user wishes to continue with removal.
+ */
+ TBool DisplayApplicationsInUseL(const CAppInfo& aAppInfo, const RPointerArray<TDesC>& aAppNames);
+
+ /**
+ * Displays a generic question dialog with a Yes/No answer.
+ *
+ * @param aAppInfo Information about the application.
+ * @param aQuestion The question to ask.
+ * @param aDes A descriptor associated with the question if applicable.
+ *
+ * @return ETrue if the user pressed the Yes button,
+ * EFalse if the user pressed the No button.
+ */
+ TBool DisplayQuestionL(const CAppInfo& aAppInfo, TQuestionDialog aQuestion, const TDesC& aDes=KNullDesC);
+
+ /**
+ * Used to inform the user of a missing dependency needed to install the
+ * current package. It is up to the UI implementors and/or the user whether
+ * or not this warning can be overridden.
+ *
+ * @param aAppInfo Info about the current application.
+ * @param aDependencyName Name of the missing dependency.
+ * @param aWantedVersionFrom Starting suitable version number of the mising
+ * dependency. Can be all zeros, meaning it is
+ * unknown.
+ * @param aWantedVersionFrom Ending suitable version number of the mising
+ * dependency. Can be all zeros, meaning it is
+ * unknown.
+ * @param aInstalledVersion The installed (unsuitable) version of the
+ * missing dependency. Can be all zeros, meaning
+ * the missing dependency is not installed.
+ *
+ * @return \e ETrue to continue installation, \e EFalse to abort.
+ */
+ TBool DisplayMissingDependencyL(
+ const CAppInfo& aAppInfo,
+ const TDesC& aDependencyName,
+ TVersion aWantedVersionFrom,
+ TVersion aWantedVersionTo,
+ TVersion aInstalledVersion);
+
+
+
+
+ TBool iDispInstall;
+ TBool iDispGrantCapabilities;
+ TBool iDispUnInstall;
+ TInt iDispLanguage;
+ TInt iDispDialect;
+ TChar iDispDrive;
+ TBool iDispUpgrade;
+ TBool iDispDependencyBreak;
+ TBool iDispQuestion;
+ TBool iDispSecurityWarning;
+ TBool iDispRevocationQuery;
+ TBool iDispApplicationInUse;
+ TBool iDispTextDialog;
+ TInt iDispOptions;
+ TInt iAppUID;
+
+ KMyErrCode iErrCode;
+
+ private:
+ CSwiTestSecurityInstUIHandler();
+ void ConstructL();
+ };
+
+
+
+#endif /*CSWICSwiTestSecurityInstUIHandler_H_*/