Implement privilege for usermedia permission
authorJihoon Chung <jihoon.chung@samsung.com>
Tue, 12 Mar 2013 23:58:25 +0000 (08:58 +0900)
committerGerrit Code Review <gerrit2@kim11>
Thu, 14 Mar 2013 02:23:41 +0000 (11:23 +0900)
[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
modules/security_origin_dao/dao/security_origin_dao_types.cpp
modules/security_origin_dao/include/wrt-commons/security-origin-dao/security_origin_dao.h
modules/security_origin_dao/include/wrt-commons/security-origin-dao/security_origin_dao_types.h

index 8c4874a..9840665 100644 (file)
@@ -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);
 }
index eaecc4b..23ea30c 100644 (file)
@@ -28,6 +28,7 @@
 namespace SecurityOriginDB {
 const std::map<std::string, Feature> 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
index 9f075ee..964715e 100644 (file)
@@ -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);
 
index bcb0681..582de0f 100644 (file)
@@ -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