28 #if defined(__BROWSER_SDK) |
28 #if defined(__BROWSER_SDK) |
29 #include <webkit_sdk.rsg> |
29 #include <webkit_sdk.rsg> |
30 #else |
30 #else |
31 #include <Webkit.rsg> |
31 #include <Webkit.rsg> |
32 #endif |
32 #endif |
33 #include <gulicon.h> |
33 #include <GULICON.h> |
34 #include <e32uid.h> |
34 #include <e32uid.h> |
35 #include <BrowserDialogsProvider.h> |
35 #include <browserdialogsprovider.h> |
36 //tot:fixme |
36 //tot:fixme |
37 //#include <oom.h> |
37 //#include "oom.h" |
38 |
38 |
39 #include "config.h" |
39 #include "config.h" |
40 #include "BrCtl.h" |
40 #include "BrCtl.h" |
41 #include "WebView.h" |
41 #include "WebView.h" |
42 #include "WebFrame.h" |
42 #include "WebFrame.h" |
43 #include "WebFrameView.h" |
43 #include "WebFrameView.h" |
44 #include "WebDataLoadConsumer.h" |
44 #include "WebDataLoadConsumer.h" |
45 #include "WebFormFillPopup.h" |
45 #include "WebFormFillPopup.h" |
46 #include "WebPageFullScreenHandler.h" |
46 #include "WebPageFullScreenHandler.h" |
47 #include "pagescaler.h" |
47 #include "PageScaler.h" |
|
48 #include "ThumbnailGenerator.h" |
48 #include "HistoryController.h" |
49 #include "HistoryController.h" |
49 #include "HistoryEntry.h" |
50 #include "HistoryEntry.h" |
50 #include "HistoryInterface.h" |
51 #include "HistoryInterface.h" |
51 #include "HistoryView.h" |
52 #include "HistoryView.h" |
52 #include "FormData.h" |
53 #include "FormData.h" |
69 #include "WebUtil.h" |
70 #include "WebUtil.h" |
70 #include "WebCharsetData.h" |
71 #include "WebCharsetData.h" |
71 #include "httpcachemanager.h" |
72 #include "httpcachemanager.h" |
72 #include "ResourceLoaderDelegate.h" |
73 #include "ResourceLoaderDelegate.h" |
73 #include "EventHandler.h" |
74 #include "EventHandler.h" |
74 #include "Timer.h" |
75 #include "timer.h" |
75 #include "Page.h" |
76 #include "page.h" |
76 #include "Range.h" |
77 #include "range.h" |
77 #include "FocusController.h" |
78 #include "focusController.h" |
78 #include "IconDatabase.h" |
79 #include "IconDatabase.h" |
79 #include "HttpDownload.h" |
80 #include "httpDownload.h" |
80 #include "BrCtlSoftkeysObserverImpl.h" |
81 #include "BrCtlSoftkeysObserverImpl.h" |
81 #include "BrCtlSpecialLoadObserverImpl.h" |
82 #include "BrCtlSpecialLoadObserverImpl.h" |
|
83 #include "WebFrameBridge.h" |
82 #include "BrCtlLayoutObserverImpl.h" |
84 #include "BrCtlLayoutObserverImpl.h" |
83 #include "BrCtlWindowObserverImpl.h" |
85 #include "BrCtlWindowObserverImpl.h" |
84 #include "WidgetExtension.h" |
86 #include "WidgetExtension.h" |
85 #include "PluginSkin.h" |
87 #include "PluginSkin.h" |
86 #include "HttpUiCallbacks.h" |
88 #include "HttpUiCallbacks.h" |
87 #include "PluginWin.h" |
89 #include "PluginWin.h" |
88 #include <CUserAgent.h> |
90 #include "GCController.h" |
|
91 #include <BrowserVersion.h> |
|
92 #include <cuseragent.h> |
|
93 #include "kjs_window.h" |
89 |
94 |
90 #ifndef BRDO_WML_DISABLED_FF |
95 #ifndef BRDO_WML_DISABLED_FF |
91 #include "WmlInterface.h" |
96 #include "wmlinterface.h" |
92 #include "WmlInterfaceImpl.h" |
97 #include "WmlInterfaceImpl.h" |
93 #include "WmlEngineInterface.h" |
98 #include "WmlEngineInterface.h" |
94 #endif |
99 #endif |
95 #include "WmlDispatcher.h" |
100 #include "WmlDispatcher.h" |
96 |
101 |
411 , m_brCtlSoftkeysObserver(aBrCtlSoftkeysObserver) |
416 , m_brCtlSoftkeysObserver(aBrCtlSoftkeysObserver) |
412 , m_brCtlLayoutObserver(aBrCtlLayoutObserver) |
417 , m_brCtlLayoutObserver(aBrCtlLayoutObserver) |
413 , m_commandIdBase(aCommandIdBase) |
418 , m_commandIdBase(aCommandIdBase) |
414 , m_capabilities(aBrCtlCapabilities) |
419 , m_capabilities(aBrCtlCapabilities) |
415 , m_suspendTimers(false) |
420 , m_suspendTimers(false) |
|
421 , m_pageLoadFinished(false) |
416 , m_wmlEngineInterface(NULL) |
422 , m_wmlEngineInterface(NULL) |
417 , m_brCtlDownloadObserver(aBrCtlDownloadObserver) |
423 , m_brCtlDownloadObserver(aBrCtlDownloadObserver) |
418 , m_windoCloseTimer(NULL) |
424 , m_windoCloseTimer(NULL) |
|
425 , m_didFirstLayout(false) |
|
426 , m_NotifyPluginFocusChangeEvent(false) |
419 { |
427 { |
420 m_documentHeight = 0; |
428 m_documentHeight = 0; |
421 m_displayHeight = 0; |
429 m_displayHeight = 0; |
422 m_displayPosY = 0; |
430 m_displayPosY = 0; |
423 m_documentWidth = 0; |
431 m_documentWidth = 0; |
474 } |
482 } |
475 |
483 |
476 // Create and initialize the Layout Observer |
484 // Create and initialize the Layout Observer |
477 if (m_brCtlLayoutObserver == NULL) |
485 if (m_brCtlLayoutObserver == NULL) |
478 { |
486 { |
479 m_brCtlLayoutObserver = new (ELeave) CBrCtlLayoutObserver(); |
487 m_brCtlLayoutObserver = new (ELeave) CBrCtlLayoutObserver(m_webView); |
480 m_ownsLayoutObserver = true; |
488 m_ownsLayoutObserver = true; |
481 } |
489 } |
482 // Create and initialize the Dialog Provider |
490 // Create and initialize the Dialog Provider |
483 if (m_brCtlDialogsProvider == NULL) |
491 if (m_brCtlDialogsProvider == NULL) |
484 { |
492 { |
492 m_brCtlWindowObserver = new (ELeave) CBrCtlWindowObserver(); |
500 m_brCtlWindowObserver = new (ELeave) CBrCtlWindowObserver(); |
493 m_ownsWindowObserver = true; |
501 m_ownsWindowObserver = true; |
494 } |
502 } |
495 |
503 |
496 LoadResourceFileL(); |
504 LoadResourceFileL(); |
|
505 |
|
506 MemoryManager::InitOOMDialog(); |
|
507 |
497 // Set the rect for BrowserControl (a CCoeControl). |
508 // Set the rect for BrowserControl (a CCoeControl). |
498 SetRect(aRect); |
509 SetRect(aRect); |
499 CCoeEnv::Static()->DisableExitChecks(true); |
510 CCoeEnv::Static()->DisableExitChecks(true); |
500 Window().AllocPointerMoveBuffer(256, 0); |
|
501 Window().DisablePointerMoveBuffer(); |
|
502 Window().PointerFilter(EPointerFilterMove | EPointerFilterDrag | EPointerFilterEnterExit, 0); |
511 Window().PointerFilter(EPointerFilterMove | EPointerFilterDrag | EPointerFilterEnterExit, 0); |
503 ActivateL(); |
512 ActivateL(); |
504 } |
513 } |
505 |
514 |
506 // ----------------------------------------------------------------------------- |
515 // ----------------------------------------------------------------------------- |
580 for (int i = 0; i < iLoadEventObserversArray.Count(); i++) |
589 for (int i = 0; i < iLoadEventObserversArray.Count(); i++) |
581 iLoadEventObserversArray[i]->HandleBrowserLoadEventL(aLoadEvent, aSize, aTransactionId); |
590 iLoadEventObserversArray[i]->HandleBrowserLoadEventL(aLoadEvent, aSize, aTransactionId); |
582 |
591 |
583 switch (aLoadEvent) { |
592 switch (aLoadEvent) { |
584 case TBrCtlDefs::EEventNewContentStart: |
593 case TBrCtlDefs::EEventNewContentStart: |
|
594 m_pageLoadFinished = false; |
585 if (m_webView->pageScalerEnabled()) |
595 if (m_webView->pageScalerEnabled()) |
586 m_webView->pageScaler()->DocumentStarted(); |
596 m_webView->pageScaler()->DocumentStarted(); |
587 if (m_webView->formFillPopup() && m_webView->formFillPopup()->IsVisible()) |
597 if (m_webView->formFillPopup() && m_webView->formFillPopup()->IsVisible()) |
588 m_webView->formFillPopup()->handleCommandL(TBrCtlDefs::ECommandCancel); |
598 m_webView->formFillPopup()->handleCommandL(TBrCtlDefs::ECommandCancel); |
589 break; |
599 break; |
|
600 case TBrCtlDefs::EEventNewContentDisplayed: |
|
601 if(m_brCtlLayoutObserver && m_webView && !m_didFirstLayout) { |
|
602 m_brCtlLayoutObserver->NotifyLayoutChange( (webView()->mainFrame()->bridge()->m_rtl ? EOriginTopRight : EOriginTopLeft)); |
|
603 m_didFirstLayout = true; |
|
604 } |
|
605 break; |
590 case TBrCtlDefs::EEventContentFinished: |
606 case TBrCtlDefs::EEventContentFinished: |
591 case TBrCtlDefs::EEventUploadFinished: |
607 case TBrCtlDefs::EEventUploadFinished: |
|
608 m_pageLoadFinished = true; |
|
609 m_didFirstLayout= false; |
592 if (m_suspendTimers) { |
610 if (m_suspendTimers) { |
593 m_suspendTimers = false; |
611 m_suspendTimers = false; |
594 HandleCommandL(TBrCtlDefs::ECommandAppBackground); |
612 m_webView->pauseJsTimers(); |
595 } |
613 } |
596 #ifndef BRDO_WML_DISABLED_FF |
614 #ifndef BRDO_WML_DISABLED_FF |
597 if (m_wmlUnloadPending) |
615 if (m_wmlUnloadPending) |
598 { |
616 { |
599 UnloadDllWmlEngine(); |
617 UnloadDllWmlEngine(); |
651 else if (FocusedElementType() == TBrCtlDefs::EElementActivatedObjectBox) { |
669 else if (FocusedElementType() == TBrCtlDefs::EElementActivatedObjectBox) { |
652 Frame* coreFrame = m_webView->page()->focusController()->focusedOrMainFrame(); |
670 Frame* coreFrame = m_webView->page()->focusController()->focusedOrMainFrame(); |
653 if (coreFrame) |
671 if (coreFrame) |
654 coreFrame->eventHandler()->deactivatedEvent(); |
672 coreFrame->eventHandler()->deactivatedEvent(); |
655 } |
673 } |
|
674 m_webView->setEditable(EFalse); |
656 break; |
675 break; |
657 } |
676 } |
658 case TBrCtlDefs::ECommandCancelFetch: |
677 case TBrCtlDefs::ECommandCancelFetch: |
659 { |
678 { |
660 m_webView->mainFrame()->stopLoading(); |
679 m_webView->Stop(); |
|
680 break; |
|
681 } |
|
682 |
|
683 case TBrCtlDefs::ECommandOOMExit: |
|
684 { |
|
685 WebCore::gcController().startedExit(true); |
|
686 KJS::setDeferringJSTimers(true); |
661 break; |
687 break; |
662 } |
688 } |
663 |
689 |
664 case TBrCtlDefs::ECommandShowThumbnailView: |
690 case TBrCtlDefs::ECommandShowThumbnailView: |
665 { |
691 { |
690 } |
716 } |
691 case TBrCtlDefs::ECommandOpen: |
717 case TBrCtlDefs::ECommandOpen: |
692 { |
718 { |
693 if (m_webView->pageView()) { |
719 if (m_webView->pageView()) { |
694 m_webView->closePageView(); |
720 m_webView->closePageView(); |
|
721 PluginSkin* plugin = m_webView->mainFrame()->focusedPlugin(); |
|
722 if(plugin) |
|
723 plugin->setPluginWinClipedRect(); |
695 } else { |
724 } else { |
696 if (m_historyHandler->historyController()->historyView()) { |
725 if (m_historyHandler->historyController()->historyView()) { |
697 // this is a weird way of managing history view. needs fixing |
726 // this is a weird way of managing history view. needs fixing |
698 TKeyEvent keyEvent; |
727 TKeyEvent keyEvent; |
699 keyEvent.iCode = EKeyDevice3; |
728 keyEvent.iCode = EKeyDevice3; |
761 #ifndef PERF_REGRESSION_LOG |
790 #ifndef PERF_REGRESSION_LOG |
762 if (isDeferringTimers()) |
791 if (isDeferringTimers()) |
763 setDeferringTimers(false); |
792 setDeferringTimers(false); |
764 m_suspendTimers = false; |
793 m_suspendTimers = false; |
765 #endif |
794 #endif |
766 |
795 m_webView->resumeJsTimers(); |
767 break; |
796 break; |
768 } |
797 } |
769 case TBrCtlDefs::ECommandAppBackground: |
798 case TBrCtlDefs::ECommandAppBackground: |
770 { |
799 { |
771 #ifndef PERF_REGRESSION_LOG |
800 #ifndef PERF_REGRESSION_LOG |
772 if (m_webView->isLoading()) |
801 if(m_webView->widgetExtension()) |
773 m_suspendTimers = true; |
802 { |
774 else if (!isDeferringTimers()) |
803 if(m_pageLoadFinished) |
775 setDeferringTimers(true); |
804 m_webView->pauseJsTimers(); |
|
805 else |
|
806 m_suspendTimers = true; |
|
807 } |
|
808 else |
|
809 { |
|
810 if (m_webView->isLoading()) |
|
811 m_suspendTimers = true; |
|
812 else |
|
813 m_webView->pauseJsTimers(); |
|
814 |
|
815 } |
776 #endif |
816 #endif |
777 |
817 |
778 //Disable the zooming bar when it goes to background |
818 //Disable the zooming bar when it goes to background |
779 m_webView->hideZoomSliderL(); |
819 m_webView->hideZoomSliderL(); |
|
820 m_webView->scrollStatus(false); |
|
821 // Instruct JS to garbage collect |
|
822 WebCore::gcController().garbageCollectSoon(); |
780 break; |
823 break; |
781 } |
824 } |
782 case TBrCtlDefs::ECommandClearAutoFormFillData: |
825 case TBrCtlDefs::ECommandClearAutoFormFillData: |
783 { |
826 { |
784 StaticObjectsContainer::instance()->formFillController()->clearFormData(); |
827 StaticObjectsContainer::instance()->formFillController()->clearFormData(); |
930 break; |
973 break; |
931 } |
974 } |
932 |
975 |
933 case TBrCtlDefs::ECommandEnterFullscreenBrowsing: |
976 case TBrCtlDefs::ECommandEnterFullscreenBrowsing: |
934 { |
977 { |
|
978 m_webView->resumeJsTimers(); |
935 m_webView->EnterFullscreenBrowsingL(); |
979 m_webView->EnterFullscreenBrowsingL(); |
936 break; |
980 break; |
937 } |
981 } |
938 |
982 |
939 case TBrCtlDefs::ECommandLeaveFullscreenBrowsing: |
983 case TBrCtlDefs::ECommandLeaveFullscreenBrowsing: |
940 { |
984 { |
941 m_webView->LeaveFullscreenBrowsingL(); |
985 m_webView->LeaveFullscreenBrowsingL(); |
942 break; |
986 break; |
943 } |
987 } |
944 |
988 |
|
989 case TBrCtlDefs::ECommandSetRetryConnectivityFlag: |
|
990 { |
|
991 StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->setRetryConnectivityFlag(); |
|
992 break; |
|
993 } |
|
994 case TBrCtlDefs::ECommandUnSetRetryConnectivityFlag: |
|
995 { |
|
996 StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->unSetRetryConnectivityFlag(); |
|
997 break; |
|
998 } |
|
999 case TBrCtlDefs::ECommandRetryTransactions: |
|
1000 { |
|
1001 StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->retryTransactions(); |
|
1002 m_webView->mainFrame()->reCreatePlugins(); |
|
1003 break; |
|
1004 } |
|
1005 case TBrCtlDefs::ECommandClearQuedTransactions: |
|
1006 { |
|
1007 StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->handleError(KErrCancel); |
|
1008 break; |
|
1009 } |
|
1010 case TBrCtlDefs::ECommandConnToDownloadManager: |
|
1011 { |
|
1012 TInt connectionPtr = 0; |
|
1013 TInt sockSvrHandle = 0; |
|
1014 TBool newConn = ETrue; |
|
1015 TApBearerType bearerType; |
|
1016 TInt error = KErrNone; |
|
1017 |
|
1018 TRAP(error, m_brCtlSpecialLoadObserver->NetworkConnectionNeededL(&connectionPtr, &sockSvrHandle, &newConn, &bearerType)); |
|
1019 if( error == KErrNone && connectionPtr ) |
|
1020 { |
|
1021 RConnection* connPtr = REINTERPRET_CAST( RConnection*, connectionPtr ); |
|
1022 TName name; |
|
1023 connPtr->Name( name ); |
|
1024 StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->httpDownload()->connect(name); |
|
1025 } |
|
1026 break; |
|
1027 } |
|
1028 case TBrCtlDefs::ECommandLoseFocus: |
|
1029 case TBrCtlDefs::ECommandPauseScriptTimers: |
|
1030 { |
|
1031 m_webView->pauseJsTimers(); |
|
1032 break; |
|
1033 } |
|
1034 |
|
1035 case TBrCtlDefs::ECommandGainFocus: |
|
1036 case TBrCtlDefs::ECommandResumeScriptTimers: |
|
1037 { |
|
1038 m_webView->resumeJsTimers(); |
|
1039 break; |
|
1040 } |
|
1041 case TBrCtlDefs::ECommandCancelQueuedTransactions: |
|
1042 { |
|
1043 StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->cancelQueuedTransactions(); |
|
1044 break; |
|
1045 } |
|
1046 |
|
1047 // Messages sent by OOM monitor |
|
1048 case TBrCtlDefs::ECommandFreeMemory: |
|
1049 { |
|
1050 MemoryManager::FreeRam(); // invoke memory collect operation |
|
1051 break; |
|
1052 } |
|
1053 case TBrCtlDefs::ECommandMemoryGood: |
|
1054 { |
|
1055 MemoryManager::RestoreCollectors(); // restore collectors |
|
1056 break; |
|
1057 } |
|
1058 case TBrCtlDefs::ECommandNotifyPluginFocusChangeEvent: |
|
1059 { |
|
1060 m_NotifyPluginFocusChangeEvent = true; |
|
1061 break; |
|
1062 } |
|
1063 |
945 default: |
1064 default: |
946 { |
1065 { |
947 if ( m_wmlEngineInterface && |
1066 if ( m_wmlEngineInterface && |
948 (TUint)aCommand >= m_commandIdBase + TBrCtlDefs::ECommandIdWMLBase && |
1067 (TUint)aCommand >= m_commandIdBase + TBrCtlDefs::ECommandIdWMLBase && |
949 (TUint)aCommand <= m_commandIdBase + TBrCtlDefs::ECommandIdRange ) |
1068 (TUint)aCommand <= m_commandIdBase + TBrCtlDefs::ECommandIdRange ) |
972 } |
1091 } |
973 } |
1092 } |
974 } |
1093 } |
975 } |
1094 } |
976 |
1095 |
|
1096 |
|
1097 EXPORT_C TBool CBrCtl::IsSynchRequestPending() |
|
1098 { |
|
1099 return m_webView->isSynchRequestPending(); |
|
1100 } |
|
1101 |
|
1102 |
977 // ----------------------------------------------------------------------------- |
1103 // ----------------------------------------------------------------------------- |
978 // CBrCtl::HandleDownloadCommandL |
1104 // CBrCtl::HandleDownloadCommandL |
979 // This method calls to download manager in order to send commands to the DlMgr |
1105 // This method calls to download manager in order to send commands to the DlMgr |
980 // ----------------------------------------------------------------------------- |
1106 // ----------------------------------------------------------------------------- |
981 // |
1107 // |
1147 m_webView->widgetExtension()->AddOptionMenuItemsL( aMenuPane, aResourceId ); |
1273 m_webView->widgetExtension()->AddOptionMenuItemsL( aMenuPane, aResourceId ); |
1148 return; |
1274 return; |
1149 } |
1275 } |
1150 |
1276 |
1151 int after = aAfter == -1 ? aAfter :0; |
1277 int after = aAfter == -1 ? aAfter :0; |
1152 TBrCtlDefs::TBrCtlElementType focusedElementType = FocusedElementType(); |
1278 TBrCtlDefs::TBrCtlElementType focusedElementType = TBrCtlDefs::EElementNone; |
|
1279 if(m_webView) |
|
1280 focusedElementType = FocusedElementType(); |
1153 |
1281 |
1154 int count = sizeof(commandsArray) / sizeof(TCommandsArray); |
1282 int count = sizeof(commandsArray) / sizeof(TCommandsArray); |
1155 bool found = false; |
1283 bool found = false; |
1156 int i; |
1284 int i; |
1157 for (i = count - 1; i >= 0; i--) { |
1285 for (i = count - 1; i >= 0; i--) { |
1173 // Give the plugin a chance to add its option menu items, send the Command Id |
1301 // Give the plugin a chance to add its option menu items, send the Command Id |
1174 // Base we're using for the plug-ins |
1302 // Base we're using for the plug-ins |
1175 // tot fixme |
1303 // tot fixme |
1176 //TPluginControl pluginControl(*iWebKitControl); |
1304 //TPluginControl pluginControl(*iWebKitControl); |
1177 //pluginControl.AddPluginOptionMenuItemsL(aMenuPane, TBrCtlDefs::ECommandIdPluginBase, aAfter); |
1305 //pluginControl.AddPluginOptionMenuItemsL(aMenuPane, TBrCtlDefs::ECommandIdPluginBase, aAfter); |
1178 PluginSkin* plugin = m_webView->mainFrame()->focusedPlugin(); |
1306 if(m_webView) { |
1179 if(plugin && plugin->pluginWin()) |
1307 PluginSkin* plugin = m_webView->mainFrame()->focusedPlugin(); |
1180 plugin->pluginWin()->addPluginOptionsL(aMenuPane, TBrCtlDefs::ECommandIdPluginBase, aAfter ); |
1308 if(plugin && plugin->pluginWin()) |
|
1309 plugin->pluginWin()->addPluginOptionsL(aMenuPane, TBrCtlDefs::ECommandIdPluginBase, aAfter ); |
|
1310 } |
1181 |
1311 |
1182 } |
1312 } |
1183 |
1313 |
1184 // ----------------------------------------------------------------------------- |
1314 // ----------------------------------------------------------------------------- |
1185 // CBrCtl::ClearCache |
1315 // CBrCtl::ClearCache |
1500 HBufC* versionInfo = HBufC::NewLC( versionPtr.Length() ); |
1630 HBufC* versionInfo = HBufC::NewLC( versionPtr.Length() ); |
1501 versionInfo->Des().Copy(versionPtr); |
1631 versionInfo->Des().Copy(versionPtr); |
1502 return versionInfo; |
1632 return versionInfo; |
1503 } |
1633 } |
1504 |
1634 |
1505 /*case TBrCtlDefs::EVersionInfoBuild: |
1635 case TBrCtlDefs::EVersionInfoBuild: |
1506 { |
1636 { |
1507 return MobileBrowserBuild.AllocLC(); |
1637 return MobileBrowserBuild.AllocLC(); |
1508 }*/ |
1638 } |
1509 |
1639 |
1510 case TBrCtlDefs::EBrowserVersion: |
1640 case TBrCtlDefs::EBrowserVersion: |
1511 { |
1641 { |
1512 TPtr nameAndVersionPtr = m_usrAgnt->BrowserNameAndVersionL()->Des(); |
1642 TPtr nameAndVersionPtr = m_usrAgnt->BrowserNameAndVersionL()->Des(); |
1513 HBufC* nameAndVersionInfo = HBufC::NewLC( nameAndVersionPtr.Length() ); |
1643 HBufC* nameAndVersionInfo = HBufC::NewLC( nameAndVersionPtr.Length() ); |
1649 // Check that we got a valid url |
1779 // Check that we got a valid url |
1650 if (url.Ptr() == NULL || url.Length() == 0) |
1780 if (url.Ptr() == NULL || url.Length() == 0) |
1651 User::Leave(KErrArgument); |
1781 User::Leave(KErrArgument); |
1652 // convert to 8 |
1782 // convert to 8 |
1653 |
1783 |
|
1784 // reset timers ptr, if paused from last page |
|
1785 m_webView->resetJsTimers(); |
|
1786 |
1654 _LIT(KJs, "javascript:"); |
1787 _LIT(KJs, "javascript:"); |
1655 if (url.Length() > KJs().Length()) { |
1788 if (url.Length() > KJs().Length()) { |
1656 if (url.Left(KJs().Length()).FindF(KJs) == 0) { |
1789 if (url.Left(KJs().Length()).FindF(KJs) == 0) { |
1657 core(m_webView->mainFrame())->loader()->executeScript(String(url.Mid(KJs().Length())), true); |
1790 core(m_webView->mainFrame())->loader()->executeScript(String(url.Mid(KJs().Length())), true); |
1658 return; |
1791 return; |
1774 if(!visible){ |
1907 if(!visible){ |
1775 m_webView->mainFrame()->frameLoader()->stopRedirectionTimerNow(); |
1908 m_webView->mainFrame()->frameLoader()->stopRedirectionTimerNow(); |
1776 } |
1909 } |
1777 else if(m_webView->mainFrame()->frameLoader()->checkScheduledRedirection()) |
1910 else if(m_webView->mainFrame()->frameLoader()->checkScheduledRedirection()) |
1778 m_webView->mainFrame()->frameLoader()->startRedirectionTimerNow(); |
1911 m_webView->mainFrame()->frameLoader()->startRedirectionTimerNow(); |
|
1912 |
|
1913 if( m_NotifyPluginFocusChangeEvent ) { |
|
1914 m_NotifyPluginFocusChangeEvent = false; |
|
1915 webView()->mainFrame()->notifyPluginFocusChangeEvent(visible); |
|
1916 } |
1779 m_webView->MakeVisible(visible); |
1917 m_webView->MakeVisible(visible); |
1780 } |
1918 } |
1781 |
1919 |
1782 if( visible && !isvisible && m_webView ) { |
1920 if( visible && !isvisible && m_webView ) { |
1783 m_webView->checkForZoomChange(); |
1921 m_webView->checkForZoomChange(); |
1784 } |
1922 } |
1785 |
1923 |
1786 if( m_webView->pageFullScreenHandler() && m_webView->pageFullScreenHandler()->isFullScreenMode() ) { |
1924 if(m_webView && m_webView->pageFullScreenHandler() && m_webView->pageFullScreenHandler()->isFullScreenMode() ) { |
1787 if (visible) |
1925 if (visible) |
1788 m_webView->pageFullScreenHandler()->showEscBtnL(); |
1926 m_webView->pageFullScreenHandler()->showEscBtnL(); |
1789 else |
1927 else |
1790 m_webView->pageFullScreenHandler()->hideEscBtnL(); |
1928 m_webView->pageFullScreenHandler()->hideEscBtnL(); |
1791 } |
1929 } |
2005 return m_webView->focusedImageLC(); |
2143 return m_webView->focusedImageLC(); |
2006 } |
2144 } |
2007 |
2145 |
2008 EXPORT_C TBool CBrCtl::OkToExit() |
2146 EXPORT_C TBool CBrCtl::OkToExit() |
2009 { |
2147 { |
2010 return WebCore::StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->httpDownload()->okToExit(); |
2148 HttpDownload* httpDownload = WebCore::StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->httpDownload(); |
|
2149 if ( httpDownload ) |
|
2150 { |
|
2151 return httpDownload->okToExit(); |
|
2152 } |
|
2153 return ETrue; |
2011 } |
2154 } |
2012 |
2155 |
2013 EXPORT_C CGulIcon* CBrCtl::GetBitmapData(const TDesC& aUrl, TBrCtlDefs::TBrCtlBitmapInfo aBitmapInfo) |
2156 EXPORT_C CGulIcon* CBrCtl::GetBitmapData(const TDesC& aUrl, TBrCtlDefs::TBrCtlBitmapInfo aBitmapInfo) |
2014 { |
2157 { |
2015 CGulIcon* icon = NULL; |
2158 CGulIcon* icon = NULL; |
2019 { |
2162 { |
2020 HistoryEntry* entry = m_historyHandler->historyController()->entry(EHistoryStackDirectionCurrent); |
2163 HistoryEntry* entry = m_historyHandler->historyController()->entry(EHistoryStackDirectionCurrent); |
2021 if ( entry ) { |
2164 if ( entry ) { |
2022 CFbsBitmap* bitmap = entry->thumbnail(); |
2165 CFbsBitmap* bitmap = entry->thumbnail(); |
2023 if(!bitmap) { |
2166 if(!bitmap) { |
2024 // get scaled page from PageScaler; |
2167 if(m_webView->pageThumbnailGenerator()) { |
2025 bitmap = m_webView->pageScaler()->ScaledPage(); |
2168 //get the page thumbnail |
|
2169 bitmap = m_webView->pageThumbnailGenerator()->PageThumbnail(); |
|
2170 } |
|
2171 else { |
|
2172 // get scaled page from PageScaler; |
|
2173 bitmap = m_webView->pageScaler()->ScaledPage(); |
|
2174 } |
2026 } |
2175 } |
2027 if(bitmap) { |
2176 if(bitmap) { |
2028 // update the history with new bitmap |
2177 // update the history with new bitmap |
2029 TRAP_IGNORE(m_historyHandler->historyController()->updateHistoryEntryThumbnailL(bitmap)); |
2178 TRAP_IGNORE(m_historyHandler->historyController()->updateHistoryEntryThumbnailL(bitmap)); |
2030 TRAP_IGNORE(icon = CGulIcon::NewL(bitmap, NULL)); |
2179 TRAP_IGNORE(icon = CGulIcon::NewL(bitmap, NULL)); |
2104 |
2254 |
2105 void CBrCtl::doCloseWindowSoon() |
2255 void CBrCtl::doCloseWindowSoon() |
2106 { |
2256 { |
2107 m_windoCloseTimer->Cancel(); |
2257 m_windoCloseTimer->Cancel(); |
2108 if (brCtlWindowObserver()) |
2258 if (brCtlWindowObserver()) |
2109 TRAP_IGNORE(brCtlWindowObserver()->HandleWindowCommandL(KNullDesC(), ECloseWindow)); |
2259 { |
|
2260 TRAPD(err,brCtlWindowObserver()->HandleWindowCommandL(KNullDesC(), ECloseWindow)); |
|
2261 if ( err == KLeaveExit ) |
|
2262 { // while we exit the browser it actually leaves with KLeaveExit from the system. |
|
2263 // If we block this here then the exit would not happen so propogate the leave |
|
2264 // condition to the system for handling |
|
2265 User::Leave(KLeaveExit); |
|
2266 } |
|
2267 } |
2110 } |
2268 } |
2111 |
2269 |
2112 TBool CBrCtl::sendCommandsToClient( |
2270 TBool CBrCtl::sendCommandsToClient( |
2113 TBrCtlDefs::TBrCtlClientCommands aCommand, |
2271 TBrCtlDefs::TBrCtlClientCommands aCommand, |
2114 const CArrayFix<TPtrC>& aAttributesNames, |
2272 const CArrayFix<TPtrC>& aAttributesNames, |