#include <memory>
#include <Evas.h>
#include <Elementary.h>
+#include <vconf.h>
#include <dpl/log/log.h>
#include <dpl/assert.h>
+#include <dpl/wrt-dao-ro/common_dao_types.h>
+#include <dpl/wrt-dao-ro/vconf_config.h>
#include <wrt-commons/security-origin-dao/security_origin_dao.h>
#include <widget_model.h>
}
return m_securityOriginDAO.get();
}
+
+ WrtDB::SettingsType isNeedPermissionCheck(
+ SecurityOriginDB::Feature feature)
+ {
+ using namespace SecurityOriginDB;
+ std::string key;
+ if (feature == FEATURE_GEOLOCATION) {
+ key = WrtDB::VconfConfig::GetVconfKeyGeolocationUsage(
+ m_model->TizenId);
+ } else if (feature == FEATURE_WEB_NOTIFICATION) {
+ key = WrtDB::VconfConfig::GetVconfKeyWebNotificationUsage(
+ m_model->TizenId);
+ } else if (feature == FEATURE_WEB_DATABASE) {
+ key = WrtDB::VconfConfig::GetVconfKeyWebDatabaseUsage(
+ m_model->TizenId);
+ } else if (feature == FEATURE_FILE_SYSTEM_ACCESS) {
+ key = WrtDB::VconfConfig::GetVconfKeyFilesystemUsage(
+ m_model->TizenId);
+ } else {
+ Assert("Wrong feature argument is input");
+ }
+
+ int value = 0;
+ vconf_get_int(key.c_str(), &value);
+ LogDebug(key << " = " << value);
+ WrtDB::SettingsType ret = static_cast<WrtDB::SettingsType>(value);
+
+ return ret;
+ }
};
SecurityOriginSupport::SecurityOriginSupport(WidgetModel* widgetModel) :
return m_impl->getSecurityOriginDAO();
}
+WrtDB::SettingsType SecurityOriginSupport::isNeedPermissionCheck(
+ SecurityOriginDB::Feature feature)
+{
+ return m_impl->isNeedPermissionCheck(feature);
+}
+
Evas_Object* SecurityOriginSupportUtil::createPopup(Evas_Object* window,
const char* bodyText,
const char* checkText,
#include <memory>
#include <Evas.h>
#include <Elementary.h>
+#include <dpl/wrt-dao-ro/common_dao_types.h>
#include <wrt-commons/security-origin-dao/security_origin_dao.h>
class WidgetModel;
SecurityOriginSupport(WidgetModel* widgetModel);
virtual ~SecurityOriginSupport();
SecurityOriginDB::SecurityOriginDAO* getSecurityOriginDAO();
+ WrtDB::SettingsType isNeedPermissionCheck(
+ SecurityOriginDB::Feature feature);
private:
std::unique_ptr<SecurityOriginSupportImplementation> m_impl;
Assert(data);
ViewLogic* This = static_cast<ViewLogic*>(data);
Assert(eventInfo);
+ Ewk_Geolocation_Permission_Data* permissionRequest =
+ static_cast<Ewk_Geolocation_Permission_Data*>(eventInfo);
+
+ if (This->m_securityOriginSupport->isNeedPermissionCheck(
+ SecurityOriginDB::FEATURE_GEOLOCATION)
+ == WrtDB::SETTINGS_TYPE_OFF)
+ {
+ ewk_geolocation_permission_request_allow_set(
+ ewk_geolocation_permission_request_get(permissionRequest),
+ EINA_FALSE);
+ return;
+ }
ViewModule::GeolocationSupport::Webkit2::geolocationPermissionRequest(
This->m_window,
This->m_securityOriginSupport->getSecurityOriginDAO(),
LogDebug("databaseUsagePermissionRequestCallback called");
Assert(data);
ViewLogic* This = static_cast<ViewLogic*>(data);
-
Assert(eventInfo);
+
+ if (This->m_securityOriginSupport->isNeedPermissionCheck(
+ SecurityOriginDB::FEATURE_WEB_DATABASE)
+ == WrtDB::SETTINGS_TYPE_OFF)
+ {
+ // default value is deny
+ return;
+ }
ViewModule::WebStorageSupport::webStorageCreatePermissionRequest(
This->m_window,
This->m_securityOriginSupport->getSecurityOriginDAO(),
LogDebug("fileSystemPermissionRequestCallback called");
Assert(data);
ViewLogic* This = static_cast<ViewLogic*>(data);
+
+ if (This->m_securityOriginSupport->isNeedPermissionCheck(
+ SecurityOriginDB::FEATURE_FILE_SYSTEM_ACCESS)
+ == WrtDB::SETTINGS_TYPE_OFF)
+ {
+ Ewk_Context_File_System_Permission* fileSystemPermission =
+ static_cast<Ewk_Context_File_System_Permission*>(eventInfo);
+ ewk_context_file_system_permission_allow_set(fileSystemPermission,
+ EINA_FALSE);
+ return;
+ }
+
Assert(eventInfo);
ViewModule::FileSystemSupport::fileSystemPermissionRequest(
This->m_window,