diff -r 7c90e6132015 -r 10e98eab6f85 browserutilities/webutils/src/CUserAgent.cpp --- a/browserutilities/webutils/src/CUserAgent.cpp Fri May 08 08:25:06 2009 +0300 +++ b/browserutilities/webutils/src/CUserAgent.cpp Fri Jul 03 15:54:40 2009 +0100 @@ -30,9 +30,8 @@ #define KPlaceHolderMozillaVer _L("Mozilla/5.0") -#define KPlaceHolderSecurity _L("U;") -#define KPlaceHolderComponent _L("AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525") -#define KPlaceHolderBrowserName _L("WicKed") +#define KPlaceHolderComponent _L("AppleWebKit/525 (KHTML, like Gecko) Version/3.0") +#define KPlaceHolderBrowserName _L("BrowserNG") #define KPlaceHolderSlash _L("/") #define KPlaceHolderSymbianOS _L("SymbianOS") @@ -199,6 +198,7 @@ { LOG_ENTERFN("CUserAgent::ReadUserAgentStringL()"); TInt retCode (KErrNotReady); + TBuf<64> ignoreConfig(0); // If the string queried already, dont read again if(iUAStrQueried) @@ -215,33 +215,35 @@ User::Leave(KErrNotReady); } - /* ---------------- Read default UA string ---------------- */ - LOG_WRITE("Reading default UA string from cenrep."); if(!iBrowserCenrepStr) { iBrowserCenrepStr = HBufC::NewL(KMaxUserAgentStringLength); } TPtr tempPtr = iBrowserCenrepStr->Des(); - - retCode = iRepository->Get(EDefaultUserAgentString, tempPtr); - if(retCode != KErrNone) - { - LOG_WRITE_FORMAT("Error: Reading default UA string from cenrep failed! (%d)",retCode); - LOG_LEAVEFN("CUserAgent::ReadUserAgentDataL()"); - User::Leave(retCode); + retCode = iRepository->Get(KWebUtilsIgnoreConfig, ignoreConfig); + if(retCode != KErrNone || ignoreConfig == _L("0")) + {/* ---------------- Read default UA string ---------------- */ + LOG_WRITE("Reading default UA string from cenrep."); + + retCode = iRepository->Get(EDefaultUserAgentString, tempPtr); + if(retCode != KErrNone) + { + LOG_WRITE_FORMAT("Error: Reading default UA string from cenrep failed! (%d)",retCode); + LOG_LEAVEFN("CUserAgent::ReadUserAgentDataL()"); + User::Leave(retCode); + } + + if(!IsUAStringEmpty(tempPtr)) + { + LOG_WRITE("Successfully read default UA string from cenrep, can use this as UA string"); + + iUAStrQueried = TRUE; + + LOG_LEAVEFN("CUserAgent::ReadUserAgentDataL()"); + return; + } } - - if(!IsUAStringEmpty(tempPtr)) - { - LOG_WRITE("Successfully read default UA string from cenrep, can use this as UA string"); - - iUAStrQueried = TRUE; - - LOG_LEAVEFN("CUserAgent::ReadUserAgentDataL()"); - return; - } - ReadAndCreateUAStringL(tempPtr); LOG_WRITE("Successfully created a new UA string."); @@ -269,6 +271,9 @@ void CUserAgent::ReadMMSUserAgentStringL() { + + // MMS UA Format: ; + LOG_ENTERFN("CUserAgent::ReadMMSUserAgentStringL()"); TInt retCode (KErrNotReady); @@ -315,13 +320,27 @@ } /* ---------------- Read all variant fragments and build a UA string ---------------- */ - ReadAndCreateUAStringL(tempPtr); + GetMMSFragmentsL(); + tempPtr.Append(iMMSHardwareType); + tempPtr.Append(KSpaceChar); + tempPtr.Append(iMMSS60Version); + tempPtr.Append(KSpaceChar); + tempPtr.Append(iMMSMIDPVersion); + tempPtr.Append(KSpaceChar); + tempPtr.Append(iMMSCLDCVersion); + + if(!IsUAStringEmpty(tempPtr)) + { + LOG_WRITE("Successfully created a new MMS UA string."); + } + else + { + LOG_WRITE("Failed to create a new MMS UA string...Exiting anyway"); + } - LOG_WRITE("Successfully created a new MMS UA string."); - iMMSUAStrQueried = TRUE; - LOG_LEAVEFN("CUserAgent::ReadMMSUserAgentStringL()"); - return; + LOG_LEAVEFN("CUserAgent::ReadMMSUserAgentStringL()"); + return; } // --------------------------------------------------------- @@ -346,35 +365,37 @@ // --------------------------------------------------------- void CUserAgent::GetFragmentsL() { - -#ifdef BRDO_BROWSER_50_FF - TInt osExtFailed(0); - TRAP(osExtFailed, GetFragmentsFromOSExtL()); -#endif - if(iSymbianVersion.Length() <= 0) { - LOG_WRITE("Reading SymbianVersion from osext extended api or cenrep."); - User::LeaveIfError(GetCenRepFragment(ESymbianOSVersion, iSymbianVersion)); + LOG_WRITE("Reading SymbianVersion from cenrep."); + GetCenRepFragment(ESymbianOSVersion, iSymbianVersion); } - if(iS60Version.Length() <= 0) { - LOG_WRITE("Reading S60Version from osext extended api or cenrep."); - User::LeaveIfError(GetCenRepFragment(ES60Version, iS60Version)); + LOG_WRITE("Reading S60Version from cenrep."); + GetCenRepFragment(ES60Version, iS60Version); } - if(iHardwareType.Length() <= 0) { - LOG_WRITE("Reading HardwareVersion from osext extended api or cenrep."); - User::LeaveIfError(GetCenRepFragment(EHardwareType, iHardwareType)); + LOG_WRITE("Reading HardwareVersion from cenrep."); + GetCenRepFragment(EHardwareType, iHardwareType); + if(iHardwareType.Length() > 0) + { iHardwareType.Append(KPlaceHolderSemiColon); + } } - if(iMIDPCLDCVersion.Length() <= 0) { - LOG_WRITE("Reading MIDPCLDCVersion from osext extended api or cenrep."); - User::LeaveIfError(GetCenRepFragment(EMIDP_CLDCVersion, iMIDPCLDCVersion)); + LOG_WRITE("Reading MIDPCLDCVersion from cenrep."); + GetCenRepFragment(EMIDP_CLDCVersion, iMIDPCLDCVersion); } + //Only for 5.0 and above as 3.2 does not support OSExt APIs. + #ifdef BRDO_BROWSER_50_FF + if(iSymbianVersion.Length() <= 0 || iS60Version.Length() <= 0 || iHardwareType.Length() <= 0) + { + LOG_WRITE("Read from CenRep Failed... trying osext extended api"); + GetFragmentsFromOSExtL(); + } + #endif } // --------------------------------------------------------- @@ -385,36 +406,33 @@ { GetFragmentsL(); - // - // Mozilla/5.0 ( U; [en]; ) AppleWebKit/413 (KHTML, like Gecko) Safari/413 - // - + // Mozilla/5.0 ( ) AppleWebKit/413 (KHTML, like Gecko) BrowserName/Version + aUAStringPtr.Copy(KPlaceHolderMozillaVer); aUAStringPtr.Append(KSpaceChar); - - aUAStringPtr.Append(KPlaceHolderOpen); - - aUAStringPtr.Append(iSymbianVersion); - aUAStringPtr.Append(KSpaceChar); - - aUAStringPtr.Append(KPlaceHolderSecurity); + if(iSymbianVersion.Length() > 0 || iS60Version.Length() > 0 || iHardwareType.Length() > 0 || iMIDPCLDCVersion.Length() > 0) + { + aUAStringPtr.Append(KPlaceHolderOpen); + + aUAStringPtr.Append(iSymbianVersion); + aUAStringPtr.Append(KSpaceChar); + + aUAStringPtr.Append(iS60Version); + aUAStringPtr.Append(KSpaceChar); + + aUAStringPtr.Append(iHardwareType); + aUAStringPtr.Append(KSpaceChar); + + aUAStringPtr.Append(iMIDPCLDCVersion); + aUAStringPtr.Append(KSpaceChar); + + aUAStringPtr.Append(KPlaceHolderClose); + } aUAStringPtr.Append(KSpaceChar); - - aUAStringPtr.Append(iS60Version); - aUAStringPtr.Append(KSpaceChar); - - aUAStringPtr.Append(iHardwareType); - - aUAStringPtr.Append(KSpaceChar); - aUAStringPtr.Append(iMIDPCLDCVersion); - aUAStringPtr.Append(KSpaceChar); - aUAStringPtr.Append(KPlaceHolderClose); + aUAStringPtr.Append(KPlaceHolderComponent); aUAStringPtr.Append(KSpaceChar); aUAStringPtr.Append(iBrowserNameAndVersionStr->Des()); - - aUAStringPtr.Append(KSpaceChar); - aUAStringPtr.Append(KPlaceHolderComponent); } // --------------------------------------------------------- @@ -712,11 +730,63 @@ // ------------------------------------------------------------------------------- void CUserAgent::GetBrowserNameAndVersionL() { + TInt ret(0); + TBuf<64> BrowserName(0); TInt length = KMaxBrowserVersionStringLength + KMaxBrowserNameLength; iBrowserNameAndVersionStr = HBufC::NewL( length); - - iBrowserNameAndVersionStr->Des().Append(KPlaceHolderBrowserName); + + ret = iRepository->Get(KWebUtilsBrowserName, BrowserName); + if(ret != KErrNone) + { + LOG_WRITE("Error: Reading default Browser Name from cenrep failed!"); + iBrowserNameAndVersionStr->Des().Append(KPlaceHolderBrowserName); + } + else + { + iBrowserNameAndVersionStr->Des().Append(BrowserName); + } iBrowserNameAndVersionStr->Des().Append(KPlaceHolderSlash); iBrowserNameAndVersionStr->Des().Append( *iBrowserVersionStr ); } + +// --------------------------------------------------------- +// CUserAgent::GetFragmentsL() +// Gets all required fragments from OSExt APIs/CenRep +// --------------------------------------------------------- +void CUserAgent::GetMMSFragmentsL() + { + if(iMMSHardwareType.Length() <= 0) + { + LOG_WRITE("Reading HardwareVersion from cenrep."); + iRepository->Get(KWebUtilsMMSUsrAg2, iMMSHardwareType); + if(iMMSHardwareType.Length() > 0) + { iMMSHardwareType.Append(KPlaceHolderSemiColon); + } + } + if(iMMSS60Version.Length() <= 0) + { + LOG_WRITE("Reading S60Version from cenrep."); + iRepository->Get(KWebUtilsMMSUsrAg3, iMMSS60Version); + } + if(iMMSMIDPVersion.Length() <= 0) + { + LOG_WRITE("Reading MIDPCLDCVersion from cenrep."); + iRepository->Get(KWebUtilsMMSUsrAg4, iMMSMIDPVersion); + } + if(iMMSCLDCVersion.Length() <= 0) + { + LOG_WRITE("Reading MIDPCLDCVersion from cenrep."); + iRepository->Get(KWebUtilsMMSUsrAg5, iMMSCLDCVersion); + } + //Only for 5.0 and above as 3.2 does not support OSExt APIs. + #ifdef BRDO_BROWSER_50_FF + if(iMMSS60Version.Length() <= 0 || iMMSHardwareType.Length() <= 0) + { + LOG_WRITE("Read from CenRep Failed... trying osext extended api"); + GetFragmentsFromOSExtL(); + iMMSHardwareType = iHardwareType; + iMMSS60Version = iS60Version; + } + #endif + } // End of file