diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/wapengstd.h --- a/epoc32/include/wapengstd.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/wapengstd.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,278 @@ -wapengstd.h +// Copyright (c) 1999-2009 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 "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// WAP Engine Standard +// Standard status codes used by data handlers and the WAP engine. Note that some are exact duplicates of error +// codes from sub-components (e.g. HTTP) or from components outside of the WAP Browser (e.g. NetDial, ETEL) +// +// + +#ifndef __WAPENGINESTANDARD_H__ +#define __WAPENGINESTANDARD_H__ + +// System includes +// +#include + +// +// Status code offset for HTTP status values and stack connection progress +// e.g. HTTP/200 becomes KHttpPluginStatusBase + 200 +// +const TInt KHttpPluginStatusBase = 1000; +const TInt KWapDocumentLoadStatusBase = 2000; + +typedef enum TWapEngineStatus +{ + // DRAFT + // Some of these errors MAY be handled in the control level. + + // + // HTTP/1.1 Status/Error codes from 40x and 50x series + // + EWapErrHttp_505_HTTPVersionNotSupported = -20505, // has to be 1.1 at the client end; talking to a 1.0 origin server might cause this? Or the client erroneously claiming to do HTTP/3 or something. + EWapErrHttp_504_GatewayTimeout = -20504, // not sure if this refers to Gateway in the WAP sense + EWapErrHttp_503_ServiceUnavailable = -20503, // ? + EWapErrHttp_502_BadGateway = -20502, // could occur with a badly configured WAP GW = e.g. the gateway uses a proxy which cannot be reached = there should probably be some indication to the user. + EWapErrHttp_501_NotImplemented = -20501, // duh. Bad server. + EWapErrHttp_500_InternalServerError = -20500, // bad news again; this one can either come from the origin server _or_ from the WAP GW, which may convert a different server code into 500 if the WML is bad. Report. + + EWapErrHttp_415_UnsupportedMediaType = -20415, // see RFC2068 + EWapErrHttp_414_RequestUriTooLong = -20414, // report to user + EWapErrHttp_413_RequestEntityTooLarge = -20413, // see RFC2068 + EWapErrHttp_412_PreconditionFailed = -20412, // see RFC2068 + EWapErrHttp_411_LengthRequired = -20411, // error in our use of HTTP if this occurs. + EWapErrHttp_410_Gone = -20410, // like 404, except more definite! report to user. + EWapErrHttp_409_Conflict = -20409, // see RFC2068 + EWapErrHttp_408_RequestTimeout = -20408, // dealt with in HTTP, shouldn't have to be presented to the user + EWapErrHttp_407_ProxyAuthenticationRequired = -20407,// - not sure, we don't correctly deal with this at the moment. Is it needed? + EWapErrHttp_406_NotAcceptable = -20406, // this is returned if the resource requested is not acceptable to the client according to its own accept- strings in the HTTP request header. e.g. accept-charset, accept (content types). accept-language. This shows that we're getting our headers wrong, so should be considered a software error and not be reported. I think. + EWapErrHttp_405_MethodNotAllowed = -20405, // e.g. attempt to POST to a URL that is not appropriate for POSTing. Probably a result of poor site design? + EWapErrHttp_404_NotFound = -20404, // document missing on origin server. This one would be a good one to report to the user since it happens frequently with badly maintained sites! + EWapErrHttp_403_Forbidden = -20403, // the server HTTPD does refuses to return the requested document, for internal reasons not necessarily disclosed to the client + EWapErrHttp_402_PaymentRequired = -20402, // I don't think this is used in our world of e-commerce. RFC2068 says it is reserved for future use. +// +// // NOTE THAT HTTP/401 IS NOT TREATED AS AN ERROR, BECAUSE IT IS +// // FULLY HANDLED IN HTTP - see HTTP status codes below +// + EWapErrHttp_400_BadRequest = -20400, // client sent a request with a malformed syntax (in HTTP request headers) = I assume this indicates a programming error on our part ,and should not happen, or be reported? + + // + // HTTP Data Provider plug-in 'inherited' error codes + // + EWapErrHttpReceivingErrorDeck = -20014, // Could not find document, so receiving an error deck + EWapErrHttpCancellationAbort = -20013, // Error code for leave when cancellation has occured during RunL() + EWapErrHttpGatewaySessionDisconnect = -20012, // The session was disconnected by the WAP Gateway + EWapErrHttpGatewayTransactionAbort = -20011, // A transaction was aborted by the gateway or the stack + EWapErrHttpGatewayCannotBeReached = -20010, // A session could not be established with the WAP Gateway + // Note that EWapErrHttpAuthenticationFailed and EWapErrHttpAuthenticationCancelled are now information status codes - see below. + EWapErrHttpWtlsCipherRejected = -20009, // The user rejected the cipher strength negotiated in WTLS + EWapErrHttpWtlsServerCertRejected = -20008, // The user rejected the certificate from the WAP GW + EWapErrHttpWtlsBadServerCert = -20007, // WTLS rejected the certificate obtained from the WAP GW + EWapErrHttpWtlsConfigFailed = -20006, // Failed to configure the WTLS layer of the WAP Stack + EWapErrHttpNetDialSetupFailed = -20005, // Failed to configure Net Dial + EWapErrHttpWapAPReadFailure = -20004, // An error occurred when reading the WAP AP from CommsDB + EWapErrHttpUnsupportedMethod = -20003, // An HTTP method was specified that is not supported + EWapErrHttpCannotFindPlugin = -20002, // Plug-in server failed to create an HTTP plugin + EWapErrHttpCannotFindServer = -20001, // URL specified a non-existent or inaccessible domain + EWapErrHttpGeneralError = -20000, // Unspecified error condition + + // + // XMLLIB ERROR CODES + // + + // XmlLib +#define XmlLibErrorBase -13200 + EWapErrXmlLibInvalidDocument = XmlLibErrorBase, + EWapErrXmlLibDocumentBuffered = XmlLibErrorBase - 1, + EWapErrXmlLibDocumentAlreadyValid = XmlLibErrorBase - 2, + EWapErrXmlLibInvalidDTD = XmlLibErrorBase - 3, + + // Validator +#define XmlValidatorErrorBase -13100 + EWapErrXmlLibIllegalTagName = XmlValidatorErrorBase, + EWapErrXmlLibIllegalFixedAttributeValue = XmlValidatorErrorBase - 1, + EWapErrXmlLibMissingRequiredAttribute = XmlValidatorErrorBase - 2, + EWapErrXmlLibMissingDocument = XmlValidatorErrorBase - 4, + EWapErrXmlLibInvalidDocumentStructure = XmlValidatorErrorBase - 6, + EWapErrXmlLibIllegalAttributeValue = XmlValidatorErrorBase - 7, + + // Parser +#define XmlParserErrorBase -13000 + EWapErrXmlLibMissingCDATASectionEndTag = XmlParserErrorBase, + EWapErrXmlLibInvalidAttributeDeclaration = XmlParserErrorBase - 1, + EWapErrXmlLibEndTagMismatch = XmlParserErrorBase - 2, + EWapErrXmlLibInvalidCharacterReference = XmlParserErrorBase - 3, + EWapErrXmlLibUnknownEntityReference = XmlParserErrorBase - 4, + EWapErrXmlLibNoDTD = XmlParserErrorBase - 5, + EWapErrXmlLibMissingDocumentRootNode = XmlParserErrorBase - 6, + EWapErrXmlLibInvalidXmlVersionDefinition = XmlParserErrorBase - 7, + EWapErrXmlLibRootElementNameMismatch = XmlParserErrorBase - 8, + + + // + // WMLLIB ERROR CODES + // + + // WmlLib + // No WmlLib (interface module) specific errors defined + + // Validator +#define WmlValidatorErrorBase -12100 + EWapErrWmlLibAccessViolation = WmlValidatorErrorBase - 1, + EWapErrWmlLibInvalidVariableReference = WmlValidatorErrorBase - 2, + EWapErrWmlLibInvalidConversionMethod = WmlValidatorErrorBase - 3, + EWapErrWmlLibIllegalVariableName = WmlValidatorErrorBase - 4, + EWapErrWmlLibIllegalTaskCountOnAnchor = WmlValidatorErrorBase - 5, + EWapErrWmlLibNULLVariableName = WmlValidatorErrorBase - 6, + EWapErrWmlLibNestedTables = WmlValidatorErrorBase - 7, + EWapErrWmlLibDuplicateDoNodeName = WmlValidatorErrorBase - 8, + EWapErrWmlLibUsageOfReservedWord = WmlValidatorErrorBase - 9, + EWapErrWmlLibZeroTableColumns = WmlValidatorErrorBase - 10, + EWapErrWmlLibNonWmlDocument = WmlValidatorErrorBase - 11, + EWapErrWmlLibMultipleMetaPropertyName = WmlValidatorErrorBase - 12, + EWapErrWmlLibEventBindingConflict = WmlValidatorErrorBase - 14, + EWapErrWmlLibMultipleAccessElements = WmlValidatorErrorBase - 15, + EWapErrWmlLibNonUniqueIds = WmlValidatorErrorBase - 16, + EWapErrWmlLibVariableInInvalidLocation = WmlValidatorErrorBase - 17, + + // Parser +#define WmlParserErrorBase -12000 + EWapErrWmlLibNullNode = WmlParserErrorBase, + EWapErrWmlLibCDATANodeWithoutParent = WmlParserErrorBase - 1, + + + // + // WAP Engine 'native' error codes + // + EWapErrSubDocumentNotFound = -10027, + EWapErrCannotCreateDeck = -10026, // Failed to create a deck + EWapErrMimeTypeMissing = -10025, // Engine tried to access the mime-type attribute in a + // tree node but it was missing + EWapErrUnknownDocument = -10024, + EWapErrInvalidDTD = -10023, + EWapErrDTDUnavailable = -10022, // Document cannot be validated as DTD is not available + + EWapErrUnknownScheme = -10021, // unknown scheme + EWapErrCorruptScheme = -10020, // scheme contains invalid characters + EWapErrCorruptUrl = -10019, // part of url contains invalid characters + + EWapErrPluginNotFound = -10018, // couldn't find the requested plugin + + EWapErrImageConversionFailed = -10017, // image data handler got error from media server + + EWapErrAccessPointNotSetUpForCSD = -10016, // Access point lacked info for Data call + EWapErrAccessPointNotSetUpForSMS = -10015, + EWapErrAccessPointNotSetUpForUSSD = -10014, + EWapErrAccessPointNotSetUpGeneric = -10013, + EWapErrProtocolNotSupported = -10012, // Current network does not support the requested service + + EWapErrAuthorizationFailed = -10011, + + EWapErrScriptObscureLibraryCall = -10010, // The script function was unavailable + EWapErrScriptIllegalAction = -10009, // The script attempted an illegal action and was terminated + EWapErrScriptCorrupt = -10008, // Script had errors + EWapErrScriptError = -10007, // Script returned a fatal error + EWapErrScriptNotFound = -10006, // Requested script was not found + + EWapErrDataCallUnavailable = -10005, // The data call is being used by another application + EWapErrDataCallDropped = -10004, // CSD connection was closed + + EWapErrAccessViolation = -10003, // Access to the document was denied + EWapErrDocumentCorrupted = -10002, + EWapErrDocumentNotFound = -10001, + EWapErrGeneral = -10000, + + // + // PPP connection 'inherited' error codes + // + EWapErrPppIfLRDBadLine = -3059, // ?? + EWapErrPppIfDNSNotFound = -3058, // ?? + EWapErrPppIfCallbackNotAcceptable = -3057, // NTRAS: client requested server Callback but was refused + EWapErrPppIfChangingPassword = -3056, // NTRAS: User's password is currently being changed + EWapErrPppIfNoDialInPermission = -3055, // NTRAS: User has not got dial-in permission on the server + EWapErrPppIfPasswdExpired = -3054, // NTRAS: User's password has expired + EWapErrPppIfRestrictedLogonHours = -3053, // NTRAS: User is attempting to log-in outside their hours + EWapErrPppIfAccountDisabled = -3052, // NTRAS: User's account has been disabled + EWapErrPppIfAuthNotSecure = -3051, // ?? + EWapErrPppIfAuthenticationFailure = -3050, // The supplied password was wrong?? + + // + // NetDial 'inherited' error codes + // + EWapErrNetDialScriptError = -3005, // NetDial Exit Condition - Script Error + EWapErrNetDialScriptTimeOut = -3004, // NetDial Exit Condition - Script Timed Out + EWapErrNetDialLoginFail = -3003, // NetDial Exit Condition - Login Failure + EWapErrNetDialModemError = -3002, // NetDial Exit Condition - Modem error + EWapErrNetDialNoModem = -3001, // NetDial Exit Condition - No Modem Response + + // + // ETEL 'inherited' error codes + // + EWapErrEtelModemSettingsCorrupt = -2018, + EWapErrEtelModemNotDetected = -2017, + EWapErrEtelAnswerAlreadyOutstanding = -2016, + EWapErrEtelUnknownModemCapability = -2015, + EWapErrEtelWrongModemType = -2014, + EWapErrEtelPortNotLoanedToClient = -2013, + EWapErrEtelNotFaxOwner = -2012, + EWapErrEtelFaxChunkNotCreated = -2011, + EWapErrEtelConfigPortFailure = -2010, + EWapErrEtelNoDialTone = -2009, + EWapErrEtelNoAnswer = -2008, + EWapErrEtelCallNotActive = -2007, + EWapErrEtelInitialisationFailure = -2006, + EWapErrEtelNoClientInterestedInThisCall= -2005, + EWapErrEtelBusyDetected = -2004, + EWapErrEtelNoCarrier = -2003, + EWapErrEtelAlreadyCallOwner = -2002, + EWapErrEtelDuplicatePhoneName = -2001, + EWapErrEtelNotCallOwner = -2000, + + // + // General EPOC 'inherited' error codes + // + EWapErrEpocTimedOut = -33, + EWapErrEpocNotFound = -1, + EWapErrEpocAccessDenied = -21, + + // + // + // Wap engine status messages + // + EWapStatusDownloadProgress = 1, // Amount complete in aValue (0...100) + EWapStatusDownloadComplete, // Document fetch is complete + EWapStatusSubDocumentChanged, // XML subdocument (card in WML) has changed + EWapStatusRefreshRequest, // Observer is requested to refresh display + EWapStatusError, // Error + EWapStatusInformational, // Information other than download progress + EWapStatusInitialisingConnection = KHttpPluginStatusBase, + EWapStatusConnecting = KHttpPluginStatusBase + 1, + EWapStatusAuthenticating = KHttpPluginStatusBase + 2, + EWapStatusConnected = KHttpPluginStatusBase + 3, + EWapStatusDisconnecting = KHttpPluginStatusBase + 4, + EWapStatusHttpAuthenticationFailed = KHttpPluginStatusBase + 10, // The user's password was rejected by the origin server + EWapStatusHttpAuthenticationAborted = KHttpPluginStatusBase + 11, // The user cancelled the password box + EWapStatusHttp_401_Unauthorized = KHttpPluginStatusBase + 401, // occurs when HTTP authentication is used, username/password dialogs raised as a response. Need to consider how UI deals with authentication failures here. + EWapStatusValidating = KWapDocumentLoadStatusBase, // Validating document + EWapStatusReceivingErrorDeck = KWapDocumentLoadStatusBase + 1 // Receiving error deck + +} TWapEngineStatus; + +enum TWmlFetchFlag + { + EWmlFetchNoFlag = 0x00, + EWmlFetchReload = 0x01, + EWmlFetchTimerFetch = 0x02 + }; + +#endif // __WAPENGINESTANDARD_H__