Refactoring and optimization 21/89121/2
authorKamil Nowac <k.nowac@samsung.com>
Mon, 19 Sep 2016 13:46:40 +0000 (15:46 +0200)
committerKamil Nowac <k.nowac@samsung.com>
Mon, 26 Sep 2016 06:29:13 +0000 (08:29 +0200)
[Issue]    http://suprem.sec.samsung.net/jira/browse/TWF-2109
[Problem]  Too slow loading time
[Solution] Refactoring
[Verify]   Open dlogutil. Open browser.
           Time between the first browser log and
           app_resume log should be shorter than
           without this change.

Change-Id: I57439f0959efbfc06910b6f3a7abe33b90b3633e

core/ServiceManager/ServiceManager.cpp
services/BookmarkService/BookmarkService.cpp
services/SimpleUI/SimpleUI.cpp
services/SimpleUI/SimpleUI.h
services/SimpleUI/ViewManager.cpp
services/TabService/TabService.cpp

index 09666e963055861973221a651fa8f502cab20bd3..74ee52319a8077c2282ca2813abf101d52a4db96 100644 (file)
@@ -30,67 +30,60 @@ ServiceManagerPrivate::ServiceManagerPrivate()
 {
     findServiceLibs();
     loadServiceLibs();
-    enumerateServices();
 }
 
 ServiceManagerPrivate::~ServiceManagerPrivate()
 {}
 
-void ServiceManagerPrivate::findServiceLibs()
+void ServiceManagerPrivate::findServiceLibs() try
 {
-    try{
-        boost::filesystem::path servicesDir(boost::any_cast<std::string>(tizen_browser::config::Config::getInstance().get("services/dir")));
-        for( boost::filesystem::directory_iterator it(servicesDir);
-                it != boost::filesystem::directory_iterator();
-                ++it){
-            boost::filesystem::path item(*it);
-            if(boost::filesystem::is_regular_file(item)){
-                if( (item.extension().string() == ".so" )
-                    && (item.filename().string().find("lib") == 0)){
-                    try{
-                        servicesLoaderMap[item.string()] = std::shared_ptr<ServiceLoader>(new ServiceLoader(item.string()));
-                    } catch (std::runtime_error & e){
-                        BROWSER_LOGD(e.what() );
-                    }
+    boost::filesystem::path servicesDir(
+        boost::any_cast<std::string>(tizen_browser::config::Config::getInstance().get("services/dir")));
+    for (boost::filesystem::directory_iterator it(servicesDir);
+        it != boost::filesystem::directory_iterator();
+        ++it) {
+        boost::filesystem::path item(*it);
+        if (boost::filesystem::is_regular_file(item)) {
+            if ((item.extension().string() == ".so" ) &&
+                (item.filename().string().find("lib") != std::string::npos)) {
+                try {
+                    servicesLoaderMap[item.string()] = std::make_shared<ServiceLoader>(item.string());
+                } catch (std::runtime_error & e) {
+                    BROWSER_LOGD(e.what() );
                 }
             }
         }
-    } catch (const boost::filesystem::filesystem_error& ex){
-        BROWSER_LOGD(ex.what() );
     }
+} catch (const boost::filesystem::filesystem_error& ex) {
+    BROWSER_LOGD(ex.what());
 }
 
 void ServiceManagerPrivate::loadServiceLibs()
 {
-    ///\todo: make shure that librareis are founded.
-    auto end = servicesLoaderMap.end();
-    for(auto slm = servicesLoaderMap.begin(); slm !=end; slm++ ){
-        try{
-            ServiceFactory* factory=((*slm).second->getFactory());
+    /// TODO make sure that librareis are founded.
+    for (auto slm : servicesLoaderMap) {
+        try {
+            auto factory = slm.second->getFactory();
             servicesMap[factory->serviceName()] = factory;//do not write to map if there's an error.
-        }catch (std::runtime_error& e){
+        } catch (const std::runtime_error& e) {
             BROWSER_LOGD(e.what() );
         }
     }
 }
 
 void ServiceManagerPrivate::enumerateServices(){
-    auto end = servicesMap.end();
-    for( auto sm = servicesMap.begin(); sm != end; sm++){
-        BROWSER_LOGD("%s:%p", (*sm).first.c_str(), (*sm).second );
-    }
+    for (auto sm : servicesMap)
+        BROWSER_LOGD("%s:%p", sm.first.c_str(), sm.second);
 }
 
 ServiceManager::ServiceManager()
     :d(new ServiceManagerPrivate)
-{
-
-}
+{}
 
 ServiceManager& ServiceManager::getInstance(void)
 {
-        static ServiceManager instance;
-        return instance;
+    static ServiceManager instance;
+    return instance;
 }
 
 std::shared_ptr< AbstractService > ServiceManager::getService(const std::string& service)
@@ -102,9 +95,8 @@ std::shared_ptr< AbstractService > ServiceManager::getService(const std::string&
     std::lock_guard<std::mutex> hold(mut);
     auto sp = cache[service];
 
-    if(!sp){
+    if (!sp)
         cache[service] = sp = std::shared_ptr<AbstractService>(d->servicesMap[service]->create());
-    }
     return sp;
 }
 
index a4589f40c60cb226aa8b04a41b114c700093e650..59582c7a33770c4f137b67bf017fc407d4006f0f 100644 (file)
@@ -445,13 +445,8 @@ std::vector<std::shared_ptr<BookmarkItem> > BookmarkService::getBookmarks(int fo
     std::vector<std::shared_ptr<BookmarkItem> > bookmarks;
     int *ids = nullptr;
     int ids_count = 0;
-#if PROFILE_MOBILE
-    if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id,
-            ALL_TYPE, -1, -1, BP_BOOKMARK_O_SEQUENCE, 0) < 0) {
-#else
     if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id,
-            BOOKMARK_TYPE, -1, -1, BP_BOOKMARK_O_SEQUENCE, 0) < 0) {
-#endif
+            ALL_TYPE, -1, -1, BP_BOOKMARK_O_SEQUENCE, 0) < 0 || !ids_count) {
         errorPrint("bp_bookmark_adaptor_get_ids_p");
         return std::vector<std::shared_ptr<BookmarkItem>>();
     }
@@ -468,7 +463,8 @@ std::vector<std::shared_ptr<BookmarkItem> > BookmarkService::getBookmarks(int fo
                     title, std::string(""), bookmark_info.parent, bookmark_info.sequence);
 
             if (bookmark_info.thumbnail_length > 0) {
-                tools::BrowserImagePtr bi = std::make_shared<tizen_browser::tools::BrowserImage>(
+                tools::BrowserImagePtr bi =
+                    std::make_shared<tizen_browser::tools::BrowserImage>(
                         bookmark_info.thumbnail_width,
                         bookmark_info.thumbnail_height,
                         bookmark_info.thumbnail_length);
index 762cd585e1da503a380dfaeda94de012052fe8c2..290920423cb5531c80a5678fedc4d11cdac49d51 100755 (executable)
 #include <Edje.h>
 #include <Evas.h>
 #include <app.h>
+#include <thread>
+#include <future>
+#include <functional>
+
 #include "Config.h"
 #include "app_i18n.h"
 #include "TabService.h"
@@ -69,9 +73,7 @@ SimpleUI::SimpleUI()
     : AbstractMainWindow()
     , m_webPageUI()
     , m_bookmarkFlowUI()
-#if PROFILE_MOBILE
     , m_findOnPageUI()
-#endif
     , m_bookmarkManagerUI()
     , m_quickAccess()
     , m_historyUI()
@@ -84,10 +86,8 @@ SimpleUI::SimpleUI()
 #if PWA
     , m_pwa()
 #endif
-#if PROFILE_MOBILE
     , m_current_angle(0)
     , m_temp_angle(0)
-#endif
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     elm_init(0, nullptr);
@@ -97,7 +97,7 @@ SimpleUI::SimpleUI()
     int width;
     elm_win_screen_size_get(main_window, nullptr, nullptr, &width, nullptr);
     double config_scale_value = (double)(width)/SCALE_FACTOR;
-    tizen_browser::config::Config::getInstance().set(
+    config::Config::getInstance().set(
             "scale", static_cast<double>(elm_config_scale_get()/config_scale_value));
 
     elm_win_conformant_set(main_window, EINA_TRUE);
@@ -135,6 +135,10 @@ void SimpleUI::suspend()
 
 void SimpleUI::resume()
 {
+    if (!m_isSessionRestored) {
+        switchViewToQuickAccess();
+        m_isSessionRestored = true;
+    }
     m_webEngine->preinitializeWebViewCache();
     m_webEngine->resume();
 #if PROFILE_MOBILE
@@ -170,16 +174,20 @@ int SimpleUI::exec(const std::string& _url, const std::string& _caller)
     std::string url = _url;
     m_caller = _caller;
 
-    if(!m_initialised){
+    if (!m_initialised) {
         if (m_window.get()) {
-            m_tabLimit = boost::any_cast <int> (tizen_browser::config::Config::getInstance().get("TAB_LIMIT"));
-            m_favoritesLimit = boost::any_cast <int> (tizen_browser::config::Config::getInstance().get("FAVORITES_LIMIT"));
+            m_tabLimit = boost::any_cast<int>(config::Config::getInstance().get("TAB_LIMIT"));
+            m_favoritesLimit = boost::any_cast<int>(config::Config::getInstance().get("FAVORITES_LIMIT"));
 
             loadUIServices();
             loadModelServices();
 
-            connectModelSignals();
-            connectUISignals();
+            auto futureModelSig =
+                std::async(std::launch::async, [this](){connectModelSignals();});
+            auto futureUISig
+                = std::async(std::launch::async, [this](){connectUISignals();});
+            futureModelSig.get();
+            futureUISig.get();
 
             // initModelServices() needs to be called after initUIServices()
             initUIServices();
@@ -187,10 +195,9 @@ int SimpleUI::exec(const std::string& _url, const std::string& _caller)
 
             //Push first view to stack.
             m_viewManager.pushViewToStack(m_webPageUI.get());
-#if PROFILE_MOBILE
+
             // Register H/W back key callback
             m_platformInputManager->registerHWKeyCallback(m_viewManager.getContent());
-#endif
         }
 #if PWA
         // Progressive web app
@@ -208,17 +215,14 @@ int SimpleUI::exec(const std::string& _url, const std::string& _caller)
                 rotationType(rotationLock::landscape);
         }
 #endif
-        if (url.empty())
-        {
+        if (url.empty()) {
             BROWSER_LOGD("[%s]: restore last session", __func__);
-            switchViewToQuickAccess();
             restoreLastSession();
         }
         m_initialised = true;
     }
 
-    if (!url.empty())
-    {
+    if (!url.empty()) {
         BROWSER_LOGD("[%s]: open new tab", __func__);
         openNewTab(url);
     }
@@ -238,8 +242,9 @@ void SimpleUI::restoreLastSession()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
 
-    auto vec = m_tabService->getAllTabs();
-    for (const basic_webengine::TabContent& i : *vec) {
+    m_isSessionRestored = false;
+    auto vec(m_tabService->getAllTabs());
+    for (const auto& i : *vec) {
         openNewTab(
             i.getUrl(),
             i.getTitle(),
@@ -247,74 +252,106 @@ void SimpleUI::restoreLastSession()
             false,
             false,
             i.getOrigin());
+        m_isSessionRestored = true;
     }
 }
 
-
-//TODO: Move all service creation here:
 void SimpleUI::loadUIServices()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
 
     m_webPageUI =
-        std::dynamic_pointer_cast
-        <tizen_browser::base_ui::WebPageUI,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.webpageui"));
+        std::dynamic_pointer_cast<base_ui::WebPageUI, core::AbstractService>(
+            core::ServiceManager::getInstance().getService("org.tizen.browser.webpageui"));
 
     m_quickAccess =
-        std::dynamic_pointer_cast
-        <tizen_browser::base_ui::QuickAccess,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.quickaccess"));
+        std::dynamic_pointer_cast<base_ui::QuickAccess, core::AbstractService>(
+            core::ServiceManager::getInstance().getService("org.tizen.browser.quickaccess"));
+
+    m_historyUI =
+        std::dynamic_pointer_cast<base_ui::HistoryUI, core::AbstractService>(
+            core::ServiceManager::getInstance().getService("org.tizen.browser.historyui"));
 
     m_tabUI =
-        std::dynamic_pointer_cast
-        <tizen_browser::base_ui::TabUI,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.tabui"));
+        std::dynamic_pointer_cast<base_ui::TabUI, core::AbstractService>(
+            core::ServiceManager::getInstance().getService("org.tizen.browser.tabui"));
+
+    auto futureSettings(std::async(std::launch::async, [this](){
+        m_settingsManager =
+            std::dynamic_pointer_cast<SettingsManager, core::AbstractService>(
+                core::ServiceManager::getInstance().getService("org.tizen.browser.settingsui"));
+        m_settingsUI = m_settingsManager->getView(SettingsMainOptions::BASE);
+    }));
+    auto futureBookmarkFlow(std::async(std::launch::async, [this](){
+        m_bookmarkFlowUI =
+            std::dynamic_pointer_cast<base_ui::BookmarkFlowUI, core::AbstractService>(
+                core::ServiceManager::getInstance().getService("org.tizen.browser.bookmarkflowui"));
+    }));
+    auto futureFindOnPage(std::async(std::launch::async, [this](){
+        m_findOnPageUI =
+            std::dynamic_pointer_cast<base_ui::FindOnPageUI, core::AbstractService>(
+                core::ServiceManager::getInstance().getService("org.tizen.browser.findonpageui"));
+    }));
+    auto futureBookmarksMan(std::async(std::launch::async, [this](){
+        m_bookmarkManagerUI =
+            std::dynamic_pointer_cast<base_ui::BookmarkManagerUI, core::AbstractService>(
+                core::ServiceManager::getInstance().getService("org.tizen.browser.bookmarkmanagerui"));
+    }));
+    futureSettings.get();
+    futureBookmarkFlow.get();
+    futureFindOnPage.get();
+    futureBookmarksMan.get();
+}
 
-    m_historyUI =
-        std::dynamic_pointer_cast
-        <tizen_browser::base_ui::HistoryUI, tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.historyui"));
+void SimpleUI::loadModelServices()
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
 
-    m_settingsManager =
+    m_webEngine =
         std::dynamic_pointer_cast
-        <SettingsManager, tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.settingsui"));
-    m_settingsUI = m_settingsManager->getView(SettingsMainOptions::BASE);
+        <basic_webengine::AbstractWebEngine, core::AbstractService>(
+            core::ServiceManager::getInstance().getService("org.tizen.browser.webengineservice"));
 
-    m_bookmarkFlowUI =
-        std::dynamic_pointer_cast
-        <tizen_browser::base_ui::BookmarkFlowUI,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.bookmarkflowui"));
-#if PROFILE_MOBILE
-    m_findOnPageUI =
-        std::dynamic_pointer_cast
-        <tizen_browser::base_ui::FindOnPageUI,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.findonpageui"));
-#else
-    m_zoomUI =
-        std::dynamic_pointer_cast
-        <tizen_browser::base_ui::ZoomUI, tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.zoomui"));
-#endif
-    m_bookmarkManagerUI =
+    m_historyService =
         std::dynamic_pointer_cast
-        <tizen_browser::base_ui::BookmarkManagerUI,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.bookmarkmanagerui"));
-}
+        <services::HistoryService, core::AbstractService>(
+            core::ServiceManager::getInstance().getService("org.tizen.browser.historyservice"));
 
-void SimpleUI::connectUISignals()
+    m_platformInputManager =
+        std::dynamic_pointer_cast
+        <services::PlatformInputManager, core::AbstractService>(
+            core::ServiceManager::getInstance().getService("org.tizen.browser.platforminputmanager"));
+
+    auto futureStorage(std::async(std::launch::async, [this](){
+        m_storageService = std::dynamic_pointer_cast
+            <services::StorageService, core::AbstractService>(
+                core::ServiceManager::getInstance().getService("org.tizen.browser.storageservice"));
+    }));
+    auto futureTab(std::async(std::launch::async, [this](){
+        m_tabService = std::dynamic_pointer_cast<
+            services::TabService, core::AbstractService>(
+                core::ServiceManager::getInstance().getService("org.tizen.browser.tabservice"));
+    }));
+    auto futureFavourite(std::async(std::launch::async, [this](){
+        m_favoriteService = std::dynamic_pointer_cast
+            <interfaces::AbstractFavoriteService, core::AbstractService>(
+                core::ServiceManager::getInstance().getService("org.tizen.browser.favoriteservice"));
+    }));
+    auto futureCertificates(std::async(std::launch::async, [this](){
+        m_certificateContents = std::dynamic_pointer_cast
+            <services::CertificateContents, core::AbstractService>(
+                core::ServiceManager::getInstance().getService("org.tizen.browser.certificateservice"));
+    }));
+    futureStorage.get();
+    futureTab.get();
+    futureFavourite.get();
+    futureCertificates.get();
+}
+
+void SimpleUI::connectWebPageSignals()
 {
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-#if PROFILE_MOBILE
-    m_viewManager.isLandscape.connect(boost::bind(&SimpleUI::isLandscape, this));
-#endif
-
     M_ASSERT(m_webPageUI.get());
     m_webPageUI->getURIEntry().uriChanged.connect(boost::bind(&SimpleUI::filterURL, this, _1));
-//    m_webPageUI->getURIEntry().uriEntryEditingChangedByUser.connect(boost::bind(&SimpleUI::onURLEntryEditedByUser, this, _1));
-//    m_webPageUI->getUrlHistoryList()->openURL.connect(boost::bind(&SimpleUI::onOpenURL, this, _1));
-//    m_webPageUI->getUrlHistoryList()->uriChanged.connect(boost::bind(&SimpleUI::filterURL, this, _1));
     m_webPageUI->backPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this));
     m_webPageUI->backPage.connect(boost::bind(&basic_webengine::AbstractWebEngine::back, m_webEngine.get()));
     m_webPageUI->showTabUI.connect(boost::bind(&SimpleUI::showTabUI, this));
@@ -359,7 +396,10 @@ void SimpleUI::connectUISignals()
     m_webPageUI->pwaRequestManifest.connect(boost::bind(&basic_webengine::AbstractWebEngine::requestManifest, m_webEngine.get()));
 #endif
     m_webPageUI->isMostVisited.connect(boost::bind(&QuickAccess::isMostVisitedActive, m_quickAccess.get()));
+}
 
+void SimpleUI::connectQuickAccessSignals()
+{
     M_ASSERT(m_quickAccess.get());
     m_quickAccess->openURL.connect(boost::bind(&SimpleUI::onOpenURL, this, _1, _2));
     m_quickAccess->getMostVisitedItems.connect(boost::bind(&SimpleUI::onMostVisitedClicked, this));
@@ -367,10 +407,11 @@ void SimpleUI::connectUISignals()
     m_quickAccess->switchViewToWebPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this));
     m_quickAccess->addQuickAccessClicked.connect(boost::bind(&SimpleUI::onNewQuickAccessClicked, this));
     m_quickAccess->deleteQuickAccessItem.connect(boost::bind(&SimpleUI::onBookmarkDeleted, this, _1));
-#if PROFILE_MOBILE
     m_quickAccess->isLandscape.connect(boost::bind(&SimpleUI::isLandscape, this));
-#endif
+}
 
+void SimpleUI::connectTabsSignals()
+{
     M_ASSERT(m_tabUI.get());
     m_tabUI->closeTabUIClicked.connect(boost::bind(&SimpleUI::closeTabUI, this));
     m_tabUI->newTabClicked.connect(boost::bind(&SimpleUI::newTabClicked, this));
@@ -402,27 +443,30 @@ void SimpleUI::connectUISignals()
     m_tabUI->getPasswordUI().getDBBoolParamValue.connect(boost::bind(&storage::SettingsStorage::getSettingsBool,
         &m_storageService->getSettingsStorage(), _1, false));
     m_tabUI->getPasswordUI().changeEngineState.connect(boost::bind(&SimpleUI::changeEngineState, this));
+}
 
+void SimpleUI::connectHistorySignals()
+{
     M_ASSERT(m_historyUI.get());
     m_historyUI->clearHistoryClicked.connect(boost::bind(&SimpleUI::onClearHistoryAllClicked, this));
     m_historyUI->signalDeleteHistoryItems.connect(boost::bind(&SimpleUI::onDeleteHistoryItems, this, _1));
     m_historyUI->closeHistoryUIClicked.connect(boost::bind(&SimpleUI::closeHistoryUI, this));
     m_historyUI->signalHistoryItemClicked.connect(boost::bind(&SimpleUI::onOpenURL, this, _1, _2, false));
     m_historyUI->getWindow.connect(boost::bind(&SimpleUI::getMainWindow, this));
+}
 
-    connectSettingsSignals();
-
+void SimpleUI::connectBookmarkFlowSignals()
+{
     M_ASSERT(m_bookmarkFlowUI.get());
     m_bookmarkFlowUI->closeBookmarkFlowClicked.connect(boost::bind(&SimpleUI::closeBookmarkFlowUI, this));
     m_bookmarkFlowUI->saveBookmark.connect(boost::bind(&SimpleUI::addBookmark, this, _1));
     m_bookmarkFlowUI->editBookmark.connect(boost::bind(&SimpleUI::editBookmark, this, _1));
     m_bookmarkFlowUI->showSelectFolderUI.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this,
         _1, BookmarkManagerState::SelectFolder));
+}
 
-    M_ASSERT(m_findOnPageUI.get());
-    m_findOnPageUI->closeFindOnPageUIClicked.connect(boost::bind(&SimpleUI::closeFindOnPageUI, this));
-    m_findOnPageUI->startFindingWord.connect(boost::bind(&SimpleUI::findWord, this, _1));
-
+void SimpleUI::connectBookmarkManagerSignals()
+{
     M_ASSERT(m_bookmarkManagerUI.get());
     m_bookmarkManagerUI->closeBookmarkManagerClicked.connect(boost::bind(&SimpleUI::closeBookmarkManagerUI, this));
     m_bookmarkManagerUI->folderSelected.connect(boost::bind(&BookmarkFlowUI::setFolder, m_bookmarkFlowUI.get(), _1));
@@ -436,60 +480,17 @@ void SimpleUI::connectUISignals()
     m_bookmarkManagerUI->getHistoryGenlistContent.connect(boost::bind(&SimpleUI::showHistoryUI, this, _1, _2, _3));
     m_bookmarkManagerUI->removeSelectedItemsFromHistory.connect(boost::bind(&HistoryUI::removeSelectedHistoryItems, m_historyUI.get()));
     m_bookmarkManagerUI->isEngineSecretMode.connect(boost::bind(&basic_webengine::AbstractWebEngine::isSecretMode, m_webEngine.get()));
-#if PROFILE_MOBILE
-    // TODO: delete dead code
-#else
-    M_ASSERT(m_zoomUI.get());
-    m_zoomUI->setZoom.connect(boost::bind(&SimpleUI::setZoomFactor, this, _1));
-    m_zoomUI->getZoom.connect(boost::bind(&SimpleUI::getZoomFactor, this));
-    m_zoomUI->scrollView.connect(boost::bind(&SimpleUI::scrollView, this, _1, _2));
-#endif
 }
 
-void SimpleUI::loadModelServices()
+void SimpleUI::connectFindOnPageSignals()
 {
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-
-    m_webEngine =
-        std::dynamic_pointer_cast
-        <basic_webengine::AbstractWebEngine,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.webengineservice"));
-
-    m_storageService =
-        std::dynamic_pointer_cast
-        <tizen_browser::services::StorageService,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.storageservice"));
-
-    m_favoriteService =
-        std::dynamic_pointer_cast
-        <tizen_browser::interfaces::AbstractFavoriteService,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.favoriteservice"));
-
-    m_historyService =
-        std::dynamic_pointer_cast
-        <tizen_browser::services::HistoryService,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.historyservice"));
-
-    m_tabService = std::dynamic_pointer_cast<
-            tizen_browser::services::TabService,
-            tizen_browser::core::AbstractService>(
-            tizen_browser::core::ServiceManager::getInstance().getService(
-                    "org.tizen.browser.tabservice"));
-
-    m_platformInputManager =
-        std::dynamic_pointer_cast
-        <tizen_browser::services::PlatformInputManager,tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.platforminputmanager"));
-
-    m_certificateContents =
-        std::dynamic_pointer_cast
-        <tizen_browser::services::CertificateContents, tizen_browser::core::AbstractService>
-        (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.certificateservice"));
+    M_ASSERT(m_findOnPageUI.get());
+    m_findOnPageUI->closeFindOnPageUIClicked.connect(boost::bind(&SimpleUI::closeFindOnPageUI, this));
+    m_findOnPageUI->startFindingWord.connect(boost::bind(&SimpleUI::findWord, this, _1));
 }
 
 void SimpleUI::connectSettingsSignals()
 {
-    M_ASSERT(m_settingsUI.get());
     M_ASSERT(m_settingsManager.get());
 
     // SETTINGS OVERALL
@@ -503,7 +504,7 @@ void SimpleUI::connectSettingsSignals()
             &basic_webengine::AbstractWebEngine::getSettingsParam,
             m_webEngine.get(),
             _1));
-    SPSC. getWebEngineSettingsParamString.connect(
+    SPSC.getWebEngineSettingsParamString.connect(
         boost::bind(
             &storage::SettingsStorage::getParamString,
             &m_storageService->getSettingsStorage(),
@@ -546,67 +547,8 @@ void SimpleUI::connectSettingsSignals()
         boost::bind(&SimpleUI::settingsDeleteSelectedData, this,_1));
 }
 
-void SimpleUI::initUIServices()
-{
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-
-    M_ASSERT(m_webPageUI.get());
-    m_webPageUI->init(m_viewManager.getContent());
-
-    M_ASSERT(m_quickAccess.get());
-    m_quickAccess->init(m_webPageUI->getContent());
-
-    M_ASSERT(m_tabUI.get());
-    m_tabUI->init(m_viewManager.getContent());
-
-    M_ASSERT(m_historyUI.get());
-    m_historyUI->init(m_viewManager.getContent());
-
-    M_ASSERT(m_settingsUI.get());
-    m_settingsUI->init(m_viewManager.getContent());
-
-    M_ASSERT(m_bookmarkFlowUI.get());
-    m_bookmarkFlowUI->init(m_viewManager.getContent());
-#if PROFILE_MOBILE
-    M_ASSERT(m_findOnPageUI.get());
-    m_findOnPageUI->init(m_webPageUI->getContent());
-#else
-    M_ASSERT(m_zoomUI.get());
-    m_zoomUI->init(m_viewManager.getContent());
-#endif
-
-    M_ASSERT(m_bookmarkManagerUI.get());
-    m_bookmarkManagerUI->init(m_viewManager.getContent());
-}
-
-void SimpleUI::initModelServices()
+void SimpleUI::connectWebEngineSignals()
 {
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-
-    M_ASSERT(m_webEngine.get());
-    M_ASSERT(m_webPageUI.get());
-    m_webEngine->init(m_webPageUI->getContent());
-
-#if PROFILE_MOBILE
-    M_ASSERT(m_storageService->getSettingsStorage());
-    M_ASSERT(m_storageService->getFoldersStorage());
-    m_storageService->getSettingsStorage().initWebEngineSettingsFromDB();
-#endif
-
-    M_ASSERT(m_favoriteService);
-    m_favoriteService->getBookmarks();
-
-    M_ASSERT(m_platformInputManager);
-    m_platformInputManager->init(m_window.get());
-
-    M_ASSERT(m_certificateContents.get());
-    m_certificateContents->init();
-}
-
-void SimpleUI::connectModelSignals()
-{
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-
     m_webEngine->minimizeBrowser.connect(boost::bind(&SimpleUI::minimizeBrowser, this));
     m_webEngine->uriChanged.connect(boost::bind(&URIEntry::changeUri, &m_webPageUI->getURIEntry(), _1));
     m_webEngine->downloadStarted.connect(boost::bind(&SimpleUI::downloadStarted, this, _1));
@@ -630,37 +572,121 @@ void SimpleUI::connectModelSignals()
     m_webEngine->setCertificatePem.connect(boost::bind(&services::CertificateContents::saveCertificateInfo, m_certificateContents, _1, _2));
     m_webEngine->setWrongCertificatePem.connect(boost::bind(&services::CertificateContents::saveWrongCertificateInfo, m_certificateContents, _1, _2));
     m_webEngine->fullscreenModeSet.connect(boost::bind(&WebPageUI::fullscreenModeSet, m_webPageUI.get(), _1));
-#if PROFILE_MOBILE
+#if PWA
+    m_webEngine->resultDataManifest.connect(boost::bind(&SimpleUI::resultDataManifest, this, _1));
+#endif
     m_webEngine->confirmationRequest.connect(boost::bind(&SimpleUI::handleConfirmationRequest, this, _1));
     m_webEngine->getRotation.connect(boost::bind(&SimpleUI::getRotation, this));
     m_webEngine->openFindOnPage.connect(boost::bind(&SimpleUI::showFindOnPageUI, this, _1));
     m_webEngine->closeFindOnPage.connect(boost::bind(&SimpleUI::closeFindOnPageUI, this));
     m_webEngine->unsecureConnection.connect(boost::bind(&SimpleUI::showUnsecureConnectionPopup, this));
-#endif
+    m_webEngine->registerHWKeyCallback.connect(boost::bind(&SimpleUI::registerHWKeyCallback, this));
+    m_webEngine->unregisterHWKeyCallback.connect(boost::bind(&SimpleUI::unregisterHWKeyCallback, this));
+}
 
+void SimpleUI::connectHistoryServiceSignals()
+{
     m_historyService->historyDeleted.connect(boost::bind(&SimpleUI::onHistoryRemoved, this,_1));
+}
 
+void SimpleUI::connectTabServiceSignals()
+{
     m_tabService->generateThumb.connect(boost::bind(&SimpleUI::onGenerateThumb, this, _1));
     m_tabService->generateFavicon.connect(boost::bind(&SimpleUI::onGenerateFavicon, this, _1));
+}
 
+void SimpleUI::connectPlatformInputSignals()
+{
     m_platformInputManager->returnPressed.connect(boost::bind(&elm_exit));
     m_platformInputManager->backPressed.connect(boost::bind(&SimpleUI::onBackPressed, this));
-#if !PROFILE_MOBILE
-    m_platformInputManager->escapePressed.connect(boost::bind(&SimpleUI::onEscapePressed, this));
-    m_platformInputManager->redPressed.connect(boost::bind(&SimpleUI::onRedKeyPressed, this));
-    m_platformInputManager->yellowPressed.connect(boost::bind(&SimpleUI::onYellowKeyPressed, this));
-#endif
+    m_platformInputManager->menuButtonPressed.connect(boost::bind(&SimpleUI::onMenuButtonPressed, this));
+    m_platformInputManager->XF86BackPressed.connect(boost::bind(&SimpleUI::onXF86BackPressed, this));
+}
 
+void SimpleUI::connectCertificateSignals()
+{
     m_certificateContents->getHostCertList.connect(boost::bind(&storage::CertificateStorage::getHostCertList, &m_storageService->getCertificateStorage()));
     m_certificateContents->addOrUpdateCertificateEntry.connect(boost::bind(&storage::CertificateStorage::addOrUpdateCertificateEntry, &m_storageService->getCertificateStorage(), _1, _2, _3));
+}
 
-#if PROFILE_MOBILE
+void SimpleUI::connectStorageSignals()
+{
     m_storageService->getSettingsStorage().setWebEngineSettingsParam.connect(boost::bind(&basic_webengine::AbstractWebEngine::setSettingsParam, m_webEngine.get(), _1, _2));
-    m_platformInputManager->menuButtonPressed.connect(boost::bind(&SimpleUI::onMenuButtonPressed, this));
-    m_platformInputManager->XF86BackPressed.connect(boost::bind(&SimpleUI::onXF86BackPressed, this));
-    m_webEngine->registerHWKeyCallback.connect(boost::bind(&SimpleUI::registerHWKeyCallback, this));
-    m_webEngine->unregisterHWKeyCallback.connect(boost::bind(&SimpleUI::unregisterHWKeyCallback, this));
-#endif
+}
+
+void SimpleUI::connectUISignals()
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    m_viewManager.isLandscape.connect(boost::bind(&SimpleUI::isLandscape, this));
+    connectWebPageSignals();
+    connectQuickAccessSignals();
+    connectTabsSignals();
+    connectHistorySignals();
+    connectSettingsSignals();
+    connectBookmarkFlowSignals();
+    connectFindOnPageSignals();
+    connectBookmarkManagerSignals();
+}
+
+void SimpleUI::connectModelSignals()
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    connectWebEngineSignals();
+    connectHistorySignals();
+    connectTabServiceSignals();
+    connectPlatformInputSignals();
+    connectCertificateSignals();
+    connectStorageSignals();
+}
+
+void SimpleUI::initUIServices()
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+
+    auto viewManager(m_viewManager.getContent());
+
+    M_ASSERT(m_webPageUI.get());
+    m_webPageUI->init(viewManager);
+
+    auto webPageUI(m_webPageUI->getContent());
+    M_ASSERT(m_quickAccess.get());
+    m_quickAccess->init(webPageUI);
+
+    M_ASSERT(m_tabUI.get());
+    m_tabUI->init(viewManager);
+
+    M_ASSERT(m_historyUI.get());
+    m_historyUI->init(viewManager);
+
+    M_ASSERT(m_settingsUI.get());
+    m_settingsUI->init(viewManager);
+
+    M_ASSERT(m_bookmarkFlowUI.get());
+    m_bookmarkFlowUI->init(viewManager);
+
+    M_ASSERT(m_findOnPageUI.get());
+    m_findOnPageUI->init(webPageUI);
+
+    M_ASSERT(m_bookmarkManagerUI.get());
+    m_bookmarkManagerUI->init(viewManager);
+}
+
+void SimpleUI::initModelServices()
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+
+    M_ASSERT(m_webEngine.get());
+    M_ASSERT(m_webPageUI.get());
+    m_webEngine->init(m_webPageUI->getContent());
+
+    M_ASSERT(m_storageService->getSettingsStorage());
+    m_storageService->getSettingsStorage().initWebEngineSettingsFromDB();
+
+    M_ASSERT(m_platformInputManager);
+    m_platformInputManager->init(m_window.get());
+
+    M_ASSERT(m_certificateContents.get());
+    m_certificateContents->init();
 }
 
 #if PROFILE_MOBILE
@@ -681,18 +707,17 @@ void SimpleUI::unregisterHWKeyCallback()
 void SimpleUI::switchViewToWebPage()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if(m_webEngine->isSuspended())
+    if (m_webEngine->isSuspended())
         m_webEngine->resume();
     m_webEngine->connectCurrentWebViewSignals();
     m_webPageUI->switchViewToWebPage(m_webEngine->getLayout(), m_webEngine->getURI(), m_webEngine->isLoading());
 }
 
-void SimpleUI::switchToTab(const tizen_browser::basic_webengine::TabId& tabId)
+void SimpleUI::switchToTab(const basic_webengine::TabId& tabId)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if(m_webEngine->currentTabId() != tabId) {
+    if (m_webEngine->currentTabId() != tabId)
         m_webEngine->switchToTab(tabId);
-    }
     switchViewToWebPage();
 }
 
@@ -723,7 +748,7 @@ void SimpleUI::openNewTab(const std::string &uri, const std::string& title,
         bool incognitoMode, basic_webengine::TabOrigin origin)
 {
     BROWSER_LOGD("[%s:%d] uri =%s", __PRETTY_FUNCTION__, __LINE__, uri.c_str());
-    tizen_browser::basic_webengine::TabId tab = m_webEngine->addTab(uri,
+    basic_webengine::TabId tab = m_webEngine->addTab(uri,
             adaptorId, title, desktopMode, origin);
     if (tab == basic_webengine::TabId::NONE) {
         BROWSER_LOGW("[%s:%d] New tab is not created!", __PRETTY_FUNCTION__, __LINE__);
@@ -741,7 +766,7 @@ void SimpleUI::closeTab()
     closeTab(tabId);
 }
 
-void SimpleUI::closeTab(const tizen_browser::basic_webengine::TabId& id)
+void SimpleUI::closeTab(const basic_webengine::TabId& id)
 {
     BROWSER_LOGD("[%s:%d] id: %d", __PRETTY_FUNCTION__, __LINE__, id.get());
     m_tabService->removeTab(id);
index 2468da5ad5b8ca152189b53c5a718a50e33bad84..6c5cb30cdb2f6e8edb9e3e5c6d2a98a9001a6440 100644 (file)
@@ -282,7 +282,6 @@ private:
     void showBookmarkFlowUI();
     void closeBookmarkFlowUI();
     void showFindOnPageUI(const std::string& str);
-#if PROFILE_MOBILE
     void showCertificatePopup();
     void showCertificatePopup(const std::string& host, const std::string& pem, services::CertificateContents::HOST_TYPE type);
     void showUnsecureConnectionPopup();
@@ -297,9 +296,22 @@ private:
     bool isLandscape();
     int getRotation();
     void rotationType(rotationLock lock);
+    void connectWebPageSignals();
+    void connectQuickAccessSignals();
+    void connectTabsSignals();
+    void connectHistorySignals();
     void connectSettingsSignals();
+    void connectBookmarkFlowSignals();
+    void connectBookmarkManagerSignals();
+    void connectFindOnPageSignals();
+    void connectWebEngineSignals();
+    void connectHistoryServiceSignals();
+    void connectTabServiceSignals();
+    void connectPlatformInputSignals();
+    void connectCertificateSignals();
+    void connectStorageSignals();
+
     static void __orientation_changed(void* data, Evas_Object*, void*);
-#endif
     Evas_Object* getMainWindow();
     void closeBookmarkManagerUI();
     void showBookmarkManagerUI(std::shared_ptr<services::BookmarkItem> parent,
@@ -375,11 +387,10 @@ private:
     ProgressiveWebApp m_pwa;
 #endif
     SharedNaviframeWrapper m_QAEditNaviframe;
-#if PROFILE_MOBILE
     Evas_Object *m_conformant;
     int m_current_angle;
     int m_temp_angle;
-#endif
+    bool m_isSessionRestored;
 };
 
 }
index bbd629340acfbddcc809f675555309bd6c4b6e87..8f8916ecf724d2c93f5f7d384722ea1839c49fc3 100755 (executable)
@@ -47,8 +47,6 @@ void ViewManager::init(Evas_Object* parentWindow)
     M_ASSERT(parentWindow);
 
     m_conformant = elm_conformant_add(parentWindow);
-     //tmp for TSAM-5664 rotation resize issue
-    //elm_win_indicator_mode_set(parentWindow, ELM_WIN_INDICATOR_SHOW);
     evas_object_size_hint_weight_set(m_conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
     evas_object_show(m_conformant);
     elm_win_resize_object_add(parentWindow, m_conformant);
@@ -63,10 +61,10 @@ void ViewManager::init(Evas_Object* parentWindow)
     evas_object_show(m_mainLayout);
     elm_box_pack_end(bx, m_mainLayout);
 
-    Eina_Bool ret = elm_layout_file_set(m_mainLayout,
-                                        (std::string(EDJE_DIR)
-                                        + std::string("SimpleUI/ViewManager.edj")).c_str(),
-                                        "main_layout");
+    Eina_Bool ret = elm_layout_file_set(
+        m_mainLayout,
+        (std::string(EDJE_DIR) + std::string("SimpleUI/ViewManager.edj")).c_str(),
+        "main_layout");
     if (!ret)
         BROWSER_LOGD("[%s:%d]  elm_layout_file_set falied !!!",__PRETTY_FUNCTION__, __LINE__);
 
@@ -86,10 +84,8 @@ void ViewManager::popStackTo(interfaces::AbstractUIComponent* view)
     M_ASSERT(view);
     interfaces::AbstractUIComponent* previousView = m_viewStack.top();
 
-    while(!m_viewStack.empty() && m_viewStack.top() != view)
-    {
+    while (!m_viewStack.empty() && m_viewStack.top() != view)
         m_viewStack.pop();
-    }
     updateLayout(previousView);
     BROWSER_LOGD("[%s:%d] new top: %p", __PRETTY_FUNCTION__, __LINE__, topOfStack());
 }
@@ -97,8 +93,7 @@ void ViewManager::popStackTo(interfaces::AbstractUIComponent* view)
 void ViewManager::popTheStack()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if(!m_viewStack.empty())
-    {
+    if (!m_viewStack.empty()) {
         interfaces::AbstractUIComponent* previousView = m_viewStack.top();
         m_viewStack.pop();
         updateLayout(previousView);
@@ -111,10 +106,10 @@ void ViewManager::pushViewToStack(interfaces::AbstractUIComponent* view)
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
 
     M_ASSERT(view);
-    if (topOfStack() == view)
-    {
-       BROWSER_LOGD("[%s:%d] View %p is already on stack !!!",
-                          __PRETTY_FUNCTION__, __LINE__, view);
+    if (topOfStack() == view) {
+       BROWSER_LOGD(
+           "[%s:%d] View %p is already on stack !!!",
+           __PRETTY_FUNCTION__, __LINE__, view);
        return;
     }
     interfaces::AbstractUIComponent* previousView = topOfStack();
@@ -128,17 +123,15 @@ void ViewManager::updateLayout(interfaces::AbstractUIComponent* previousView)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     Evas_Object* swallowed = elm_layout_content_get(m_mainLayout, "content");
-    if (!m_viewStack.empty())
-    {
-        if (topOfStack()->getContent() == swallowed)
-        {
-            BROWSER_LOGD("[%s:%d] Top of stack is already visible!!!",
-                         __PRETTY_FUNCTION__, __LINE__);
+    if (!m_viewStack.empty()) {
+        if (topOfStack()->getContent() == swallowed) {
+            BROWSER_LOGD(
+                "[%s:%d] Top of stack is already visible!!!",
+                __PRETTY_FUNCTION__, __LINE__);
             return;
         }
         elm_layout_content_unset(m_mainLayout, "content");
-        if (previousView)
-        {
+        if (previousView) {
             previousView->hideUI();
             evas_object_hide(previousView->getContent());
         }
@@ -146,13 +139,10 @@ void ViewManager::updateLayout(interfaces::AbstractUIComponent* previousView)
         evas_object_show(elm_layout_content_get(m_mainLayout, "content"));
 
         topOfStack()->showUI();
-    }
-    else
-    {
+    } else {
         BROWSER_LOGD("[%s:%d] Stack is empty!!!",__PRETTY_FUNCTION__, __LINE__);
         elm_layout_content_unset(m_mainLayout, "content");
-        if (previousView)
-        {
+        if (previousView) {
              previousView->hideUI();
              evas_object_hide(previousView->getContent());
         }
@@ -172,7 +162,7 @@ Evas_Object* ViewManager::getConformant() {
 
 interfaces::AbstractUIComponent* ViewManager::topOfStack()
 {
-    if(!m_viewStack.empty())
+    if (!m_viewStack.empty())
         return m_viewStack.top();
     else
         return nullptr;
index d2f5a44056bc7639271187446f616a113e160925..edbd0961db965408461a2dd6f8356b7787e84e2a 100644 (file)
@@ -71,13 +71,13 @@ void TabService::errorPrint(std::string method) const
         tools::capiWebError::tabErrorToString(error_code).c_str());
 }
 
-std::shared_ptr<std::vector<basic_webengine::TabContent> > TabService::getAllTabs()
+std::shared_ptr<std::vector<basic_webengine::TabContent>> TabService::getAllTabs()
 {
     BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__);
     int* items = nullptr;
     int count;
-    auto vec = std::make_shared<std::vector<basic_webengine::TabContent> >(std::vector<basic_webengine::TabContent>());
-    if (bp_tab_adaptor_get_full_ids_p(&items, &count) < 0) {
+    auto vec = std::make_shared<std::vector<basic_webengine::TabContent>>(std::vector<basic_webengine::TabContent>());
+    if (bp_tab_adaptor_get_full_ids_p(&items, &count) < 0 || !count) {
         errorPrint("bp_tab_adaptor_get_full_ids_p");
         return vec;
     }