webengine/osswebengine/WebCore/platform/network/symbian/HttpUiCallbacks.h
changeset 0 dd21522fd290
child 16 a359256acfc6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpUiCallbacks.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,173 @@
+/*
+* Copyright (c) 2007 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:  
+*
+*/
+
+#ifndef __HTTPUICALLBACKS_H__
+#define __HTTPUICALLBACKS_H__
+
+#include <e32base.h>
+#include <ApEngineConsts.h>
+#include <mconnectioncallback.h>
+#include <BrCtlDownloadObserver.h>
+#include "HttpConnection.h"
+
+class RHTTPTransaction;
+class CBrCtl;
+
+class HttpUiCallbacks : public MConnectionCallback, public MBrCtlDownloadObserver
+{
+public:
+
+enum TEnterStatus
+    {
+    EEnteringSecurePage,
+    EExitingSecurePage,
+    ESomeItemsNotSecure,
+    ESubmittingToNonSecurePage,
+    ERedirectConfirmation,
+    ERepostConfirmation,
+    ESecureItemInNonSecurePage,
+    // add new items here        
+    EEnterStatusNone
+    };
+
+    HttpUiCallbacks();
+    ~HttpUiCallbacks();
+    static TInt handleErrorCb(TAny* aPtr);
+
+public: // from MConnectionCallback
+    /**
+    * This function Creates connection if it doesn't exist. Returns status of created connection.
+    * @param A reference to RConnection, typecasted as TInt
+    * @param A reference to he socket server, typecasted as TInt
+    * @param A reference to flag of a new connection
+    * @param A reference to bearer type
+    * @return TInt symbian wide error code
+    **/
+    TInt CreateConnection( TInt* aConnectionPtr, TInt* aSockSvrHandle,
+                           TBool* aNewConn, TApBearerType* aBearerType );
+
+    /**
+    * This function cancel outstanding transactions and notify a user with the message "Out of coverage"
+    **/
+    void CoverageEvent( TInt aError );
+
+	void reportError(int error);
+
+	void reportHttpError(int error, const TDesC& aText );
+
+public:
+    int aboutToLoadPage(CBrCtl* brctl, int stateType);
+    /**
+    * Called when the authentication dialog box is needed.
+    * @since 3.X
+    * @param aHttpConn Transaction to be used for sending the response.
+    * @param aUri The requset uri.
+    * @param aUsername A username that was previously entered for this url.
+    * @param aRealm The real requirering user authentication.
+    * @param aProxy A flag if a server or a proxy is requiring authentication.
+    * @param aPassword Password is valid only if stale is true
+    * @return void
+    */
+    void AuthenticationRequest( HttpConnection* aHttpConn,
+                                TPtr& aUri, TPtr& aUsername, TPtr& aRealm,
+                                bool aProxy, 
+                                bool aDataExists, TPtr& aPassword,
+                                bool aBasicAuthentication = EFalse ); 
+
+    void NextUriL(const TDesC8& aUri, CBrCtl* brCtl);
+
+public: // MBrCtlDownloadObserver
+
+        /**
+        * Inform the host application that a new download has started using the Download Manager
+        * @since 3.0
+        * @param aTransactionID The ID of the transaction, it is unique as long as the transaction is on-going
+        * @param aFileName Name of the file in which the downloaded content is stored
+        * @param aContentType Type of content to be downloaded. For example:
+        * Markup, Image, Cascading Style Sheet (CSS), Javascript, Netscape plug-in, Sound
+        * @param aUrl The Url of the request to be done in the new window
+        * @return ETrue if the file can be displayed or played while it is 
+        * downloading (progressive download)
+        * EFalse if the file cannot be displayed or played while it is downloading
+        */
+        virtual TBool NewDownloadL(TUint aTransactionID,
+                                   const TDesC& aFileName,
+                                   const TDesC& aContentType,
+                                   const TDesC& aUrl) {return EFalse;}
+                                   
+        /**
+        * Tells the host application to resume an incomplete download. 
+        * After the host application restarts, this method is called 
+        * for each file whose download was interrupted when the host application closed.
+        * @since 3.0
+        * @param aTransactionID ID of the transaction
+        * This ID must be unique while the transaction is in progress.
+        * @param aLength Length of the content previously downloaded
+        * @param aFileName Name of the file in which the downloaded content is stored
+        * @param aContentType Type of content downloaded. For example:
+        * Markup, Image, Cascading Style Sheet (CSS), Javascript, Netscape plug-in, Sound 
+        * @param aUrl URL of the source of the content to be done in the new window
+        * @return None
+        */
+        virtual void ResumeDownloadL(TUint aTransactionID,
+                                   TUint aLength,
+                                   const TDesC& aFileName,
+                                   const TDesC& aContentType,
+                                   const TDesC& aUrl) {}
+
+        /**
+        * Informs the host application that one of the following download events is in progress:
+        * NOTE: All events have the prefix EDownload:
+        * EventStarted, EventCompleted, EventProgress, EventCanceled, EventError 
+        * EventPaused, EventResumed, EventPausable
+        * @since 3.0
+        * @param aTransactionID The ID of the transaction, it is unique as long 
+        * as the transaction is on-going
+        * @param aDownloadEvent Event to be handled Examples:
+        * EventStarted, EventCompleted, EventProgress, EventCanceled, EventError 
+        * EventPaused, EventResumed, EventPausable
+        * @param aValue Value associated with the event. Examples:
+        * Total size of the downloaded file
+        * Size of that was downloaded so far
+        * @return void
+        */
+        virtual void HandleDownloadEventL(TUint aTransactionID, 
+                                          TBrCtlDownloadEvent aDownloadEvent,
+                                          TUint aValue) {}             
+
+private:
+    void handleError();
+
+    void GetUserAuthenticationDataL(HttpConnection* aTrans,
+                                    const TUint16* aUri,
+                                    const TUint16* aUsername,
+                                    const TUint16* aRealm, 
+                                    TUint16** aRetUsername,
+                                    TUint16** aRetPassword,
+                                    bool aBasicAuthentication);
+
+    int aboutToLoadPageL(CBrCtl* brctl, int stateType);
+
+private: // data
+    CPeriodic* m_scheduler;
+    int m_error;
+
+};
+
+
+#endif // __HTTPUICALLBACKS_H__
+// end of file