From: Piotr Kosko
Date: Wed, 3 Oct 2018 05:06:34 +0000 (+0200)
Subject: Merge branch 'tizen_4.0' into tizen
X-Git-Tag: submit/tizen/20181010.065230^0
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9e08ef7cd6137ad758eea713172840c181f949b7;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git
Merge branch 'tizen_4.0' into tizen
Commit fixes SVACE issues - 246302, 246317
[Verification] Code compiles successfully, TCT for archive and exif 100%
Change-Id: Ia1ffd75f5460d952c50988f08ef38a6b2acb6e26
---
9e08ef7cd6137ad758eea713172840c181f949b7
diff --cc packaging/webapi-plugins.spec
index 21a6d3f6,60f393db..27497324
--- a/packaging/webapi-plugins.spec
+++ b/packaging/webapi-plugins.spec
@@@ -8,7 -8,7 +8,7 @@@
%define crosswalk_extensions_path %{_libdir}/%{crosswalk_extensions}
Name: webapi-plugins
- Version: 2.29
-Version: 2.27
++Version: 2.30
Release: 0
License: Apache-2.0 and BSD-3-Clause and MIT
Group: Development/Libraries
diff --cc src/archive/zip_add_request.cc
index 46cd84db,66a643b6..bb889d5f
--- a/src/archive/zip_add_request.cc
+++ b/src/archive/zip_add_request.cc
@@@ -360,8 -360,12 +360,12 @@@ PlatformResult ZipAddRequest::addToZipA
// Get file length
fseek(m_input_file, 0, SEEK_END);
const size_t in_file_size = ftell(m_input_file);
- fseek(m_input_file, 0, SEEK_SET);
+ int res = fseek(m_input_file, 0, SEEK_SET);
+ if (0 != res) {
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Reading input file failed",
+ ("fseek failed with error! [%d]", res));
+ }
- LoggerD("Source file: [%s] size: %d - %s", src_file_path.c_str(), in_file_size,
+ LoggerD("Source file: [%s] size: %zu - %s", src_file_path.c_str(), in_file_size,
bytesToReadableString(in_file_size).c_str());
cur_afentry->setSize(in_file_size);
diff --cc src/ppm/ppm_instance.cc
index 5e3c7515,7f419a32..be7d4155
--- a/src/ppm/ppm_instance.cc
+++ b/src/ppm/ppm_instance.cc
@@@ -129,37 -127,6 +129,39 @@@ void PPMInstance::ResponseCallback(ppm_
common::Instance::PostMessage(data->_instance, event.serialize().c_str());
}
- void PPMInstance::ResponseMultipleCallback(ppm_call_cause_e cause, const ppm_request_result_e *result,
- const char** privileges, size_t privileges_count, void* user_data) {
++void PPMInstance::ResponseMultipleCallback(ppm_call_cause_e cause,
++ const ppm_request_result_e* result,
++ const char** privileges, size_t privileges_count,
++ void* user_data) {
+ ScopeLogger();
+
+ std::unique_ptr data{static_cast(user_data)};
+
+ picojson::value event = picojson::value(picojson::object());
+ picojson::object& obj = event.get();
+
+ obj.insert(std::make_pair("callbackId", picojson::value(data->callbackId)));
+
+ if (PRIVACY_PRIVILEGE_MANAGER_CALL_CAUSE_ANSWER == cause) {
+ picojson::value result_array = picojson::value(picojson::array());
+ picojson::array& array_obj = result_array.get();
+
+ for (size_t i = 0; i < privileges_count; i++) {
+ picojson::value result_elem = picojson::value(picojson::object());
+ picojson::object& obj = result_elem.get();
+ obj["privilege"] = picojson::value(privileges[i]);
+ obj["result"] = picojson::value(CheckRequestResultToString(result[i]));
+ array_obj.push_back(result_elem);
+ }
+ obj.insert(std::make_pair("result", result_array));
+ } else {
+ LogAndReportError(
+ common::PlatformResult(common::ErrorCode::ABORT_ERR, "Get callback data failed"), &obj);
+ }
+
+ common::Instance::PostMessage(data->_instance, event.serialize().c_str());
+}
+
void PPMInstance::checkPermission(const picojson::value& args, picojson::object& out) {
ScopeLogger();
const std::string& privilege = args.get("privilege").get();
@@@ -241,36 -169,5 +243,36 @@@ void PPMInstance::requestPermission(con
ReportSuccess(out);
}
+void PPMInstance::requestPermissions(const picojson::value& args, picojson::object& out) {
+ ScopeLogger();
+
+ const double callback_id = args.get("callbackId").get();
+
+ const picojson::array& privileges = args.get("privileges").get();
+ unsigned int size = static_cast(privileges.size());
+
+ std::vector privilege_array;
+ size_t i = 0;
+
+ for (auto iter = privileges.begin(); iter != privileges.end(); ++iter, ++i) {
+ privilege_array.push_back(iter->get().c_str());
+ }
+
+ ResponseCallbackData* user_data{new ResponseCallbackData()};
+ user_data->_instance = this;
+ user_data->callbackId = callback_id;
+
- int ret =
- ppm_request_permissions(privilege_array.data(), size, ResponseMultipleCallback, static_cast(user_data));
++ int ret = ppm_request_permissions(privilege_array.data(), size, ResponseMultipleCallback,
++ static_cast(user_data));
+
+ if (PRIVACY_PRIVILEGE_MANAGER_ERROR_NONE != ret) {
+ LogAndReportError(convertError(ret), &out,
+ ("checkPermission error: %d (%s)", ret, get_error_message(ret)));
+ return;
+ }
+
+ ReportSuccess(out);
+}
+
} // namespace ppm
} // namespace extension
diff --cc src/ppm/ppm_instance.h
index 3a2103ff,9d1825ce..1df853d9
--- a/src/ppm/ppm_instance.h
+++ b/src/ppm/ppm_instance.h
@@@ -34,19 -34,14 +34,19 @@@ class PPMInstance : public common::Pars
virtual ~PPMInstance();
private:
- void checkPermission(const picojson::value& args, picojson::object& out);\
+ void checkPermission(const picojson::value& args, picojson::object& out);
+ void checkPermissions(const picojson::value& args, picojson::object& out);
void requestPermission(const picojson::value& args, picojson::object& out);
+ void requestPermissions(const picojson::value& args, picojson::object& out);
static common::PlatformResult convertError(int err, const std::string& message = "");
static std::string CheckResultToString(ppm_check_result_e result);
static std::string CheckRequestResultToString(ppm_request_result_e result);
static void ResponseCallback(ppm_call_cause_e cause, ppm_request_result_e result,
const char* privilege, void* user_data);
+ static void ResponseMultipleCallback(ppm_call_cause_e cause, const ppm_request_result_e* result,
- const char** privileges, size_t privileges_count,
- void* user_data);
++ const char** privileges, size_t privileges_count,
++ void* user_data);
};
} // namespace ppm