From 4968ed0ea84ae89649a4ca4b148d95f60fcfdca3 Mon Sep 17 00:00:00 2001 From: Jihoon Chung Date: Wed, 13 Mar 2013 08:58:25 +0900 Subject: [PATCH] Implement privilege for usermedia permission [Issue#] TDIS-4324 [Problem] N/A [Cause] N/A [Solution] Implement privilege for usermedia permission popup If web application define privilege for usermedia permission, "http://tizen.org/privilege/mediacapture", web application is possible to use usermedia without user permission [SCMRequest] N/A Change-Id: I074f19c90c4b719c31de8c3cc40272c78f187b2e --- modules/security_origin_dao/dao/security_origin_dao.cpp | 6 +++++- modules/security_origin_dao/dao/security_origin_dao_types.cpp | 3 ++- .../include/wrt-commons/security-origin-dao/security_origin_dao.h | 3 ++- .../wrt-commons/security-origin-dao/security_origin_dao_types.h | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/security_origin_dao/dao/security_origin_dao.cpp b/modules/security_origin_dao/dao/security_origin_dao.cpp index 8c4874a..9840665 100644 --- a/modules/security_origin_dao/dao/security_origin_dao.cpp +++ b/modules/security_origin_dao/dao/security_origin_dao.cpp @@ -267,11 +267,15 @@ void SecurityOriginDAO::setSecurityOriginData(const SecurityOriginData &security SQL_CONNECTION_EXCEPTION_HANDLER_END("Fail to set security origin data") } -void SecurityOriginDAO::setPrivilegeSecurityOriginData(const Feature feature) +void SecurityOriginDAO::setPrivilegeSecurityOriginData(const Feature feature, + bool isOnlyAllowedLocalOrigin) { Origin origin(DPL::FromUTF8String("file"), DPL::FromUTF8String(""), 0); + if (!isOnlyAllowedLocalOrigin) { + origin.scheme = DPL::FromUTF8String(""); + } SecurityOriginData data(feature, origin); setSecurityOriginData(data, RESULT_ALLOW_ALWAYS, true); } diff --git a/modules/security_origin_dao/dao/security_origin_dao_types.cpp b/modules/security_origin_dao/dao/security_origin_dao_types.cpp index eaecc4b..23ea30c 100644 --- a/modules/security_origin_dao/dao/security_origin_dao_types.cpp +++ b/modules/security_origin_dao/dao/security_origin_dao_types.cpp @@ -28,6 +28,7 @@ namespace SecurityOriginDB { const std::map g_W3CPrivilegeTextMap = { {"http://tizen.org/privilege/location", FEATURE_GEOLOCATION}, - {"http://tizen.org/privilege/notification", FEATURE_WEB_NOTIFICATION} + {"http://tizen.org/privilege/notification", FEATURE_WEB_NOTIFICATION}, + {"http://tizen.org/privilege/mediacapture", FEATURE_USER_MEDIA} }; } // namespace SecurityOriginDB diff --git a/modules/security_origin_dao/include/wrt-commons/security-origin-dao/security_origin_dao.h b/modules/security_origin_dao/include/wrt-commons/security-origin-dao/security_origin_dao.h index 9f075ee..964715e 100644 --- a/modules/security_origin_dao/include/wrt-commons/security-origin-dao/security_origin_dao.h +++ b/modules/security_origin_dao/include/wrt-commons/security-origin-dao/security_origin_dao.h @@ -47,7 +47,8 @@ class SecurityOriginDAO void setSecurityOriginData(const SecurityOriginData &securityOriginData, const Result result, const bool readOnly = false); - void setPrivilegeSecurityOriginData(const Feature feature); + void setPrivilegeSecurityOriginData(const Feature feature, + bool isOnlyAllowedLocalOrigin = true); void removeSecurityOriginData(const SecurityOriginData &securityOriginData); void removeSecurityOriginData(const Result result); diff --git a/modules/security_origin_dao/include/wrt-commons/security-origin-dao/security_origin_dao_types.h b/modules/security_origin_dao/include/wrt-commons/security-origin-dao/security_origin_dao_types.h index bcb0681..582de0f 100644 --- a/modules/security_origin_dao/include/wrt-commons/security-origin-dao/security_origin_dao_types.h +++ b/modules/security_origin_dao/include/wrt-commons/security-origin-dao/security_origin_dao_types.h @@ -35,7 +35,8 @@ enum Feature FEATURE_START = 0, FEATURE_GEOLOCATION = 0, FEATURE_WEB_NOTIFICATION, - FEATURE_END = FEATURE_WEB_NOTIFICATION + FEATURE_USER_MEDIA, + FEATURE_END = FEATURE_USER_MEDIA }; enum Result -- 2.7.4