418 , m_suspendTimers(false) |
418 , m_suspendTimers(false) |
419 , m_pageLoadFinished(false) |
419 , m_pageLoadFinished(false) |
420 , m_wmlEngineInterface(NULL) |
420 , m_wmlEngineInterface(NULL) |
421 , m_brCtlDownloadObserver(aBrCtlDownloadObserver) |
421 , m_brCtlDownloadObserver(aBrCtlDownloadObserver) |
422 , m_windoCloseTimer(NULL) |
422 , m_windoCloseTimer(NULL) |
|
423 , m_didFirstLayout(false) |
423 { |
424 { |
424 m_documentHeight = 0; |
425 m_documentHeight = 0; |
425 m_displayHeight = 0; |
426 m_displayHeight = 0; |
426 m_displayPosY = 0; |
427 m_displayPosY = 0; |
427 m_documentWidth = 0; |
428 m_documentWidth = 0; |
592 m_webView->pageScaler()->DocumentStarted(); |
593 m_webView->pageScaler()->DocumentStarted(); |
593 if (m_webView->formFillPopup() && m_webView->formFillPopup()->IsVisible()) |
594 if (m_webView->formFillPopup() && m_webView->formFillPopup()->IsVisible()) |
594 m_webView->formFillPopup()->handleCommandL(TBrCtlDefs::ECommandCancel); |
595 m_webView->formFillPopup()->handleCommandL(TBrCtlDefs::ECommandCancel); |
595 break; |
596 break; |
596 case TBrCtlDefs::EEventNewContentDisplayed: |
597 case TBrCtlDefs::EEventNewContentDisplayed: |
597 if(m_brCtlLayoutObserver && m_webView) |
598 if(m_brCtlLayoutObserver && m_webView && !m_didFirstLayout) { |
598 m_brCtlLayoutObserver->NotifyLayoutChange( (webView()->mainFrame()->bridge()->m_rtl ? EOriginTopRight : EOriginTopLeft)); |
599 m_brCtlLayoutObserver->NotifyLayoutChange( (webView()->mainFrame()->bridge()->m_rtl ? EOriginTopRight : EOriginTopLeft)); |
|
600 m_didFirstLayout = true; |
|
601 } |
599 break; |
602 break; |
600 case TBrCtlDefs::EEventContentFinished: |
603 case TBrCtlDefs::EEventContentFinished: |
601 case TBrCtlDefs::EEventUploadFinished: |
604 case TBrCtlDefs::EEventUploadFinished: |
602 m_pageLoadFinished = true; |
605 m_pageLoadFinished = true; |
|
606 m_didFirstLayout= false; |
603 if (m_suspendTimers) { |
607 if (m_suspendTimers) { |
604 m_suspendTimers = false; |
608 m_suspendTimers = false; |
605 setDeferringTimers(true); |
609 setDeferringTimers(true); |
606 } |
610 } |
607 #ifndef BRDO_WML_DISABLED_FF |
611 #ifndef BRDO_WML_DISABLED_FF |
662 else if (FocusedElementType() == TBrCtlDefs::EElementActivatedObjectBox) { |
666 else if (FocusedElementType() == TBrCtlDefs::EElementActivatedObjectBox) { |
663 Frame* coreFrame = m_webView->page()->focusController()->focusedOrMainFrame(); |
667 Frame* coreFrame = m_webView->page()->focusController()->focusedOrMainFrame(); |
664 if (coreFrame) |
668 if (coreFrame) |
665 coreFrame->eventHandler()->deactivatedEvent(); |
669 coreFrame->eventHandler()->deactivatedEvent(); |
666 } |
670 } |
|
671 m_webView->setEditable(EFalse); |
667 break; |
672 break; |
668 } |
673 } |
669 case TBrCtlDefs::ECommandCancelFetch: |
674 case TBrCtlDefs::ECommandCancelFetch: |
670 { |
675 { |
671 m_webView->Stop(); |
676 m_webView->Stop(); |
775 #ifndef PERF_REGRESSION_LOG |
780 #ifndef PERF_REGRESSION_LOG |
776 if (isDeferringTimers()) |
781 if (isDeferringTimers()) |
777 setDeferringTimers(false); |
782 setDeferringTimers(false); |
778 m_suspendTimers = false; |
783 m_suspendTimers = false; |
779 #endif |
784 #endif |
780 |
785 m_webView->resumeJsTimers(); |
781 break; |
786 break; |
782 } |
787 } |
783 case TBrCtlDefs::ECommandAppBackground: |
788 case TBrCtlDefs::ECommandAppBackground: |
784 { |
789 { |
785 #ifndef PERF_REGRESSION_LOG |
790 #ifndef PERF_REGRESSION_LOG |
799 } |
804 } |
800 #endif |
805 #endif |
801 |
806 |
802 //Disable the zooming bar when it goes to background |
807 //Disable the zooming bar when it goes to background |
803 m_webView->hideZoomSliderL(); |
808 m_webView->hideZoomSliderL(); |
|
809 m_webView->pauseJsTimers(); |
804 break; |
810 break; |
805 } |
811 } |
806 case TBrCtlDefs::ECommandClearAutoFormFillData: |
812 case TBrCtlDefs::ECommandClearAutoFormFillData: |
807 { |
813 { |
808 StaticObjectsContainer::instance()->formFillController()->clearFormData(); |
814 StaticObjectsContainer::instance()->formFillController()->clearFormData(); |
1003 connPtr->Name( name ); |
1010 connPtr->Name( name ); |
1004 StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->httpDownload()->connect(name); |
1011 StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->httpDownload()->connect(name); |
1005 } |
1012 } |
1006 break; |
1013 break; |
1007 } |
1014 } |
1008 |
1015 case TBrCtlDefs::ECommandLoseFocus: |
|
1016 case TBrCtlDefs::ECommandPauseScriptTimers: |
|
1017 { |
|
1018 m_webView->pauseJsTimers(); |
|
1019 break; |
|
1020 } |
|
1021 |
|
1022 case TBrCtlDefs::ECommandGainFocus: |
|
1023 case TBrCtlDefs::ECommandResumeScriptTimers: |
|
1024 { |
|
1025 m_webView->resumeJsTimers(); |
|
1026 break; |
|
1027 } |
|
1028 case TBrCtlDefs::ECommandCancelQueuedTransactions: |
|
1029 { |
|
1030 StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->cancelQueuedTransactions(); |
|
1031 break; |
|
1032 } |
1009 default: |
1033 default: |
1010 { |
1034 { |
1011 if ( m_wmlEngineInterface && |
1035 if ( m_wmlEngineInterface && |
1012 (TUint)aCommand >= m_commandIdBase + TBrCtlDefs::ECommandIdWMLBase && |
1036 (TUint)aCommand >= m_commandIdBase + TBrCtlDefs::ECommandIdWMLBase && |
1013 (TUint)aCommand <= m_commandIdBase + TBrCtlDefs::ECommandIdRange ) |
1037 (TUint)aCommand <= m_commandIdBase + TBrCtlDefs::ECommandIdRange ) |
1715 // Check that we got a valid url |
1739 // Check that we got a valid url |
1716 if (url.Ptr() == NULL || url.Length() == 0) |
1740 if (url.Ptr() == NULL || url.Length() == 0) |
1717 User::Leave(KErrArgument); |
1741 User::Leave(KErrArgument); |
1718 // convert to 8 |
1742 // convert to 8 |
1719 |
1743 |
|
1744 // reset timers ptr, if paused from last page |
|
1745 m_webView->resetJsTimers(); |
|
1746 |
1720 _LIT(KJs, "javascript:"); |
1747 _LIT(KJs, "javascript:"); |
1721 if (url.Length() > KJs().Length()) { |
1748 if (url.Length() > KJs().Length()) { |
1722 if (url.Left(KJs().Length()).FindF(KJs) == 0) { |
1749 if (url.Left(KJs().Length()).FindF(KJs) == 0) { |
1723 core(m_webView->mainFrame())->loader()->executeScript(String(url.Mid(KJs().Length())), true); |
1750 core(m_webView->mainFrame())->loader()->executeScript(String(url.Mid(KJs().Length())), true); |
1724 return; |
1751 return; |