From: Jihoon Chung Date: Tue, 12 Mar 2013 23:58:25 +0000 (+0900) Subject: Implement privilege for usermedia permission X-Git-Tag: submit/trunk/20130314.041840~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4968ed0ea84ae89649a4ca4b148d95f60fcfdca3;p=platform%2Fframework%2Fweb%2Fwrt-commons.git 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 --- 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