add patch
[framework/osp/web.git] / src / controls / FWebCtrlGeolocationPermissionManager.cpp
index b2d5a8d..d85ced9 100755 (executable)
@@ -21,6 +21,7 @@
  *
  * The file contains the definition of GeolocationPermissionManager class.
  */
+#include <pthread.h>
 #include <unique_ptr.h>
 #include <FBaseColIList.h>
 #include <FBaseSysLog.h>
@@ -50,6 +51,8 @@ GeolocationPermissionManager::GeolocationPermissionManager(void)
 
 GeolocationPermissionManager::~GeolocationPermissionManager(void)
 {
+       delete __pGeolocationPermissionManagerImpl;
+       __pGeolocationPermissionManagerImpl = null;
 }
 
 
@@ -75,9 +78,6 @@ GeolocationPermissionManager::InitGeolocationPermissionManager(void)
 {
        result r = E_SUCCESS;
 
-       r = _AccessController::CheckUserPrivilege(_PRV_WEB_PRIVACY);
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, E_PRIVILEGE_DENIED, "[%s] The application does not have the privilege to call this method.", GetErrorMessage(E_PRIVILEGE_DENIED));
-
        std::unique_ptr<GeolocationPermissionManager> pInstance(new (std::nothrow) GeolocationPermissionManager());
        SysTryReturnVoidResult(NID_WEB_CTRL, pInstance.get(), E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
 
@@ -124,7 +124,7 @@ GeolocationPermissionManager::GetOriginListN(void) const
        ClearLastResult();
        result r = E_SUCCESS;
 
-       r = _AccessController::CheckUserPrivilege(_PRV_WEB_PRIVACY);
+       r = _AccessController::CheckUserPrivilege(_PRV_GEOLOCATIONPERMISSION_READ);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, null, E_PRIVILEGE_DENIED, "[%s] The application does not have the privilege to call this method.", GetErrorMessage(E_PRIVILEGE_DENIED));
 
        IList* pList = __pGeolocationPermissionManagerImpl->GetOriginListN();
@@ -142,7 +142,7 @@ GeolocationPermissionManager::IsPermissionAllowed(const String& origin) const
        ClearLastResult();
        result r = E_SUCCESS;
 
-       r = _AccessController::CheckUserPrivilege(_PRV_WEB_PRIVACY);
+       r = _AccessController::CheckUserPrivilege(_PRV_GEOLOCATIONPERMISSION_READ);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, false, E_PRIVILEGE_DENIED, "[%s] The application does not have the privilege to call this method.", GetErrorMessage(E_PRIVILEGE_DENIED));
 
        bool permission = __pGeolocationPermissionManagerImpl->IsPermissionAllowed(origin);
@@ -162,7 +162,7 @@ GeolocationPermissionManager::Remove(const String& origin)
        ClearLastResult();
        result r = E_SUCCESS;
 
-       r = _AccessController::CheckUserPrivilege(_PRV_WEB_PRIVACY);
+       r = _AccessController::CheckUserPrivilege(_PRV_GEOLOCATIONPERMISSION_WRITE);
        SysTryReturnResult(NID_WEB_CTRL, r == E_SUCCESS, E_PRIVILEGE_DENIED, "[%s] The application does not have the privilege to call this method.",  GetErrorMessage(E_PRIVILEGE_DENIED));
 
        r = __pGeolocationPermissionManagerImpl->Remove(origin);
@@ -182,7 +182,7 @@ GeolocationPermissionManager::RemoveAll(void)
        ClearLastResult();
        result r = E_SUCCESS;
 
-       r = _AccessController::CheckUserPrivilege(_PRV_WEB_PRIVACY);
+       r = _AccessController::CheckUserPrivilege(_PRV_GEOLOCATIONPERMISSION_WRITE);
        SysTryReturnResult(NID_WEB_CTRL, r == E_SUCCESS, E_PRIVILEGE_DENIED, "[%s] The application does not have the privilege to call this method.",  GetErrorMessage(E_PRIVILEGE_DENIED));
 
        r =  __pGeolocationPermissionManagerImpl->RemoveAll();