webengine/osswebengine/WebKit/s60/webcoresupport/WebFrameLoaderClient.cpp
changeset 13 10e98eab6f85
parent 8 7c90e6132015
child 16 a359256acfc6
--- a/webengine/osswebengine/WebKit/s60/webcoresupport/WebFrameLoaderClient.cpp	Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webcoresupport/WebFrameLoaderClient.cpp	Fri Jul 03 15:54:40 2009 +0100
@@ -140,8 +140,11 @@
     if (isWMLContent(m_response.mimeType())) {
         // call the WmlDispatcher Headers routine to set the WML flag
         if (! m_WmlContentListener) {
-            m_WmlContentListener = CWmlDispatcher::NewL(brctl(m_webFrame), core(m_webFrame) );
-            brctl(m_webFrame)->setWmlDispatcher(m_WmlContentListener);
+            TRAPD(err, m_WmlContentListener = CWmlDispatcher::NewL(brctl(m_webFrame), core(m_webFrame) ));
+            if((err == KErrNone) && (m_WmlContentListener != NULL))
+                {
+                brctl(m_webFrame)->setWmlDispatcher(m_WmlContentListener);
+                }
         }
         TRAPD(err,m_WmlContentListener->HeadersL( 0, m_response ));
     }
@@ -160,7 +163,7 @@
         }
 
         if (!core(m_webFrame)->ownerElement()) {
-            brctl(m_webFrame)->settings()->setTabbedNavigation(!(brctl(m_webFrame)->capabilities()&TBrCtlDefs::ECapabilityCursorNavigation));
+            brctl(m_webFrame)->settings()->setNavigationType((brctl(m_webFrame)->capabilities()&TBrCtlDefs::ECapabilityCursorNavigation) ? SettingsContainer::NavigationTypeCursor : SettingsContainer::NavigationTypeTabbed);
             StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true);
             m_webFrame->frameView()->topView()->tabbedNavigation()->clear();
 		}        
@@ -270,10 +273,12 @@
         [download _setOriginatingURL:originalURL];
     */
     StaticObjectsContainer::instance()->resourceLoaderDelegate()->download(handle, request, response);
+    TRAP_IGNORE(
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewUrlContentArrived, 0, 0 ); // must send this for progress bar to go away
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventUrlLoadingFinished, 0, 0 );
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventContentFinished, 0, 0 );
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadFinished, 0, 0 );
+    );
 }
 
 void WebFrameLoaderClient::assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&)
@@ -535,7 +540,9 @@
 
     [webView _didChangeValueForKey:_WebMainFrameIconKey];
     */
+    TRAP_IGNORE(
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventFaviconAvailable, 0, 0 );
+    );
     notImplemented(); 
 }
 
@@ -551,7 +558,9 @@
         implementations.didStartProvisionalLoadForFrameFunc(frameLoadDelegate, @selector(webView:didStartProvisionalLoadForFrame:), webView, m_webFrame.get());
     }
     */
+    TRAP_IGNORE(
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewContentStart, 0, 0 );
+    );
     notImplemented(); 
 }
 
@@ -565,7 +574,9 @@
         implementations.didReceiveTitleForFrameFunc(frameLoadDelegate, @selector(webView:didReceiveTitle:forFrame:), webView, title, m_webFrame.get());
     }
     */
+    TRAP_IGNORE(
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventTitleAvailable, 0, 0 );
+    );
     notImplemented(); 
 }
 
@@ -584,7 +595,9 @@
         implementations.didCommitLoadForFrameFunc(frameLoadDelegate, @selector(webView:didCommitLoadForFrame:), webView, m_webFrame.get());
     }
     */
+    TRAP_IGNORE(
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventTitleAvailable, 0, 0 );
+    );
 }
 
 void WebFrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& error)
@@ -604,7 +617,9 @@
         m_WmlContentListener->HandleError(0,error.errorCode());
     }
     //
+    TRAP_IGNORE(
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadError, 0, 0 );
+    );
     notImplemented(); 
 }
 
@@ -627,7 +642,9 @@
         m_WmlContentListener->HandleError(0,error.errorCode());
     }
     //
+    TRAP_IGNORE(
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadError, 0, 0 );
+    );
     m_webFrame->frameView()->topView()->pageLoadFinished();
     notImplemented(); 
 }
@@ -672,7 +689,9 @@
         implementations.didFirstLayoutInFrameFunc(frameLoadDelegate, @selector(webView:didFirstLayoutInFrame:), webView, m_webFrame.get());
     }
     */
+    TRAP_IGNORE(
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewContentDisplayed, 0, 0 );
+    );
 }
 
 Frame* WebFrameLoaderClient::dispatchCreatePage()
@@ -834,7 +853,9 @@
 void WebFrameLoaderClient::postProgressStartedNotification() 
 {
     //    [[NSNotificationCenter defaultCenter] postNotificationName:WebViewProgressStartedNotification object:getWebView(m_webFrame.get())];
+    TRAP_IGNORE(
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventUrlLoadingStart, 0, 0 );
+    );
     total_bytes = 0;
 #ifdef PERF_REGRESSION_LOG
         wkDebug()<<"Load started"<<mem<<flush;
@@ -848,8 +869,10 @@
 #endif // PERF_REGRESSION_LOG
     //    [[NSNotificationCenter defaultCenter] postNotificationName:WebViewProgressEstimateChangedNotification object:getWebView(m_webFrame.get())];
     double estimatedProgress = core(m_webFrame)->page()->progress()->estimatedProgress();
+    TRAP_IGNORE(
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewUrlContentArrived, total_bytes / estimatedProgress, 0 );
     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventMoreUrlContentArrived, total_bytes, 0 );
+    );
 }
 
 void WebFrameLoaderClient::postProgressFinishedNotification() 
@@ -907,7 +930,9 @@
 void WebFrameLoaderClient::committedLoad(DocumentLoader* loader, const char* data, int length) 
 { 
     if (brctl(m_webFrame)->wmlMode()) {
+        TRAP_IGNORE(
         m_WmlContentListener->ResponseL( data, length );
+        );
         return;
     }
     m_webFrame->bridge()->receivedData(data, length, m_response.textEncodingName());
@@ -1116,7 +1141,9 @@
 void WebFrameLoaderClient::frameLoadCompleted()
 {
     if (brctl(m_webFrame)->wmlMode()) {
+        TRAP_IGNORE(
         m_WmlContentListener->CompleteL( 0, 0 );
+        );
         return;
     }
     /*
@@ -1373,8 +1400,9 @@
 
 void WebFrameLoaderClient::windowObjectCleared() const
 {
-    //    [m_webFrame->_private->bridge windowObjectCleared];
-    notImplemented(); 
+    if (m_webFrame && !m_webFrame->parentFrame()) {
+        m_webFrame->frameView()->topView()->windowObjectCleared();
+    }
 }
 
 void WebFrameLoaderClient::didPerformFirstNavigation() const