75 #include "page.h" |
75 #include "page.h" |
76 #include "range.h" |
76 #include "range.h" |
77 #include "focusController.h" |
77 #include "focusController.h" |
78 #include "IconDatabase.h" |
78 #include "IconDatabase.h" |
79 #include "httpDownload.h" |
79 #include "httpDownload.h" |
|
80 #include "BrCtlSoftkeysObserverImpl.h" |
|
81 #include "BrCtlSpecialLoadObserverImpl.h" |
80 #include "BrCtlLayoutObserverImpl.h" |
82 #include "BrCtlLayoutObserverImpl.h" |
|
83 #include "BrCtlWindowObserverImpl.h" |
81 #include "WidgetExtension.h" |
84 #include "WidgetExtension.h" |
82 #include "PluginSkin.h" |
85 #include "PluginSkin.h" |
83 #include "HttpUiCallbacks.h" |
86 #include "HttpUiCallbacks.h" |
84 #include "PluginWin.h" |
87 #include "PluginWin.h" |
85 #include <BrowserVersion.h> |
88 #include <BrowserVersion.h> |
408 , m_commandIdBase(aCommandIdBase) |
411 , m_commandIdBase(aCommandIdBase) |
409 , m_capabilities(aBrCtlCapabilities) |
412 , m_capabilities(aBrCtlCapabilities) |
410 , m_suspendTimers(false) |
413 , m_suspendTimers(false) |
411 , m_wmlEngineInterface(NULL) |
414 , m_wmlEngineInterface(NULL) |
412 , m_brCtlDownloadObserver(aBrCtlDownloadObserver) |
415 , m_brCtlDownloadObserver(aBrCtlDownloadObserver) |
|
416 , m_windoCloseTimer(NULL) |
413 { |
417 { |
414 m_documentHeight = 0; |
418 m_documentHeight = 0; |
415 m_displayHeight = 0; |
419 m_displayHeight = 0; |
416 m_displayPosY = 0; |
420 m_displayPosY = 0; |
417 m_documentWidth = 0; |
421 m_documentWidth = 0; |
418 m_displayWidth = 0; |
422 m_displayWidth = 0; |
419 m_displayPosX = 0; |
423 m_displayPosX = 0; |
420 m_hasHorizontalScrollbar = false; |
424 m_hasHorizontalScrollbar = false; |
|
425 m_ownsSpecialLoadObserver = false; |
|
426 m_ownsSoftkeysObserver = false; |
421 m_ownsLayoutObserver = false; |
427 m_ownsLayoutObserver = false; |
422 m_ownsDialogsProvider = false; |
428 m_ownsDialogsProvider = false; |
|
429 m_ownsWindowObserver = false; |
423 } |
430 } |
424 |
431 |
425 // ----------------------------------------------------------------------------- |
432 // ----------------------------------------------------------------------------- |
426 // CBrCtl::ConstructL |
433 // CBrCtl::ConstructL |
427 // Symbian 2nd phase constructor can leave. |
434 // Symbian 2nd phase constructor can leave. |
446 m_settingsContainer = new (ELeave) SettingsContainer(m_webView, m_historyHandler->historyController()); |
453 m_settingsContainer = new (ELeave) SettingsContainer(m_webView, m_historyHandler->historyController()); |
447 m_settingsContainer->setNavigationType((capabilities()&TBrCtlDefs::ECapabilityCursorNavigation) ? SettingsContainer::NavigationTypeCursor : SettingsContainer::NavigationTypeTabbed); |
454 m_settingsContainer->setNavigationType((capabilities()&TBrCtlDefs::ECapabilityCursorNavigation) ? SettingsContainer::NavigationTypeCursor : SettingsContainer::NavigationTypeTabbed); |
448 |
455 |
449 m_usrAgnt = CUserAgent::NewL(); |
456 m_usrAgnt = CUserAgent::NewL(); |
450 |
457 |
|
458 // Create and initialize the Special Load Observer |
|
459 if (m_brCtlSpecialLoadObserver == NULL) |
|
460 { |
|
461 m_brCtlSpecialLoadObserver = new (ELeave) CBrCtlSpecialLoadObserver(); |
|
462 m_ownsSpecialLoadObserver = true; |
|
463 } |
|
464 |
|
465 |
|
466 // Setup default support, if it wasn't passed into the constructor... |
|
467 // Create and initialize the Softkey Observer |
|
468 if (m_brCtlSoftkeysObserver == NULL) |
|
469 { |
|
470 m_brCtlSoftkeysObserver = new (ELeave) CBrCtlSoftkeysObserver(); |
|
471 m_ownsSoftkeysObserver = true; |
|
472 } |
|
473 |
|
474 // Create and initialize the Layout Observer |
451 if (m_brCtlLayoutObserver == NULL) |
475 if (m_brCtlLayoutObserver == NULL) |
452 { |
476 { |
453 m_brCtlLayoutObserver = new (ELeave) CBrCtlLayoutObserver(); |
477 m_brCtlLayoutObserver = new (ELeave) CBrCtlLayoutObserver(); |
454 m_ownsLayoutObserver = true; |
478 m_ownsLayoutObserver = true; |
455 } |
479 } |
|
480 // Create and initialize the Dialog Provider |
456 if (m_brCtlDialogsProvider == NULL) |
481 if (m_brCtlDialogsProvider == NULL) |
457 { |
482 { |
458 m_brCtlDialogsProvider = CBrowserDialogsProvider::NewL(NULL); |
483 m_brCtlDialogsProvider = CBrowserDialogsProvider::NewL(NULL); |
459 m_ownsDialogsProvider = true; |
484 m_ownsDialogsProvider = true; |
460 } |
485 } |
|
486 |
|
487 // window observer |
|
488 if(m_brCtlWindowObserver == NULL) |
|
489 { |
|
490 m_brCtlWindowObserver = new (ELeave) CBrCtlWindowObserver(); |
|
491 m_ownsWindowObserver = true; |
|
492 } |
|
493 |
461 LoadResourceFileL(); |
494 LoadResourceFileL(); |
462 // Set the rect for BrowserControl (a CCoeControl). |
495 // Set the rect for BrowserControl (a CCoeControl). |
463 SetRect(aRect); |
496 SetRect(aRect); |
464 CCoeEnv::Static()->DisableExitChecks(true); |
497 CCoeEnv::Static()->DisableExitChecks(true); |
465 Window().AllocPointerMoveBuffer(256, 0); |
498 Window().AllocPointerMoveBuffer(256, 0); |
476 EXPORT_C CBrCtl::~CBrCtl() |
509 EXPORT_C CBrCtl::~CBrCtl() |
477 { |
510 { |
478 iLoadEventObserversArray.Close(); |
511 iLoadEventObserversArray.Close(); |
479 iLoadEventObserversArray.Close(); |
512 iLoadEventObserversArray.Close(); |
480 m_stateChangeObserverArray.Close(); |
513 m_stateChangeObserverArray.Close(); |
481 m_commandObserverArray.ResetAndDestroy(); |
|
482 m_commandObserverArray.Close(); |
514 m_commandObserverArray.Close(); |
483 m_subscribeToItems.ResetAndDestroy(); |
515 m_subscribeToItems.ResetAndDestroy(); |
484 m_subscribeToItems.Close(); |
516 m_subscribeToItems.Close(); |
485 m_subscribeToUrls.ResetAndDestroy(); |
517 m_subscribeToUrls.ResetAndDestroy(); |
486 m_subscribeToUrls.Close(); |
518 m_subscribeToUrls.Close(); |
487 |
519 |
488 delete m_webView; |
520 delete m_webView; |
489 delete m_historyHandler; |
521 delete m_historyHandler; |
490 delete m_settingsContainer; |
522 delete m_settingsContainer; |
491 delete m_usrAgnt; |
523 delete m_usrAgnt; |
|
524 |
|
525 if (m_ownsSpecialLoadObserver) { |
|
526 delete (CBrCtlSpecialLoadObserver*)m_brCtlSpecialLoadObserver; |
|
527 } |
|
528 |
|
529 if (m_ownsSoftkeysObserver) { |
|
530 delete (CBrCtlSoftkeysObserver*)m_brCtlSoftkeysObserver; |
|
531 } |
|
532 |
|
533 if (m_ownsWindowObserver) { |
|
534 delete (CBrCtlWindowObserver*)m_brCtlWindowObserver; |
|
535 } |
492 |
536 |
493 if (m_ownsLayoutObserver) { |
537 if (m_ownsLayoutObserver) { |
494 delete (CBrCtlLayoutObserver*)m_brCtlLayoutObserver; |
538 delete (CBrCtlLayoutObserver*)m_brCtlLayoutObserver; |
495 } |
539 } |
496 if (m_ownsDialogsProvider) { |
540 if (m_ownsDialogsProvider) { |
498 } |
542 } |
499 if (m_timer) { |
543 if (m_timer) { |
500 m_timer->Cancel(); |
544 m_timer->Cancel(); |
501 delete m_timer; |
545 delete m_timer; |
502 } |
546 } |
|
547 if (m_windoCloseTimer) { |
|
548 m_windoCloseTimer->Cancel(); |
|
549 delete m_windoCloseTimer; |
|
550 } |
|
551 |
503 if (m_dataLoadConsumer) { |
552 if (m_dataLoadConsumer) { |
504 m_dataLoadConsumer->stopDataLoad(); |
553 m_dataLoadConsumer->stopDataLoad(); |
505 endLoadData(); |
554 endLoadData(); |
506 } |
555 } |
507 m_brCtlLayoutObserver = NULL; |
556 m_brCtlLayoutObserver = NULL; |
508 m_brCtlDialogsProvider = NULL; |
557 m_brCtlDialogsProvider = NULL; |
509 m_brCtlDownloadObserver = NULL; |
558 m_brCtlDownloadObserver = NULL; |
|
559 m_brCtlWindowObserver = NULL; |
|
560 m_brCtlSoftkeysObserver = NULL; |
|
561 m_brCtlSpecialLoadObserver = NULL; |
510 |
562 |
511 UnloadDllWmlEngine(); |
563 UnloadDllWmlEngine(); |
512 |
564 |
513 // remove resource file |
565 // remove resource file |
514 CCoeEnv::Static()->DeleteResourceFile(m_resourceFile); |
566 CCoeEnv::Static()->DeleteResourceFile(m_resourceFile); |
2034 } |
2088 } |
2035 } |
2089 } |
2036 |
2090 |
2037 void CBrCtl::closeWindowSoon() |
2091 void CBrCtl::closeWindowSoon() |
2038 { |
2092 { |
2039 m_timer = CPeriodic::NewL(CActive::EPriorityIdle); |
2093 if( m_windoCloseTimer ) { |
2040 m_timer->Start( 20, 0, TCallBack( &doCloseCb, this ) ); |
2094 m_windoCloseTimer->Cancel(); |
|
2095 } |
|
2096 else { |
|
2097 m_windoCloseTimer = CPeriodic::NewL(CActive::EPriorityIdle); |
|
2098 } |
|
2099 |
|
2100 m_windoCloseTimer->Start( 20, 0, TCallBack( &doCloseCb, this ) ); |
2041 } |
2101 } |
2042 |
2102 |
2043 void CBrCtl::doCloseWindowSoon() |
2103 void CBrCtl::doCloseWindowSoon() |
2044 { |
2104 { |
2045 m_timer->Cancel(); |
2105 m_windoCloseTimer->Cancel(); |
2046 if (brCtlWindowObserver()) |
2106 if (brCtlWindowObserver()) |
2047 TRAP_IGNORE(brCtlWindowObserver()->HandleWindowCommandL(KNullDesC(), ECloseWindow)); |
2107 TRAP_IGNORE(brCtlWindowObserver()->HandleWindowCommandL(KNullDesC(), ECloseWindow)); |
2048 } |
2108 } |
2049 |
2109 |
2050 TBool CBrCtl::sendCommandsToClient( |
2110 TBool CBrCtl::sendCommandsToClient( |