[Release] wrt_0.8.185
authorJihoon Chung <jihoon.chung@samsung.com>
Fri, 19 Apr 2013 11:51:07 +0000 (20:51 +0900)
committerJihoon Chung <jihoon.chung@samsung.com>
Fri, 19 Apr 2013 11:51:07 +0000 (20:51 +0900)
14 files changed:
packaging/wrt.spec
src/api_new/core_module.cpp
src/api_new/ewk_context_manager.cpp [changed mode: 0755->0644]
src/domain/widget_deserialize_model.cpp
src/domain/widget_deserialize_model.h
src/view/common/view_logic_apps_support.cpp
src/view/webkit/bundles/wrt-wk2-bundle.cpp
src/view/webkit/view_logic.cpp
src/wrt-client/wrt-client.cpp
src/wrt-launcher/wrt-launcher.cpp
src/wrt-launchpad-daemon/include/launchpad_util.h
src/wrt-launchpad-daemon/launchpad_src/launchpad.c
src/wrt-launchpad-daemon/src/process_pool.c
tests/widgets/common/src/RunnableObjectStateTester.cpp

index 1a7aef2..1d811f3 100644 (file)
@@ -1,7 +1,7 @@
-#git:framework/web/wrt wrt_0.8.184
+#git:framework/web/wrt wrt_0.8.185
 Name:       wrt
 Summary:    web runtime
-Version:    0.8.184
+Version:    0.8.185
 Release:    1
 Group:      Development/Libraries
 License:    Apache License, Version 2.0
index 873e716..eed7108 100644 (file)
@@ -131,28 +131,19 @@ class CoreModuleImpl
     RunnableWidgetObjectPtr getRunnableWidgetObject(
         const std::string& tizenId,
         DPL::Optional<unsigned> serviceIndex)
-    {
-        try {
-            RunnableWidgetObjectPtr runnable;
-            WidgetModelPtr model =
-                Domain::deserializeWidgetModel(tizenId, serviceIndex);
-            if (!!model) {
-                runnable.reset(new RunnableWidgetObject(model));
-            }
-            return runnable;
-        } catch (WrtDB::WidgetDAOReadOnly::Exception::WidgetNotExist) {
-            LogDebug("Widget not found.");
-            return RunnableWidgetObjectPtr();
-        }
-    }
 #else
     RunnableWidgetObjectPtr getRunnableWidgetObject(
         const std::string& tizenId)
+#endif
     {
         try {
             RunnableWidgetObjectPtr runnable;
             WidgetModelPtr model =
+#ifdef MULTIPROCESS_SERVICE_SUPPORT
+                Domain::deserializeWidgetModel(tizenId, serviceIndex);
+#else
                 Domain::deserializeWidgetModel(tizenId);
+#endif
             if (!!model) {
                 runnable.reset(new RunnableWidgetObject(model));
             }
@@ -162,7 +153,6 @@ class CoreModuleImpl
             return RunnableWidgetObjectPtr();
         }
     }
-#endif
 
     CoreModule::NetworkAccessMode homeNetworkAccess()
     {
@@ -225,16 +215,17 @@ void CoreModule::Terminate()
 RunnableWidgetObjectPtr CoreModule::getRunnableWidgetObject(
     const std::string& tizenId,
     DPL::Optional<unsigned> serviceIndex)
-{
-    return m_impl->getRunnableWidgetObject(tizenId, serviceIndex);
-}
 #else
 RunnableWidgetObjectPtr CoreModule::getRunnableWidgetObject(
     const std::string& tizenId)
+#endif
 {
+#ifdef MULTIPROCESS_SERVICE_SUPPORT
+    return m_impl->getRunnableWidgetObject(tizenId, serviceIndex);
+#else
     return m_impl->getRunnableWidgetObject(tizenId);
-}
 #endif
+}
 
 CoreModule::NetworkAccessMode CoreModule::homeNetworkAccess()
 {
old mode 100755 (executable)
new mode 100644 (file)
index 7a9dcb3..8a03146
@@ -133,6 +133,11 @@ bool EwkContextManager::initialize()
         m_ewkContext,
         EWK_EXTENSIBLE_API_MEDIA_STREAM_RECORD,
         EINA_TRUE);
+    ewk_context_tizen_extensible_api_set(
+        m_ewkContext,
+        EWK_EXTENSIBLE_API_ROTATE_CAMERA_VIEW,
+        EINA_FALSE);
+
     setAutoFullscreenMode();
     setBackgroundSupport();
 
index e27a2eb..06c4f8a 100644 (file)
@@ -31,49 +31,18 @@ namespace Domain {
 #ifdef MULTIPROCESS_SERVICE_SUPPORT
 std::shared_ptr<WidgetModel> deserializeWidgetModel(const std::string& tizenId,
                                                     DPL::Optional<unsigned> serviceIndex)
-{
-    std::shared_ptr<WidgetModel> model;
-    DPL::String dplTizenId(DPL::FromUTF8String(tizenId));
-    if (WrtDB::WidgetDAOReadOnly::isWidgetInstalled(dplTizenId)) {
-        LogDebug("Widget installed - creating model");
-        model.reset(new WidgetModel(tizenId));
-        model->AppServiceIndex.Set(serviceIndex);
-
-        WrtDB::WidgetDAOReadOnly dao(dplTizenId);
-        DPL::Optional<DPL::String> defloc = model->defaultlocale.Get();
-        if (!defloc.IsNull()) {
-            LanguageTagsProviderSingleton::Instance().addWidgetDefaultLocales(
-                *defloc);
-        }
-
-        WrtDB::WidgetAccessInfoList widgetAccessInfoList;
-        // widgetAccessInfoList is output parameter
-        dao.getWidgetAccessInfo(widgetAccessInfoList);
-        model->AccessList.Set(widgetAccessInfoList);
-
-        // Widget application service information data
-        WidgetApplicationServiceList widgetApplicationServiceList;
-        // widgetApplicationServiceList is output parameter
-        dao.getAppServiceList(widgetApplicationServiceList);
-        model->AppServiceList.Set(widgetApplicationServiceList);
-
-        // Set Widget Settings
-        WidgetSettings widgetSettings;
-        dao.getWidgetSettings(widgetSettings);
-        model->SettingList.Set(widgetSettings);
-    } else {
-        LogError("Widget is not installed - model not created");
-    }
-    return model;
-}
 #else
 std::shared_ptr<WidgetModel> deserializeWidgetModel(const std::string& tizenId)
+#endif
 {
     std::shared_ptr<WidgetModel> model;
     DPL::String dplTizenId(DPL::FromUTF8String(tizenId));
     if (WrtDB::WidgetDAOReadOnly::isWidgetInstalled(dplTizenId)) {
         LogDebug("Widget installed - creating model");
         model.reset(new WidgetModel(tizenId));
+#ifdef MULTIPROCESS_SERVICE_SUPPORT
+        model->AppServiceIndex.Set(serviceIndex);
+#endif
 
         WrtDB::WidgetDAOReadOnly dao(dplTizenId);
         DPL::Optional<DPL::String> defloc = model->defaultlocale.Get();
@@ -102,6 +71,6 @@ std::shared_ptr<WidgetModel> deserializeWidgetModel(const std::string& tizenId)
     }
     return model;
 }
-#endif
+
 } //Namespace Domain
 
index 88ce73d..dca79a6 100644 (file)
@@ -31,11 +31,12 @@ namespace Domain {
 /**
  * @brief Creates widget model associated with selected
  * @param[in] tizenId
+ * @param[in] service index, NULL for widget content
  * @retval WidgetModel
  */
  #ifdef MULTIPROCESS_SERVICE_SUPPORT
  std::shared_ptr<WidgetModel> deserializeWidgetModel(const std::string& tizenId,
-                                                    DPL::Optional<unsigned> serviceIndex);
+                                                     DPL::Optional<unsigned> serviceIndex);
  #else
 std::shared_ptr<WidgetModel> deserializeWidgetModel(const std::string& tizenId);
  #endif
index 20cd44b..b25f5cd 100644 (file)
@@ -145,7 +145,11 @@ class AppsSupportImplementation
     {
         notification_h noti = NULL;
         noti = notification_create(NOTIFICATION_TYPE_NOTI);
-        notification_set_layout(noti, NOTIFICATION_LY_ONGOING_EVENT);
+
+        if (notification_set_layout(noti, NOTIFICATION_LY_ONGOING_EVENT) != NOTIFICATION_ERROR_NONE) {
+            return -1;
+        }
+
         notification_set_text(noti,
                               NOTIFICATION_TEXT_TYPE_TITLE,
                               fileName.c_str(),
@@ -159,14 +163,17 @@ class AppsSupportImplementation
 
         bundle *b = bundle_create();
         if (!b) {
+            notification_free(noti);
             return -1;
         }
         if (appsvc_set_operation(b, APPSVC_OPERATION_VIEW) != APPSVC_RET_OK) {
             bundle_free(b);
+            notification_free(noti);
             return -1;
         }
         if (appsvc_set_uri(b, filePath.c_str()) != APPSVC_RET_OK) {
             bundle_free(b);
+            notification_free(noti);
             return -1;
         }
         notification_set_execute_option(noti,
@@ -176,8 +183,11 @@ class AppsSupportImplementation
                                         b);
 
         int privId;
-        notification_insert(noti, &privId);
+        if (notification_insert(noti, &privId) != NOTIFICATION_ERROR_NONE) {
+            return -1;
+        }
         notification_free(noti);
+        bundle_free(b);
         return privId;
     }
 
index 70b63b2..5b8c9b4 100644 (file)
@@ -137,11 +137,15 @@ Tizen::Base::ByteBuffer *DecryptChunkByTrustZone(
     ByteBuffer pBuf;
     pBuf.Construct(inBufSize);
     const byte *pByte = reinterpret_cast<const byte*>(inBuffer);
-    pBuf.SetArray(pByte, 0, inBufSize);
+
+    if (pBuf.SetArray(pByte, 0, inBufSize) != E_SUCCESS) {
+        LogDebug("Couldnot set pBuf");
+        return NULL;
+    }
+
     pBuf.Flip();
 
-    ByteBuffer *getBuffer = pInstance->_TrustZoneService::DecryptN(*appInfo, pBuf);
-    return getBuffer;
+    return pInstance->_TrustZoneService::DecryptN(*appInfo, pBuf);
 }
 
 }
@@ -1051,7 +1055,10 @@ std::string Bundle::DecryptResource(std::string resource, int size)
         const byte *b_pkgid = reinterpret_cast<const byte*>(pkgid.c_str());
         ByteBuffer appInfo;
         appInfo.Construct(pkgid.length());
-        appInfo.SetArray(b_pkgid, 0, pkgid.length());
+        if (appInfo.SetArray(b_pkgid, 0, pkgid.length()) != E_SUCCESS) {
+            LogDebug("Couldnot set appInfo");
+            return std::string();
+        }
         appInfo.Flip();
 
         int writeCount = 0;
index e0d8037..96d7569 100644 (file)
@@ -324,8 +324,8 @@ void ViewLogic::suspendWidget()
     if (!m_currentEwkView) {
         LogWarning("Cannot suspend widget without view");
     } else {
+        setEwkViewInvisible(m_currentEwkView);
         if (!m_isBackgroundSupport) {
-            setEwkViewInvisible(m_currentEwkView);
             suspendWebkit(m_currentEwkView);
         }
     }
@@ -344,8 +344,8 @@ void ViewLogic::resumeWidget()
     Assert(m_model);
 
     if (m_currentEwkView) {
+        setEwkViewVisible(m_currentEwkView);
         if (!m_isBackgroundSupport) {
-            setEwkViewVisible(m_currentEwkView);
             resumeWebkit(m_currentEwkView);
         }
     }
index dac620f..3519779 100644 (file)
@@ -482,7 +482,7 @@ void WrtClient::launchStep()
     m_widget = WRT::CoreModuleSingleton::Instance()
             .getRunnableWidgetObject(m_tizenId, m_serviceIndex);
 #else
-m_widget = WRT::CoreModuleSingleton::Instance()
+    m_widget = WRT::CoreModuleSingleton::Instance()
         .getRunnableWidgetObject(m_tizenId);
 #endif
     ADD_PROFILING_POINT("getRunnableWidgetObject", "stop");
index 16f8d00..3e5dadf 100644 (file)
@@ -183,18 +183,18 @@ static void print_help(FILE *stream, int /*exit_code*/)
     fprintf(stream, "Usage : %s [ ... ]\n", program);
     fprintf(
         stream,
-        "   -h                       --help              Display this usage information.\n"
-        "   -l                       --list              Display installed widgets list\n"
-        "   -s [GUID]or[PkgName]     --start             Launch widget with package name or GUID\n"
-        "   -k [GUID]or[PkgName]     --kill              Kill widget with package name or GUID\n"
-        "   -r [GUID]or[PkgName]     --is-running        Check whether widget is running by package name or GUID,\n"
-        "                                                If widget is running, 0(zero) will be returned.\n"
-        "   -d                       --debug             Activate debug mode\n"
-        "   -t [second]              --timeout           Set timeout of response from widget in debug mode\n"
-        "   -v [1]or[0]              --developer-mode    Set developermode\n"
-        "   -c [1]or[0]              --compliance-mode   Set compliancemode\n"
-        "   -i [imei]                --fake-imei         Set fakeimei\n"
-        "   -m [meid]                --fake-meid         Set fakemeid\n"
+        "   -h                        --help              Display this usage information.\n"
+        "   -l                        --list              Display installed widgets list\n"
+        "   -s [tizen application ID] --start             Launch widget with tizen application ID\n"
+        "   -k [tizen application ID] --kill              Kill widget with tizen application ID\n"
+        "   -r [tizen application ID] --is-running        Check whether widget is running by tizen application ID,\n"
+        "                                                 If widget is running, 0(zero) will be returned.\n"
+        "   -d                        --debug             Activate debug mode\n"
+        "   -t [second]               --timeout           Set timeout of response from widget in debug mode\n"
+        "   -v [1]or[0]               --developer-mode    Set developermode\n"
+        "   -c [1]or[0]               --compliance-mode   Set compliancemode\n"
+        "   -i [imei]                 --fake-imei         Set fakeimei\n"
+        "   -m [meid]                 --fake-meid         Set fakemeid\n"
         "    if you emit this option, 5 seconds is set in debug mode\n"
         );
 }
@@ -207,7 +207,7 @@ int main(int argc, char* argv[])
     {
         int next_opt, opt_idx = 0;
         int timeout = TIMEOUT_DEFAULT;
-        char pkgname[256] = "";
+        char applicationId[256] = "";
         char temp_arg[256] = "";
         char pid[6] = "";
         char op = '\0';
@@ -390,26 +390,16 @@ int main(int argc, char* argv[])
             WidgetDAOReadOnlyList widgetList =
                 WrtDB::WidgetDAOReadOnly::getWidgetList();
             FOREACH(dao, widgetList) {
-                WrtDB::WidgetGUID d_guid = (*dao)->getGUID();
-                WrtDB::WidgetPkgName d_pkgname = (*dao)->getPkgName();
-                if (!d_guid.IsNull() &&
-                    !strcmp(DPL::ToUTF8String(*d_guid).c_str(), temp_arg))
-                {
-                    WrtDB::WidgetPkgName package_name = (*dao)->getPkgName();
-                    temp = DPL::ToUTF8String(package_name);
-                    break;
-                }
-                if (!strcmp(DPL::ToUTF8String(d_pkgname).c_str(),
+                WrtDB::TizenAppId tizenAppId = (*dao)->getTzAppId();
+                if (!strcmp(DPL::ToUTF8String(tizenAppId).c_str(),
                             normal_arg.c_str()))
                 {
-                    WrtDB::WidgetPkgName package_name = (*dao)->getPkgName();
-                    temp = DPL::ToUTF8String(package_name);
+                    temp = DPL::ToUTF8String(tizenAppId);
                     break;
                 }
             }
-
             if (!temp.empty()) {
-                strncpy(pkgname, temp.c_str(), strlen(temp.c_str()));
+                strncpy(applicationId, temp.c_str(), strlen(temp.c_str()));
             } else {
                 printf("result: %s\n", "failed");
                 return -1;
@@ -439,7 +429,7 @@ int main(int argc, char* argv[])
                 }
             }
 
-            if (strlen(pkgname) > 0) {
+            if (strlen(applicationId) > 0) {
                 // do setuid to '5000' uid to communicate
                 //with webapp using RT signal.
                 gid_t group_list[1];
@@ -456,7 +446,7 @@ int main(int argc, char* argv[])
                 }
 
                 // set package
-                ret = service_set_package(serviceHandle, pkgname);
+                ret = service_set_package(serviceHandle, applicationId);
                 if (SERVICE_ERROR_NONE != ret) {
                     printf("result: %s\n", "failed");
                     service_destroy(serviceHandle);
@@ -490,7 +480,7 @@ int main(int argc, char* argv[])
             bool isRunning = false;
 
             //checks whether the application is running
-            ret = app_manager_is_running(pkgname, &isRunning);
+            ret = app_manager_is_running(applicationId, &isRunning);
             if (APP_MANAGER_ERROR_NONE != ret) {
                 printf("result: %s\n", "failed");
                 return -1;
@@ -500,7 +490,7 @@ int main(int argc, char* argv[])
                 // get app_context for running application
                 // app_context must be released with app_context_destroy
                 app_context_h appCtx = NULL;
-                ret = app_manager_get_app_context(pkgname, &appCtx);
+                ret = app_manager_get_app_context(applicationId, &appCtx);
                 if (APP_MANAGER_ERROR_NONE != ret) {
                     printf("result: %s\n", "failed");
                     return -1;
@@ -523,8 +513,7 @@ int main(int argc, char* argv[])
             }
         } else if (op == 'r') {
             bool isRunning = false;
-
-            ret = app_manager_is_running(pkgname, &isRunning);
+            ret = app_manager_is_running(applicationId, &isRunning);
 
             if (APP_MANAGER_ERROR_NONE != ret) {
                 printf("result: %s\n", "failed");
index 62eea74..ee3dd1f 100644 (file)
@@ -196,7 +196,7 @@ _static_ void __modify_bundle(bundle * kb, int caller_pid,
                               app_info_from_db * menu_info, int cmd)
 {
     // warning: unused parameter
-    caller_pid = caller_pid;
+    (void) caller_pid;
 
     bundle_del(kb, AUL_K_PKG_NAME);
     bundle_del(kb, AUL_K_EXEC);
@@ -371,7 +371,7 @@ _static_ void __wrt_launchpad_main_loop(app_pkt_t* pkt, char* out_app_path, int*
         exit(-1);
     }
 
-    __modify_bundle(kb, cr.pid, menu_info, pkt->cmd);
+    __modify_bundle(kb, /*cr.pid - unused parameter*/ 0, menu_info, pkt->cmd);
     pkg_name = _get_pkgname(menu_info);
     _D("pkg name : %s", pkg_name);
 
@@ -406,9 +406,6 @@ _static_ void __wrt_launchpad_main_loop(app_pkt_t* pkt, char* out_app_path, int*
         bundle_free(kb);
     }
 #endif
-
-    free(menu_info);
-    free(kb);
 }
 
 #endif // __LAUNCHPAD_UTIL_H_
index ba9fbf2..5fa0986 100644 (file)
@@ -813,7 +813,11 @@ int main(int argc, char **argv)
         if ((pfds[DUMMY_PROCESS].revents & (POLLHUP|POLLNVAL)) != 0)
         {
             _D("pfds[DUMMY_PROCESS].revents & (POLLHUP|POLLNVAL) (pid:%d)", dummy_process_pid);
-            close(pfds[DUMMY_PROCESS].fd);
+
+            if (pfds[DUMMY_PROCESS].fd > -1)
+            {
+                close(pfds[DUMMY_PROCESS].fd);
+            }
 
             dummy_process_pid = DUMMY_NONE;
             dummy_process_fd = -1;
index 383adaf..327bbe4 100644 (file)
@@ -215,7 +215,7 @@ void __refuse_dummy_process(int server_fd)
     {
         _E("accept error!");
 
-        return;
+        goto err__refuse_dummy_process;;
     }
 
     close(client_fd);
index 56b04a0..6f39595 100644 (file)
@@ -146,8 +146,11 @@ void RunnableObjectStateTester::loadFinishCallback(Evas_Object* /*evas*/)
 
 void RunnableObjectStateTester::runTest(RunnableObjectStateTester::Test func)
 {
+#ifdef MULTIPROCESS_SERVICE_SUPPORT
     m_widget = WRT::CoreModuleSingleton::Instance().getRunnableWidgetObject(m_handle, DPL::Optional<unsigned>());
-
+#else
+    m_widget = WRT::CoreModuleSingleton::Instance().getRunnableWidgetObject(m_handle);
+#endif
     //as we know we uses specific implementation
     WRT::RunnableWidgetObject * m_widget_impl = dynamic_cast<WRT::RunnableWidgetObject*>(m_widget.get());
     Assert(m_widget_impl);