[Release] livebox.web-provider-1.39 submit/tizen_2.2/20130705.070028
authorYunchan Cho <yunchan.cho@samsung.com>
Fri, 5 Jul 2013 06:26:20 +0000 (15:26 +0900)
committerYunchan Cho <yunchan.cho@samsung.com>
Fri, 5 Jul 2013 06:27:02 +0000 (15:27 +0900)
Change-Id: I55c9751f6dd174902b9d5320c9da81f7db170805

CMakeLists.txt
livebox.web-provider.manifest [changed mode: 0644->0755]
livebox.web-provider.rule [new file with mode: 0755]
livebox.web-provider.xml
packaging/livebox.web-provider.spec
src/Core/Box.cpp
src/Core/BoxManager.cpp
src/Daemon/BoxDaemonImpl.cpp
src/Plugin/AppBoxPlugin/AppBoxRenderView.cpp

index 28adfc7..b6178d1 100755 (executable)
@@ -56,6 +56,10 @@ MACRO(INSTALL_FILE FILE DEST_DIR)
     INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
         DESTINATION ${DEST_DIR}) 
 ENDMACRO()
+MACRO(INSTALL_FILE_RENAMED FILE DEST_DIR NEW_NAME)
+    INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
+        DESTINATION ${DEST_DIR} RENAME ${NEW_NAME}) 
+ENDMACRO()
 MACRO(CONFIG_FILE SRC_FILE DEST_FILE)
     CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FILE} 
         ${CMAKE_CURRENT_SOURCE_DIR}/${DEST_FILE} @ONLY)
@@ -73,4 +77,5 @@ INSTALL_FILE(${PKGCONFIG_DIR}/web-provider.pc lib/pkgconfig)
 INSTALL_FILE(livebox.web-provider.xml /usr/share/packages)
 INSTALL_FILE(${DATA_DIR}/web_provider_reset_db.sh bin)
 INSTALL_FILE(${DATA_DIR}/web_provider_db.sql /usr/share/${PROJECT_NAME})
+INSTALL_FILE(livebox.web-provider.rule /etc/smack/accesses2.d)
 SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "web-provider-svc.pc")
old mode 100644 (file)
new mode 100755 (executable)
index 88b2135..93f35d2
@@ -1,54 +1,17 @@
 <manifest>
-       <!-- web provider label -->
-       <define>
-               <domain name="livebox.web-provider"/>
-               <provide>
+    <!-- web provider label -->
+    <define>
+        <domain name="livebox.web-provider"/>
+        <provide>
             <label name="livebox.web-provider::db" />
-               </provide>
-        <request>
-            <smack request="livebox.web-provider::db" type="rwxat"/>
-            <smack request="system::vconf" type="rwxat"/>
-            <smack request="system::homedir" type="rwxat"/>
-            <smack request="system::use_internet" type="rwxat"/>
-            <smack request="system::media" type="rwxat"/>
-            <smack request="system::share" type="rwxat"/>
-            <smack request="device::app_logging" type="rwxat"/>
-            <smack request="data-provider-master" type="rwxat"/>
-            <smack request="data-provider-master::share" type="rwxat"/>
-            <smack request="data-provider-master::data" type="rwxat"/>
-            <smack request="data-provider-master::db" type="rwxat"/>
-            <smack request="wrt-security-daemon::db" type="rwxat"/>
-            <smack request="wrt-security-daemon" type="rwxat"/>
-            <smack request="cert-svc" type="rwxat"/>
-            <smack request="wrt-commons::db_wrt" type="rwxat"/>
-            <smack request="wrt-commons::db_wrt_autosave" type="rwxat"/>
-            <smack request="wrt-commons::db_wrt_custom_handler" type="rwxat"/>
-            <smack request="syslogd" type="rwxat"/>
-            <smack request="xorg" type="rwxat"/>
-            <smack request="isf" type="rwxat"/>
-            <smack request="dbus" type="rwxat"/>
-            <smack request="e17" type="rwxat"/>
-            <smack request="pulseaudio" type="rwxat"/>
-            <smack request="ail::db" type="rwxat"/>
-            <smack request="sys-assert::core" type="rwxat"/>
-            <smack request="webkit2-efl" type="rwxat"/>
-            <smack request="app-svc" type="rwxat"/>
-            <smack request="app-svc::db" type="rwxat"/>
-            <smack request="svi-data" type="rwxat"/>
-            <smack request="sound_server" type="rwxat"/>
-            <smack request="pkgmgr::db" type="rwxat"/>
-            <smack request="privacy-manager::db" type="rw"/>
-            <!-- <smack request="immvibed" type="rwxa"/> -->
-        </request>
-        <permit>
-            <smack permit="system::use_internet" type="rwx"/>
-        </permit>
-       </define>
+        </provide>
+    </define>
+
     <assign>
         <filesystem path="/usr/lib/libweb-provider*.so*" label="_" />
         <filesystem path="/usr/lib/web-provider/libweb-provider*.so*" label="_" />
     </assign>
-       <request>
-               <domain name="livebox.web-provider" />
-       </request>
+    <request>
+        <domain name="livebox.web-provider" />
+    </request>
 </manifest>
diff --git a/livebox.web-provider.rule b/livebox.web-provider.rule
new file mode 100755 (executable)
index 0000000..13c589b
--- /dev/null
@@ -0,0 +1,88 @@
+livebox.web-provider livebox.web-provider::db rwxat
+livebox.web-provider system::vconf rwxat
+livebox.web-provider system::homedir rwxat
+livebox.web-provider system::share rwxat
+livebox.web-provider device::app_logging rwxat
+livebox.web-provider data-provider-master rwxat
+livebox.web-provider data-provider-master::share rwxat
+livebox.web-provider data-provider-master::data rwxat
+livebox.web-provider data-provider-master::db rwxat
+livebox.web-provider wrt-security-daemon::db rwxat
+livebox.web-provider wrt-security-daemon rwxat
+livebox.web-provider cert-svc rwxat
+livebox.web-provider wrt-commons::db_wrt rwxat
+livebox.web-provider syslogd rwxat
+livebox.web-provider xorg rwxat
+livebox.web-provider isf rwxat
+livebox.web-provider dbus rwxat
+livebox.web-provider e17 rwxat
+livebox.web-provider pulseaudio rwxat
+livebox.web-provider ail::db rwxat
+livebox.web-provider sys-assert::core rwxat
+livebox.web-provider resman::db rwxat
+livebox.web-provider webkit2-efl rwxat
+livebox.web-provider app-svc rwxat
+livebox.web-provider app-svc::db rwxat
+livebox.web-provider svi-data rwxat
+livebox.web-provider sound_server rwxat
+livebox.web-provider privacy-manager::db rwxat
+livebox.web-provider immvibed rwxat
+livebox.web-provider alarm-server::alarm rwxat
+livebox.web-provider allshare::svc rwxat
+livebox.web-provider aul::launch rwxat
+livebox.web-provider aul::terminate rwxat
+livebox.web-provider badge::db rwxat
+livebox.web-provider browser-provider::bookmark rwxat
+livebox.web-provider bt-service::admin rwxat
+livebox.web-provider bt-service::gap rwxat
+livebox.web-provider bt-service::manager rwxat
+livebox.web-provider bt-service::spp rwxat
+livebox.web-provider calendar-service  rwxat
+livebox.web-provider calendar-service::svc rwxat
+livebox.web-provider contacts-service rwxat
+livebox.web-provider contacts-service::phonelog rwxat
+livebox.web-provider contacts-service::svc rwxat
+livebox.web-provider data-provider-master::notification rwxat
+livebox.web-provider data-provider-master::notification.client rwxat
+livebox.web-provider data-provider-master::badge rwxat
+livebox.web-provider data-provider-master::badge.client rwxat
+livebox.web-provider device::bklight rwxat
+livebox.web-provider deviced rwxat
+livebox.web-provider email-service::db rwxat
+livebox.web-provider mdm-server rwxat
+livebox.web-provider media-data::db rwxat
+livebox.web-provider media-server rwxat
+livebox.web-provider msg-service rwxat
+livebox.web-provider msg-service::db rwxat
+livebox.web-provider msg-service::read rwxat
+livebox.web-provider msg-service::smstrigger rwxat
+livebox.web-provider msg-service::write rwxat
+livebox.web-provider msg-service::db rwxat
+livebox.web-provider nfc-manager rwxat
+livebox.web-provider nfc-manager::admin rwxat
+livebox.web-provider nfc-manager::common rwxat
+livebox.web-provider nfc-manager::p2p rwxat
+livebox.web-provider nfc-manager::tag rwxat
+livebox.web-provider notification::db rwxat
+livebox.web-provider oma-ds-agent rwxat
+livebox.web-provider oma-ds-agent::cfg rwxat
+livebox.web-provider oma-ds-agent::svc rwxat
+livebox.web-provider org.tizen.setting::default-resources rwxat
+livebox.web-provider osp::datacontrol rwxat
+livebox.web-provider pkgmgr::db rwxat
+livebox.web-provider pkgmgr::info rwxat
+livebox.web-provider pkgmgr::svc rwxat
+livebox.web-provider push-service rwxat
+livebox.web-provider smartcard-service rwxat
+livebox.web-provider system::media rwxat
+livebox.web-provider system::use_internet rwxat
+livebox.web-provider sync_agent_frwk::oma-ds rwxat
+livebox.web-provider telephony_framework::api_modem rwxat
+livebox.web-provider telephony_framework::api_sim rwxat
+system::use_internet livebox.web-provider rwxat
+calendar-service livebox.web-provider rwxat
+contacts-service livebox.web-provider rwxat
+media-server livebox.web-provider rwxat
+nfc-manager livebox.web-provider rwxat
+sync_agent_frwk::oma-ds livebox.web-provider rwxat
+system::use_internet livebox.web-provider rwxat
index 22e9a69..cd21506 100644 (file)
@@ -3,7 +3,7 @@
        <label>Web Dynamic Box Provider</label>
        <author email="yunchan.cho@samsung.com" href="www.samsung.com">Yunchan Cho</author>
        <description>Web Dynamic Box Provider Executable</description>
-       <ui-application appid="livebox.web-provider" exec="/usr/apps/livebox.web-provider/bin/web-provider" nodisplay="true" multiple="false" type="capp" taskmanage="false">
+       <ui-application appid="dbox.web-provider" exec="/usr/apps/livebox.web-provider/bin/web-provider" nodisplay="true" multiple="false" type="capp" taskmanage="false">
                <icon>livebox.web-provider.png</icon>
                <label>Web Dynamic Box Provider</label>
                <label xml:lang="en-us">Web Dynamic Box Provider</label>
index 8f4a057..10ea6b0 100755 (executable)
@@ -1,7 +1,7 @@
 #git:framework/web/web-provider
 Name: livebox.web-provider
 Summary: web framework for livebox 
-Version: 1.37
+Version: 1.39
 Release: 1
 Group: main/app
 License: Flora License, Version 1.1
@@ -27,15 +27,6 @@ BuildRequires: pkgconfig(glib-2.0)
 BuildRequires: pkgconfig(json-glib-1.0)
 BuildRequires: pkgconfig(capi-appfw-application)
 
-# requires for smack
-# We need to add smack dependancies here on specific criteria
-Requires(post): sys-assert 
-Requires(post): busybox-symlinks-sysklogd
-Requires(post): data-provider-master
-Requires(post): isf
-Requires(post): e17 
-Requires(post): svi-data
-
 %description
 This is web framework responsible to manage liveboxes that consist of web contents
 
@@ -83,6 +74,7 @@ chmod 755 %{app_data}
 %{_prefix}/apps/livebox.web-provider/bin/web-provider
 %{_datarootdir}/packages/livebox.web-provider.xml
 %{_prefix}/share/res/*
+%{_sysconfdir}/smack/accesses2.d/livebox.web-provider.rule
 %{app_data}
 
 %files devel
index 695a2b6..0e46e34 100644 (file)
@@ -230,6 +230,11 @@ bool Box::closePd()
         return false;
     }
 
+    // if box update is requested during pd opening
+    if (m_updateNeeded) {
+        updateInternal();
+    }
+
     SWITCH_BOX_STATE();
     return true;
 }
@@ -240,8 +245,9 @@ bool Box::update(time_t requestTime, std::string& contentInfo)
 
     m_lastUpdateRequestTime = requestTime;
     m_boxInfo->contentInfo = contentInfo;
-    if (m_paused) {
-        // update is dalayed until this box goes to current tab
+    if (m_paused || m_pdBuffer) {
+        // update is dalayed
+        //  until this box goes to current tab or pd is closed
         m_updateNeeded = true;
         return true;
     }
index 54f9540..b6f3e17 100644 (file)
@@ -29,8 +29,6 @@
 #include "BoxData.h"
 #include "BoxManager.h"
 
-#define UPDATE_REQUEST_MIN_TIME    60 // seconds
-
 BoxManager::BoxManager(IBoxPluginFactoryPtr factory)
     : m_boxFactory(factory)
 {
@@ -241,12 +239,6 @@ bool BoxManager::requestUpdateBox(std::string& boxId, std::string& contentInfo)
             continue;
         }
         box = it->second;
-        int interval = requestTime - box->getLastUpdateRequestTime();
-        if (interval < UPDATE_REQUEST_MIN_TIME) {
-            LogD("this update request is skipped");
-            continue;
-        }
-        // set last request time to new one
         box->update(requestTime, contentInfo);
     }
 
index e7766a1..ede2908 100755 (executable)
@@ -40,6 +40,7 @@ static const std::string BOX_SERVICE_SCHEME("box-service://");
 static const std::string OPERATION_UPDATE_BOX(
         "http://tizen.org/appcontrol/operation/dynamicbox/web/update");
 static const std::string CONTENT_INFO_KEY("content-info");
+static const std::string ALARM_CALLER_KEY("__ALARM_MGR_CALLER_APPID");
 
 BoxDaemonImpl::BoxDaemonImpl()
     : m_pluginConnector(BoxPluginConnector::create())
@@ -592,7 +593,12 @@ bool BoxDaemonImpl::isServiceCallerBoxOwner(service_h service)
     char* caller = NULL;
     ret = service_get_caller(service, &caller);
     if (ret != SERVICE_ERROR_NONE) {
-        return false;
+        ret = service_get_extra_data(
+                service, ALARM_CALLER_KEY.c_str(), &caller);
+        if (ret != SERVICE_ERROR_NONE) {
+            LogD("failed to get caller's appid from service");
+            return false;
+        }
     }
     std::string callerAppId(caller);
 
index 3b6593c..d24d5dc 100644 (file)
@@ -45,7 +45,6 @@
 
 // injection javascript file regarding creating js object used by box and pd
 static const std::string injectionFile("/usr/share/web-provider/injection.js");
-static const std::string renderReadyKey("ready");
 
 AppBoxRenderView::AppBoxRenderView(
         std::string boxId, std::string instanceId,
@@ -403,7 +402,6 @@ void AppBoxRenderView::setWebViewBasicSetting(Evas_Object* webview)
             "frame,rendered",
             frameRenderedCallback,
             this);
-    evas_object_data_set(webview, renderReadyKey.c_str(), "0");
 }
 
 Eina_Bool AppBoxRenderView::fireRenderTimerCallback(void* data)
@@ -548,15 +546,6 @@ void AppBoxRenderView::frameRenderedCallback(
 {
     LogD("enter");
 
-    // TODO keep this temp code by merging webkit rendering patch
-    // skip first frame (transparent) from webkit
-    if(!strcmp("0", static_cast<const char*>(
-                    evas_object_data_get(webview, renderReadyKey.c_str()))))
-    {
-        evas_object_data_set(webview, renderReadyKey.c_str(), "1");
-        return;
-    }
-
     // start to update render buffer!
     AppBoxRenderView* This = static_cast<AppBoxRenderView*>(data);
     This->m_boxRenderBuffer->startCanvasUpdate();