webengine/osswebengine/WebKit/s60/webcoresupport/WebFrameLoaderClient.cpp
changeset 13 10e98eab6f85
parent 8 7c90e6132015
child 16 a359256acfc6
equal deleted inserted replaced
8:7c90e6132015 13:10e98eab6f85
   138 void WebFrameLoaderClient::makeRepresentation(DocumentLoader* docLoader)
   138 void WebFrameLoaderClient::makeRepresentation(DocumentLoader* docLoader)
   139 {
   139 {
   140     if (isWMLContent(m_response.mimeType())) {
   140     if (isWMLContent(m_response.mimeType())) {
   141         // call the WmlDispatcher Headers routine to set the WML flag
   141         // call the WmlDispatcher Headers routine to set the WML flag
   142         if (! m_WmlContentListener) {
   142         if (! m_WmlContentListener) {
   143             m_WmlContentListener = CWmlDispatcher::NewL(brctl(m_webFrame), core(m_webFrame) );
   143             TRAPD(err, m_WmlContentListener = CWmlDispatcher::NewL(brctl(m_webFrame), core(m_webFrame) ));
   144             brctl(m_webFrame)->setWmlDispatcher(m_WmlContentListener);
   144             if((err == KErrNone) && (m_WmlContentListener != NULL))
       
   145                 {
       
   146                 brctl(m_webFrame)->setWmlDispatcher(m_WmlContentListener);
       
   147                 }
   145         }
   148         }
   146         TRAPD(err,m_WmlContentListener->HeadersL( 0, m_response ));
   149         TRAPD(err,m_WmlContentListener->HeadersL( 0, m_response ));
   147     }
   150     }
   148     else{
   151     else{
   149         if (m_WmlContentListener) {
   152         if (m_WmlContentListener) {
   158             FrameLoadTypeStandard == core(m_webFrame)->loader()->loadType()){
   161             FrameLoadTypeStandard == core(m_webFrame)->loader()->loadType()){
   159             m_webFrame->frameView()->topView()->resetZoomLevel();
   162             m_webFrame->frameView()->topView()->resetZoomLevel();
   160         }
   163         }
   161 
   164 
   162         if (!core(m_webFrame)->ownerElement()) {
   165         if (!core(m_webFrame)->ownerElement()) {
   163             brctl(m_webFrame)->settings()->setTabbedNavigation(!(brctl(m_webFrame)->capabilities()&TBrCtlDefs::ECapabilityCursorNavigation));
   166             brctl(m_webFrame)->settings()->setNavigationType((brctl(m_webFrame)->capabilities()&TBrCtlDefs::ECapabilityCursorNavigation) ? SettingsContainer::NavigationTypeCursor : SettingsContainer::NavigationTypeTabbed);
   164             StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true);
   167             StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true);
   165             m_webFrame->frameView()->topView()->tabbedNavigation()->clear();
   168             m_webFrame->frameView()->topView()->tabbedNavigation()->clear();
   166 		}        
   169 		}        
   167     }
   170     }
   168 }
   171 }
   268 
   271 
   269     if (originalURL && [download respondsToSelector:@selector(_setOriginatingURL:)])
   272     if (originalURL && [download respondsToSelector:@selector(_setOriginatingURL:)])
   270         [download _setOriginatingURL:originalURL];
   273         [download _setOriginatingURL:originalURL];
   271     */
   274     */
   272     StaticObjectsContainer::instance()->resourceLoaderDelegate()->download(handle, request, response);
   275     StaticObjectsContainer::instance()->resourceLoaderDelegate()->download(handle, request, response);
       
   276     TRAP_IGNORE(
   273     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewUrlContentArrived, 0, 0 ); // must send this for progress bar to go away
   277     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewUrlContentArrived, 0, 0 ); // must send this for progress bar to go away
   274     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventUrlLoadingFinished, 0, 0 );
   278     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventUrlLoadingFinished, 0, 0 );
   275     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventContentFinished, 0, 0 );
   279     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventContentFinished, 0, 0 );
   276     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadFinished, 0, 0 );
   280     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadFinished, 0, 0 );
       
   281     );
   277 }
   282 }
   278 
   283 
   279 void WebFrameLoaderClient::assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&)
   284 void WebFrameLoaderClient::assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&)
   280 {
   285 {
   281     /*
   286     /*
   533         }
   538         }
   534     }
   539     }
   535 
   540 
   536     [webView _didChangeValueForKey:_WebMainFrameIconKey];
   541     [webView _didChangeValueForKey:_WebMainFrameIconKey];
   537     */
   542     */
       
   543     TRAP_IGNORE(
   538     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventFaviconAvailable, 0, 0 );
   544     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventFaviconAvailable, 0, 0 );
       
   545     );
   539     notImplemented(); 
   546     notImplemented(); 
   540 }
   547 }
   541 
   548 
   542 void WebFrameLoaderClient::dispatchDidStartProvisionalLoad() 
   549 void WebFrameLoaderClient::dispatchDidStartProvisionalLoad() 
   543 {
   550 {
   549     if (implementations.delegateImplementsDidStartProvisionalLoadForFrame) {
   556     if (implementations.delegateImplementsDidStartProvisionalLoadForFrame) {
   550         id frameLoadDelegate = WebViewGetFrameLoadDelegate(webView);
   557         id frameLoadDelegate = WebViewGetFrameLoadDelegate(webView);
   551         implementations.didStartProvisionalLoadForFrameFunc(frameLoadDelegate, @selector(webView:didStartProvisionalLoadForFrame:), webView, m_webFrame.get());
   558         implementations.didStartProvisionalLoadForFrameFunc(frameLoadDelegate, @selector(webView:didStartProvisionalLoadForFrame:), webView, m_webFrame.get());
   552     }
   559     }
   553     */
   560     */
       
   561     TRAP_IGNORE(
   554     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewContentStart, 0, 0 );
   562     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewContentStart, 0, 0 );
       
   563     );
   555     notImplemented(); 
   564     notImplemented(); 
   556 }
   565 }
   557 
   566 
   558 void WebFrameLoaderClient::dispatchDidReceiveTitle(const String& title) 
   567 void WebFrameLoaderClient::dispatchDidReceiveTitle(const String& title) 
   559 {
   568 {
   563     if (implementations.delegateImplementsDidReceiveTitleForFrame) {
   572     if (implementations.delegateImplementsDidReceiveTitleForFrame) {
   564         id frameLoadDelegate = WebViewGetFrameLoadDelegate(webView);
   573         id frameLoadDelegate = WebViewGetFrameLoadDelegate(webView);
   565         implementations.didReceiveTitleForFrameFunc(frameLoadDelegate, @selector(webView:didReceiveTitle:forFrame:), webView, title, m_webFrame.get());
   574         implementations.didReceiveTitleForFrameFunc(frameLoadDelegate, @selector(webView:didReceiveTitle:forFrame:), webView, title, m_webFrame.get());
   566     }
   575     }
   567     */
   576     */
       
   577     TRAP_IGNORE(
   568     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventTitleAvailable, 0, 0 );
   578     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventTitleAvailable, 0, 0 );
       
   579     );
   569     notImplemented(); 
   580     notImplemented(); 
   570 }
   581 }
   571 
   582 
   572 void WebFrameLoaderClient::dispatchDidCommitLoad() 
   583 void WebFrameLoaderClient::dispatchDidCommitLoad() 
   573 { 
   584 { 
   582     if (implementations.delegateImplementsDidCommitLoadForFrame) {
   593     if (implementations.delegateImplementsDidCommitLoadForFrame) {
   583         id frameLoadDelegate = WebViewGetFrameLoadDelegate(webView);
   594         id frameLoadDelegate = WebViewGetFrameLoadDelegate(webView);
   584         implementations.didCommitLoadForFrameFunc(frameLoadDelegate, @selector(webView:didCommitLoadForFrame:), webView, m_webFrame.get());
   595         implementations.didCommitLoadForFrameFunc(frameLoadDelegate, @selector(webView:didCommitLoadForFrame:), webView, m_webFrame.get());
   585     }
   596     }
   586     */
   597     */
       
   598     TRAP_IGNORE(
   587     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventTitleAvailable, 0, 0 );
   599     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventTitleAvailable, 0, 0 );
       
   600     );
   588 }
   601 }
   589 
   602 
   590 void WebFrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& error)
   603 void WebFrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& error)
   591 {
   604 {
   592     /*
   605     /*
   602     //
   615     //
   603     if (brctl(m_webFrame)->wmlMode() && m_WmlContentListener) {
   616     if (brctl(m_webFrame)->wmlMode() && m_WmlContentListener) {
   604         m_WmlContentListener->HandleError(0,error.errorCode());
   617         m_WmlContentListener->HandleError(0,error.errorCode());
   605     }
   618     }
   606     //
   619     //
       
   620     TRAP_IGNORE(
   607     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadError, 0, 0 );
   621     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadError, 0, 0 );
       
   622     );
   608     notImplemented(); 
   623     notImplemented(); 
   609 }
   624 }
   610 
   625 
   611 void WebFrameLoaderClient::dispatchDidFailLoad(const ResourceError& error)
   626 void WebFrameLoaderClient::dispatchDidFailLoad(const ResourceError& error)
   612 {
   627 {
   625     //
   640     //
   626     if (brctl(m_webFrame)->wmlMode() && m_WmlContentListener) {
   641     if (brctl(m_webFrame)->wmlMode() && m_WmlContentListener) {
   627         m_WmlContentListener->HandleError(0,error.errorCode());
   642         m_WmlContentListener->HandleError(0,error.errorCode());
   628     }
   643     }
   629     //
   644     //
       
   645     TRAP_IGNORE(
   630     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadError, 0, 0 );
   646     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadError, 0, 0 );
       
   647     );
   631     m_webFrame->frameView()->topView()->pageLoadFinished();
   648     m_webFrame->frameView()->topView()->pageLoadFinished();
   632     notImplemented(); 
   649     notImplemented(); 
   633 }
   650 }
   634 
   651 
   635 void WebFrameLoaderClient::dispatchDidFinishDocumentLoad() // called when parsing is finished
   652 void WebFrameLoaderClient::dispatchDidFinishDocumentLoad() // called when parsing is finished
   670     if (implementations.delegateImplementsDidFirstLayoutInFrame) {
   687     if (implementations.delegateImplementsDidFirstLayoutInFrame) {
   671         id frameLoadDelegate = WebViewGetFrameLoadDelegate(webView);
   688         id frameLoadDelegate = WebViewGetFrameLoadDelegate(webView);
   672         implementations.didFirstLayoutInFrameFunc(frameLoadDelegate, @selector(webView:didFirstLayoutInFrame:), webView, m_webFrame.get());
   689         implementations.didFirstLayoutInFrameFunc(frameLoadDelegate, @selector(webView:didFirstLayoutInFrame:), webView, m_webFrame.get());
   673     }
   690     }
   674     */
   691     */
       
   692     TRAP_IGNORE(
   675     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewContentDisplayed, 0, 0 );
   693     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewContentDisplayed, 0, 0 );
       
   694     );
   676 }
   695 }
   677 
   696 
   678 Frame* WebFrameLoaderClient::dispatchCreatePage()
   697 Frame* WebFrameLoaderClient::dispatchCreatePage()
   679 {
   698 {
   680     /*
   699     /*
   832 }
   851 }
   833 
   852 
   834 void WebFrameLoaderClient::postProgressStartedNotification() 
   853 void WebFrameLoaderClient::postProgressStartedNotification() 
   835 {
   854 {
   836     //    [[NSNotificationCenter defaultCenter] postNotificationName:WebViewProgressStartedNotification object:getWebView(m_webFrame.get())];
   855     //    [[NSNotificationCenter defaultCenter] postNotificationName:WebViewProgressStartedNotification object:getWebView(m_webFrame.get())];
       
   856     TRAP_IGNORE(
   837     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventUrlLoadingStart, 0, 0 );
   857     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventUrlLoadingStart, 0, 0 );
       
   858     );
   838     total_bytes = 0;
   859     total_bytes = 0;
   839 #ifdef PERF_REGRESSION_LOG
   860 #ifdef PERF_REGRESSION_LOG
   840         wkDebug()<<"Load started"<<mem<<flush;
   861         wkDebug()<<"Load started"<<mem<<flush;
   841 #endif // PERF_REGRESSION_LOG
   862 #endif // PERF_REGRESSION_LOG
   842 }
   863 }
   846 #ifdef PERF_REGRESSION_LOG
   867 #ifdef PERF_REGRESSION_LOG
   847     wkDebug()<<"Loading..."<<total_bytes<<"bytes"<<mem<<flush;
   868     wkDebug()<<"Loading..."<<total_bytes<<"bytes"<<mem<<flush;
   848 #endif // PERF_REGRESSION_LOG
   869 #endif // PERF_REGRESSION_LOG
   849     //    [[NSNotificationCenter defaultCenter] postNotificationName:WebViewProgressEstimateChangedNotification object:getWebView(m_webFrame.get())];
   870     //    [[NSNotificationCenter defaultCenter] postNotificationName:WebViewProgressEstimateChangedNotification object:getWebView(m_webFrame.get())];
   850     double estimatedProgress = core(m_webFrame)->page()->progress()->estimatedProgress();
   871     double estimatedProgress = core(m_webFrame)->page()->progress()->estimatedProgress();
       
   872     TRAP_IGNORE(
   851     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewUrlContentArrived, total_bytes / estimatedProgress, 0 );
   873     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewUrlContentArrived, total_bytes / estimatedProgress, 0 );
   852     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventMoreUrlContentArrived, total_bytes, 0 );
   874     brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventMoreUrlContentArrived, total_bytes, 0 );
       
   875     );
   853 }
   876 }
   854 
   877 
   855 void WebFrameLoaderClient::postProgressFinishedNotification() 
   878 void WebFrameLoaderClient::postProgressFinishedNotification() 
   856 {
   879 {
   857     TRAP_IGNORE(postProgressFinishedNotificationL());
   880     TRAP_IGNORE(postProgressFinishedNotificationL());
   905 }
   928 }
   906 
   929 
   907 void WebFrameLoaderClient::committedLoad(DocumentLoader* loader, const char* data, int length) 
   930 void WebFrameLoaderClient::committedLoad(DocumentLoader* loader, const char* data, int length) 
   908 { 
   931 { 
   909     if (brctl(m_webFrame)->wmlMode()) {
   932     if (brctl(m_webFrame)->wmlMode()) {
       
   933         TRAP_IGNORE(
   910         m_WmlContentListener->ResponseL( data, length );
   934         m_WmlContentListener->ResponseL( data, length );
       
   935         );
   911         return;
   936         return;
   912     }
   937     }
   913     m_webFrame->bridge()->receivedData(data, length, m_response.textEncodingName());
   938     m_webFrame->bridge()->receivedData(data, length, m_response.textEncodingName());
   914 }
   939 }
   915 
   940 
  1114 }
  1139 }
  1115 
  1140 
  1116 void WebFrameLoaderClient::frameLoadCompleted()
  1141 void WebFrameLoaderClient::frameLoadCompleted()
  1117 {
  1142 {
  1118     if (brctl(m_webFrame)->wmlMode()) {
  1143     if (brctl(m_webFrame)->wmlMode()) {
       
  1144         TRAP_IGNORE(
  1119         m_WmlContentListener->CompleteL( 0, 0 );
  1145         m_WmlContentListener->CompleteL( 0, 0 );
       
  1146         );
  1120         return;
  1147         return;
  1121     }
  1148     }
  1122     /*
  1149     /*
  1123     // Note: Can be called multiple times.
  1150     // Note: Can be called multiple times.
  1124     // Even if already complete, we might have set a previous item on a frame that
  1151     // Even if already complete, we might have set a previous item on a frame that
  1371     return String(); 
  1398     return String(); 
  1372 }
  1399 }
  1373 
  1400 
  1374 void WebFrameLoaderClient::windowObjectCleared() const
  1401 void WebFrameLoaderClient::windowObjectCleared() const
  1375 {
  1402 {
  1376     //    [m_webFrame->_private->bridge windowObjectCleared];
  1403     if (m_webFrame && !m_webFrame->parentFrame()) {
  1377     notImplemented(); 
  1404         m_webFrame->frameView()->topView()->windowObjectCleared();
       
  1405     }
  1378 }
  1406 }
  1379 
  1407 
  1380 void WebFrameLoaderClient::didPerformFirstNavigation() const
  1408 void WebFrameLoaderClient::didPerformFirstNavigation() const
  1381 {
  1409 {
  1382     notImplemented();
  1410     notImplemented();