--- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpDownload.cpp Tue Nov 24 09:02:20 2009 +0200
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpDownload.cpp Thu Dec 17 09:20:16 2009 +0200
@@ -16,8 +16,8 @@
*/
#include "HttpDownload.h"
-#include <CDownloadMgrUiUserInteractions.h>
-#include <CDownloadMgrUiDownloadsList.h>
+#include <cdownloadmgruiuserinteractions.h>
+#include <cdownloadmgruidownloadslist.h>
#include "HttpDlConnection.h"
#include "HttpDefs.h"
#include "HttpSessionManager.h"
@@ -30,15 +30,41 @@
using namespace WebCore;
-HttpDownload::HttpDownload(HttpSessionManager* sessionManager)
+// -----------------------------------------------------------------------------
+// HttpDownload::NewL
+//
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+HttpDownload* HttpDownload::NewL(HttpSessionManager* sessionManager)
+ {
+ HttpDownload* self = new (ELeave) HttpDownload();
+
+ CleanupStack::PushL (self);
+ self->ConstructL ( sessionManager);
+ CleanupStack::Pop ();
+ return self;
+ }
+
+HttpDownload::HttpDownload()
{
- m_sessionManager = sessionManager;
m_dMgrReady = false;
m_dMgrUiReg = NULL;
- m_downloadObserver = StaticObjectsContainer::instance()->brctl()->brCtlDownloadObserver();
- TRAP_IGNORE(PREPARE_DOWNLOAD_MANAGER)
}
+// -----------------------------------------------------------------------------
+// HttpDownload::ConstructL
+// Symbian 2nd phase constructor can leave.
+// by this method.
+// -----------------------------------------------------------------------------
+//
+void HttpDownload::ConstructL(HttpSessionManager* sessionManager)
+ {
+ m_sessionManager = sessionManager;
+ m_downloadObserver = StaticObjectsContainer::instance()->brctl()->brCtlDownloadObserver();
+ PREPARE_DOWNLOAD_MANAGER;
+ }
+
HttpDownload::~HttpDownload()
{
delete m_dMgrUiReg;
@@ -72,7 +98,10 @@
if ( errMngr == KErrAlreadyExists && master ) {
m_downloadMgr.ConnectL( myProcess.Identity(), *this, EFalse );
}
-
+ else
+ {
+ User::LeaveIfError(errMngr);
+ }
if( !master ){
// Browser is embedded. Downloads must be paused when the user closes
// the embedded Browser (that is always started from the Launcher), and