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