!7939 Hilog日志规范化整改frameworks/native/ability/native/

Merge pull request !7939 from xinking129/0321hilog
This commit is contained in:
openharmony_ci
2024-03-27 06:48:51 +00:00
committed by Gitee
20 changed files with 919 additions and 873 deletions
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -16,6 +16,7 @@
#include "data_ability_helper.h"
#include "abs_shared_result_set.h"
#include "datashare_helper.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "hitrace_meter.h"
#include "rdb_data_ability_utils.h"
@@ -42,7 +43,7 @@ DataAbilityHelper::DataAbilityHelper(const std::shared_ptr<DataShare::DataShareH
*/
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(const std::shared_ptr<Context> context)
{
HILOG_INFO("Call DataAbilityHelperImpl Creator with context.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with context.");
DataAbilityHelper *ptrDataAbilityHelper = nullptr;
std::shared_ptr<DataAbilityHelperImpl> dataAbilityHelperImpl = DataAbilityHelperImpl::Creator(context);
if (dataAbilityHelperImpl) {
@@ -62,9 +63,9 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(const std::shared_
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
const std::shared_ptr<Context> context, const std::shared_ptr<Uri> &uri)
{
HILOG_INFO("Call DataAbilityHelperImpl Creator with context & uri.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with context & uri.");
if (!context || !uri) {
HILOG_ERROR("Input param invalid, context or uri is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, context or uri is nullptr.");
return nullptr;
}
auto sharedPtrDataAbilityHelper = DataAbilityHelper::Creator(context, uri, false);
@@ -72,7 +73,8 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
return sharedPtrDataAbilityHelper;
}
HILOG_INFO("Call DataAbilityHelperImpl Creator failed, Call DataShareHelper Creator with context & uri.");
TAG_LOGI(AAFwkTag::DATA_ABILITY,
"Call DataAbilityHelperImpl Creator failed, Call DataShareHelper Creator with context & uri.");
Uri dataShareUri("");
if (!DataAbilityHelper::TransferScheme(*uri, dataShareUri)) {
return nullptr;
@@ -82,7 +84,7 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
if (dataShareHelper) {
ptrDataAbilityHelper = new DataAbilityHelper(dataShareHelper);
}
HILOG_DEBUG("Creator end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Creator end");
return std::shared_ptr<DataAbilityHelper>(ptrDataAbilityHelper);
}
@@ -97,9 +99,9 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
const std::shared_ptr<OHOS::AbilityRuntime::Context> context, const std::shared_ptr<Uri> &uri)
{
HILOG_INFO("Call DataAbilityHelperImpl Creator with ability runtime context & uri.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with ability runtime context & uri.");
if (!context || !uri) {
HILOG_ERROR("Input param invalid, ability runtime context or uri is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, ability runtime context or uri is nullptr.");
return nullptr;
}
auto sharedPtrDataAbilityHelper = DataAbilityHelper::Creator(context, uri, false);
@@ -107,7 +109,7 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
return sharedPtrDataAbilityHelper;
}
HILOG_INFO("Call DataAbilityHelperImpl Creator failed, "
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator failed, "
"Call DataShareHelper Creator with ability runtime context & uri.");
Uri dataShareUri("");
if (!DataAbilityHelper::TransferScheme(*uri, dataShareUri)) {
@@ -136,7 +138,7 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
const std::shared_ptr<Context> context, const std::shared_ptr<Uri> &uri, const bool tryBind)
{
HILOG_INFO("Call DataAbilityHelperImpl Creator with context & uri & tryBind.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with context & uri & tryBind.");
DataAbilityHelper *ptrDataAbilityHelper = nullptr;
auto dataAbilityHelperImpl = DataAbilityHelperImpl::Creator(context, uri, tryBind);
if (dataAbilityHelperImpl) {
@@ -160,7 +162,8 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
const std::shared_ptr<OHOS::AbilityRuntime::Context> context, const std::shared_ptr<Uri> &uri, const bool tryBind)
{
HILOG_INFO("Call DataAbilityHelperImpl Creator with ability runtime context & uri & tryBind.");
TAG_LOGI(
AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with ability runtime context & uri & tryBind.");
DataAbilityHelper *ptrDataAbilityHelper = nullptr;
auto dataAbilityHelperImpl = DataAbilityHelperImpl::Creator(context, uri, tryBind);
if (dataAbilityHelperImpl) {
@@ -178,7 +181,7 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
*/
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(const sptr<IRemoteObject> token)
{
HILOG_INFO("Call DataAbilityHelperImpl Creator with token.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with token.");
DataAbilityHelper *ptrDataAbilityHelper = nullptr;
auto dataAbilityHelperImpl = DataAbilityHelperImpl::Creator(token);
if (dataAbilityHelperImpl) {
@@ -200,9 +203,9 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(const sptr<IRemote
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
const sptr<IRemoteObject> token, const std::shared_ptr<Uri> &uri)
{
HILOG_INFO("Call DataAbilityHelperImpl Creator with token & uri.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with token & uri.");
if (!token || !uri) {
HILOG_ERROR("Input param invalid, token or uri is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, token or uri is nullptr.");
return nullptr;
}
DataAbilityHelper *ptrDataAbilityHelper = nullptr;
@@ -210,7 +213,8 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
if (dataAbilityHelperImpl) {
ptrDataAbilityHelper = new DataAbilityHelper(dataAbilityHelperImpl);
} else {
HILOG_INFO("Call DataAbilityHelperImpl Creator failed, Call DataShareHelper Creator with token & uri.");
TAG_LOGI(AAFwkTag::DATA_ABILITY,
"Call DataAbilityHelperImpl Creator failed, Call DataShareHelper Creator with token & uri.");
Uri dataShareUri("");
if (!DataAbilityHelper::TransferScheme(*uri, dataShareUri)) {
return nullptr;
@@ -231,14 +235,14 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
*/
bool DataAbilityHelper::Release()
{
HILOG_INFO("Release called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Release called.");
bool ret = false;
if (dataAbilityHelperImpl_) {
HILOG_INFO("Call DataAbilityHelperImpl Release.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Release.");
ret = dataAbilityHelperImpl_->Release();
}
if (dataShareHelper_) {
HILOG_INFO("Call DataShareHelper Release.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Release.");
ret = dataShareHelper_->Release();
dataShareHelper_.reset();
}
@@ -256,16 +260,16 @@ bool DataAbilityHelper::Release()
std::vector<std::string> DataAbilityHelper::GetFileTypes(Uri &uri, const std::string &mimeTypeFilter)
{
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
HILOG_INFO("GetFileTypes called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "GetFileTypes called.");
std::vector<std::string> matchedMIMEs;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl GetFileTypes.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl GetFileTypes.");
matchedMIMEs = dataAbilityHelperImpl->GetFileTypes(uri, mimeTypeFilter);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper GetFileTypes.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper GetFileTypes.");
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
matchedMIMEs = dataShareHelper->GetFileTypes(dataShareUri, mimeTypeFilter);
@@ -287,19 +291,19 @@ std::vector<std::string> DataAbilityHelper::GetFileTypes(Uri &uri, const std::st
*/
int DataAbilityHelper::OpenFile(Uri &uri, const std::string &mode)
{
HILOG_INFO("OpenFile Called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "OpenFile Called.");
int fd = -1;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl OpenFile.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl OpenFile.");
fd = dataAbilityHelperImpl->OpenFile(uri, mode);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
if (callFromJs_) {
HILOG_ERROR("Call DataShareHelper OpenFile, DataShareHelper no this interface.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Call DataShareHelper OpenFile, DataShareHelper no this interface.");
} else {
HILOG_INFO("Call DataShareHelper OpenFile.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper OpenFile.");
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
fd = dataShareHelper->OpenFile(dataShareUri, mode);
@@ -323,16 +327,16 @@ int DataAbilityHelper::OpenFile(Uri &uri, const std::string &mode)
*/
int DataAbilityHelper::OpenRawFile(Uri &uri, const std::string &mode)
{
HILOG_INFO("OpenRawFile called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "OpenRawFile called.");
int fd = -1;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl OpenRawFile.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl OpenRawFile.");
fd = dataAbilityHelperImpl->OpenRawFile(uri, mode);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper OpenFile.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper OpenFile.");
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
fd = dataShareHelper->OpenRawFile(dataShareUri, mode);
@@ -352,16 +356,16 @@ int DataAbilityHelper::OpenRawFile(Uri &uri, const std::string &mode)
int DataAbilityHelper::Insert(Uri &uri, const NativeRdb::ValuesBucket &value)
{
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
HILOG_INFO("Insert called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Insert called.");
int index = -1;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl Insert.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Insert.");
index = dataAbilityHelperImpl->Insert(uri, value);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper Insert.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Insert.");
DataShare::DataShareValuesBucket dataShareValue = RdbDataAbilityUtils::ToDataShareValuesBucket(value);
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
@@ -375,14 +379,14 @@ std::shared_ptr<AppExecFwk::PacMap> DataAbilityHelper::Call(
const Uri &uri, const std::string &method, const std::string &arg, const AppExecFwk::PacMap &pacMap)
{
std::shared_ptr<AppExecFwk::PacMap> result = nullptr;
HILOG_INFO("Call called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call called.");
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl Call.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Call.");
result = dataAbilityHelperImpl->Call(uri, method, arg, pacMap);
}
if (dataShareHelper_) {
HILOG_ERROR("Call DataShareHelper Call, DataShareHelper no this interface.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Call, DataShareHelper no this interface.");
}
return result;
}
@@ -400,16 +404,16 @@ int DataAbilityHelper::Update(
Uri &uri, const NativeRdb::ValuesBucket &value, const NativeRdb::DataAbilityPredicates &predicates)
{
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
HILOG_INFO("Update called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Update called.");
int index = -1;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl Update.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Update.");
index = dataAbilityHelperImpl->Update(uri, value, predicates);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper Update.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Update.");
DataShare::DataShareValuesBucket dataShareValue = RdbDataAbilityUtils::ToDataShareValuesBucket(value);
DataShare::DataSharePredicates dataSharePredicates = RdbDataAbilityUtils::ToDataSharePredicates(predicates);
Uri dataShareUri("");
@@ -431,16 +435,16 @@ int DataAbilityHelper::Update(
int DataAbilityHelper::Delete(Uri &uri, const NativeRdb::DataAbilityPredicates &predicates)
{
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
HILOG_INFO("Delete called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Delete called.");
int index = -1;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl Delete.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Delete.");
return dataAbilityHelperImpl->Delete(uri, predicates);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper Delete.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Delete.");
DataShare::DataSharePredicates dataSharePredicates = RdbDataAbilityUtils::ToDataSharePredicates(predicates);
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
@@ -463,28 +467,28 @@ std::shared_ptr<NativeRdb::AbsSharedResultSet> DataAbilityHelper::Query(
Uri &uri, std::vector<std::string> &columns, const NativeRdb::DataAbilityPredicates &predicates)
{
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
HILOG_DEBUG("Query called.");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Query called.");
std::shared_ptr<NativeRdb::AbsSharedResultSet> resultSet = nullptr;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_DEBUG("Call DataAbilityHelperImpl Query.");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Query.");
return dataAbilityHelperImpl->Query(uri, columns, predicates);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_DEBUG("Call DataShareHelper Query.");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Query.");
DataShare::DataSharePredicates dataSharePredicates = RdbDataAbilityUtils::ToDataSharePredicates(predicates);
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
std::shared_ptr<DataShare::DataShareResultSet> dataShareResultSet
= dataShareHelper->Query(dataShareUri, dataSharePredicates, columns);
if (!dataShareResultSet) {
HILOG_ERROR("Return dataShareResultSet is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Return dataShareResultSet is nullptr.");
return nullptr;
}
resultSet = RdbDataAbilityUtils::ToAbsSharedResultSet(dataShareResultSet);
if (!resultSet) {
HILOG_ERROR("Transfer to AbsSharedResultSet failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Transfer to AbsSharedResultSet failed.");
}
}
}
@@ -502,16 +506,16 @@ std::shared_ptr<NativeRdb::AbsSharedResultSet> DataAbilityHelper::Query(
std::string DataAbilityHelper::GetType(Uri &uri)
{
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
HILOG_INFO("GetType called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "GetType called.");
std::string type;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl GetType.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl GetType.");
type = dataAbilityHelperImpl->GetType(uri);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper GetType.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper GetType.");
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
type = dataShareHelper->GetType(dataShareUri);
@@ -532,15 +536,15 @@ std::string DataAbilityHelper::GetType(Uri &uri)
*/
bool DataAbilityHelper::Reload(Uri &uri, const PacMap &extras)
{
HILOG_INFO("Reload called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Reload called.");
bool ret = false;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl Reload.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Reload.");
ret = dataAbilityHelperImpl->Reload(uri, extras);
}
if (dataShareHelper_) {
HILOG_ERROR("Call DataShareHelper Reload, DataShareHelper no this interface.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Reload, DataShareHelper no this interface.");
}
return ret;
}
@@ -556,16 +560,16 @@ bool DataAbilityHelper::Reload(Uri &uri, const PacMap &extras)
int DataAbilityHelper::BatchInsert(Uri &uri, const std::vector<NativeRdb::ValuesBucket> &values)
{
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
HILOG_INFO("BatchInsert called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "BatchInsert called.");
int ret = -1;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl BatchInsert.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl BatchInsert.");
ret = dataAbilityHelperImpl->BatchInsert(uri, values);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper BatchInsert.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper BatchInsert.");
std::vector<DataShare::DataShareValuesBucket> dataShareValues;
for (auto value : values) {
DataShare::DataShareValuesBucket dataShareValue = RdbDataAbilityUtils::ToDataShareValuesBucket(value);
@@ -587,15 +591,15 @@ int DataAbilityHelper::BatchInsert(Uri &uri, const std::vector<NativeRdb::Values
*/
void DataAbilityHelper::RegisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
{
HILOG_INFO("RegisterObserver called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "RegisterObserver called.");
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl RegisterObserver.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl RegisterObserver.");
dataAbilityHelperImpl->RegisterObserver(uri, dataObserver);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper RegisterObserver.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper RegisterObserver.");
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
dataShareHelper->RegisterObserver(dataShareUri, dataObserver);
@@ -611,15 +615,15 @@ void DataAbilityHelper::RegisterObserver(const Uri &uri, const sptr<AAFwk::IData
*/
void DataAbilityHelper::UnregisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
{
HILOG_INFO("UnregisterObserver called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "UnregisterObserver called.");
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl UnregisterObserver.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl UnregisterObserver.");
dataAbilityHelperImpl->UnregisterObserver(uri, dataObserver);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper UnregisterObserver.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper UnregisterObserver.");
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
dataShareHelper->UnregisterObserver(dataShareUri, dataObserver);
@@ -635,15 +639,15 @@ void DataAbilityHelper::UnregisterObserver(const Uri &uri, const sptr<AAFwk::IDa
void DataAbilityHelper::NotifyChange(const Uri &uri)
{
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
HILOG_INFO("NotifyChange called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "NotifyChange called.");
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl NotifyChange.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl NotifyChange.");
dataAbilityHelperImpl->NotifyChange(uri);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper NotifyChange.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper NotifyChange.");
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
dataShareHelper->NotifyChange(dataShareUri);
@@ -666,16 +670,16 @@ void DataAbilityHelper::NotifyChange(const Uri &uri)
Uri DataAbilityHelper::NormalizeUri(Uri &uri)
{
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
HILOG_INFO("NormalizeUri called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "NormalizeUri called.");
Uri urivalue("");
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl NormalizeUri.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl NormalizeUri.");
urivalue = dataAbilityHelperImpl->NormalizeUri(uri);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper NormalizeUri.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper NormalizeUri.");
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
urivalue = dataShareHelper->NormalizeUri(dataShareUri);
@@ -697,16 +701,16 @@ Uri DataAbilityHelper::NormalizeUri(Uri &uri)
Uri DataAbilityHelper::DenormalizeUri(Uri &uri)
{
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
HILOG_INFO("DenormalizeUri called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DenormalizeUri called.");
Uri urivalue("");
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl DenormalizeUri.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl DenormalizeUri.");
urivalue = dataAbilityHelperImpl->DenormalizeUri(uri);
}
auto dataShareHelper = GetDataShareHelper();
if (dataShareHelper) {
HILOG_INFO("Call DataShareHelper DenormalizeUri.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper DenormalizeUri.");
Uri dataShareUri("");
if (TransferScheme(uri, dataShareUri)) {
urivalue = dataShareHelper->DenormalizeUri(dataShareUri);
@@ -718,15 +722,15 @@ Uri DataAbilityHelper::DenormalizeUri(Uri &uri)
std::vector<std::shared_ptr<DataAbilityResult>> DataAbilityHelper::ExecuteBatch(
const Uri &uri, const std::vector<std::shared_ptr<DataAbilityOperation>> &operations)
{
HILOG_INFO("ExecuteBatch called.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "ExecuteBatch called.");
std::vector<std::shared_ptr<DataAbilityResult>> results;
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
if (dataAbilityHelperImpl) {
HILOG_INFO("Call DataAbilityHelperImpl ExecuteBatch.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl ExecuteBatch.");
results = dataAbilityHelperImpl->ExecuteBatch(uri, operations);
}
if (dataShareHelper_) {
HILOG_ERROR("Call DataShareHelper ExecuteBatch, DataShareHelper no this interface.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Call DataShareHelper ExecuteBatch, DataShareHelper no this interface.");
}
return results;
}
@@ -742,7 +746,8 @@ bool DataAbilityHelper::TransferScheme(const Uri &uri, Uri &dataShareUri)
Uri inputUri = uri;
if (inputUri.GetScheme() == dataShareScheme) {
dataShareUri = Uri(inputUri.ToString());
HILOG_INFO("input uri is data share uri, uri: %{public}s, no need transfer.", inputUri.ToString().c_str());
TAG_LOGI(AAFwkTag::DATA_ABILITY, "input uri is data share uri, uri: %{public}s, no need transfer.",
inputUri.ToString().c_str());
return true;
}
@@ -750,7 +755,7 @@ bool DataAbilityHelper::TransferScheme(const Uri &uri, Uri &dataShareUri)
string uriStr = inputUri.ToString();
uriStr.replace(0, dataAbilityScheme.length(), dataShareScheme);
dataShareUri = Uri(uriStr);
HILOG_INFO("data ability uri: %{public}s transfer to data share uri: %{public}s.",
TAG_LOGI(AAFwkTag::DATA_ABILITY, "data ability uri: %{public}s transfer to data share uri: %{public}s.",
inputUri.ToString().c_str(), dataShareUri.ToString().c_str());
return true;
}
@@ -759,12 +764,12 @@ bool DataAbilityHelper::TransferScheme(const Uri &uri, Uri &dataShareUri)
string uriStr = inputUri.ToString();
uriStr.replace(0, filePrefix.length(), dataSharePrefix);
dataShareUri = Uri(uriStr);
HILOG_DEBUG("file uri: %{public}s transfer to data share uri: %{public}s.",
TAG_LOGD(AAFwkTag::DATA_ABILITY, "file uri: %{public}s transfer to data share uri: %{public}s.",
inputUri.ToString().c_str(), dataShareUri.ToString().c_str());
return true;
}
HILOG_ERROR("Input param invalid, uri: %{private}s", inputUri.ToString().c_str());
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, uri: %{private}s", inputUri.ToString().c_str());
return false;
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022-2023 Huawei Device Co., Ltd.
* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -24,6 +24,7 @@
#include "data_ability_operation.h"
#include "data_ability_predicates.h"
#include "data_ability_result.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "values_bucket.h"
@@ -76,7 +77,7 @@ DataAbilityHelperImpl::DataAbilityHelperImpl(const sptr<IRemoteObject> &token)
void DataAbilityHelperImpl::AddDataAbilityDeathRecipient(const sptr<IRemoteObject> &token)
{
if (token != nullptr && callerDeathRecipient_ != nullptr) {
HILOG_INFO("Remove death recipient.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Remove death recipient.");
token->RemoveDeathRecipient(callerDeathRecipient_);
}
if (callerDeathRecipient_ == nullptr) {
@@ -89,15 +90,15 @@ void DataAbilityHelperImpl::AddDataAbilityDeathRecipient(const sptr<IRemoteObjec
}
});
}
HILOG_INFO("Add death recipient.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Add death recipient.");
if (token == nullptr || !token->AddDeathRecipient(callerDeathRecipient_)) {
HILOG_ERROR("AddDeathRecipient failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "AddDeathRecipient failed.");
}
}
void DataAbilityHelperImpl::OnSchedulerDied(const wptr<IRemoteObject> &remote)
{
HILOG_INFO("On scheduler died.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "On scheduler died.");
std::lock_guard<std::mutex> guard(lock_);
auto object = remote.promote();
object = nullptr;
@@ -115,13 +116,13 @@ void DataAbilityHelperImpl::OnSchedulerDied(const wptr<IRemoteObject> &remote)
std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(const std::shared_ptr<Context> &context)
{
if (context == nullptr) {
HILOG_ERROR("Input param invalid, context is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, context is nullptr.");
return nullptr;
}
auto ptrDataAbilityHelperImpl = new (std::nothrow) DataAbilityHelperImpl(context);
if (ptrDataAbilityHelperImpl == nullptr) {
HILOG_ERROR("New DataAbilityHelperImpl failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "New DataAbilityHelperImpl failed.");
return nullptr;
}
@@ -144,25 +145,25 @@ std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(
const std::shared_ptr<Context> &context, const std::shared_ptr<Uri> &uri, const bool tryBind)
{
if (context == nullptr) {
HILOG_ERROR("Input param invalid, context is null.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, context is null.");
return nullptr;
}
if (!CheckUri(uri)) {
HILOG_ERROR("uri is invalid");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "uri is invalid");
return nullptr;
}
sptr<IAbilityScheduler> dataAbilityProxy =
AbilityManagerClient::GetInstance()->AcquireDataAbility(*uri.get(), tryBind, context->GetToken());
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Acquire data ability error.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Acquire data ability error.");
return nullptr;
}
auto ptrDataAbilityHelperImpl = new (std::nothrow) DataAbilityHelperImpl(context, uri, dataAbilityProxy, tryBind);
if (ptrDataAbilityHelperImpl == nullptr) {
HILOG_ERROR("New DataAbilityHelperImpl error.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "New DataAbilityHelperImpl error.");
return nullptr;
}
@@ -185,25 +186,25 @@ std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(
const std::shared_ptr<OHOS::AbilityRuntime::Context> &context, const std::shared_ptr<Uri> &uri, const bool tryBind)
{
if (context == nullptr) {
HILOG_ERROR("Input param invalid, context is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, context is nullptr.");
return nullptr;
}
if (!CheckUri(uri)) {
HILOG_ERROR("uri is invalid.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "uri is invalid.");
return nullptr;
}
sptr<IAbilityScheduler> dataAbilityProxy =
AbilityManagerClient::GetInstance()->AcquireDataAbility(*uri.get(), tryBind, context->GetToken());
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Acquire data ability failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Acquire data ability failed.");
return nullptr;
}
auto ptrDataAbilityHelperImpl = new (std::nothrow) DataAbilityHelperImpl(context, uri, dataAbilityProxy, tryBind);
if (ptrDataAbilityHelperImpl == nullptr) {
HILOG_ERROR("New DataAbilityHelperImpl failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "New DataAbilityHelperImpl failed.");
return nullptr;
}
@@ -220,13 +221,13 @@ std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(
std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(const sptr<IRemoteObject> &token)
{
if (token == nullptr) {
HILOG_ERROR("Input param invalid, token is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, token is nullptr.");
return nullptr;
}
auto ptrDataAbilityHelperImpl = new (std::nothrow) DataAbilityHelperImpl(token);
if (ptrDataAbilityHelperImpl == nullptr) {
HILOG_ERROR("New DataAbilityHelperImpl failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "New DataAbilityHelperImpl failed.");
return nullptr;
}
@@ -247,25 +248,25 @@ std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(
const sptr<IRemoteObject> &token, const std::shared_ptr<Uri> &uri)
{
if (token == nullptr) {
HILOG_ERROR("Input param invalid, token is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, token is nullptr.");
return nullptr;
}
if (!CheckUri(uri)) {
HILOG_ERROR("uri is invalid.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "uri is invalid.");
return nullptr;
}
sptr<IAbilityScheduler> dataAbilityProxy =
AbilityManagerClient::GetInstance()->AcquireDataAbility(*uri.get(), false, token);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Acquire data ability failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Acquire data ability failed.");
return nullptr;
}
auto ptrDataAbilityHelperImpl = new (std::nothrow) DataAbilityHelperImpl(token, uri, dataAbilityProxy);
if (ptrDataAbilityHelperImpl == nullptr) {
HILOG_ERROR("New DataAbilityHelperImpl failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "New DataAbilityHelperImpl failed.");
return nullptr;
}
@@ -281,13 +282,13 @@ std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(
bool DataAbilityHelperImpl::Release()
{
if (uri_ == nullptr) {
HILOG_ERROR("Release failed, uri_ is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Release failed, uri_ is nullptr.");
return false;
}
int err = AbilityManagerClient::GetInstance()->ReleaseDataAbility(dataAbilityProxy_, token_);
if (err != ERR_OK) {
HILOG_ERROR("Release data ability failed, err = %{public}d.", err);
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Release data ability failed, err = %{public}d.", err);
return false;
}
@@ -307,14 +308,14 @@ std::vector<std::string> DataAbilityHelperImpl::GetFileTypes(Uri &uri, const std
std::vector<std::string> matchedMIMEs;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return matchedMIMEs;
}
matchedMIMEs = dataAbilityProxy->GetFileTypes(uri, mimeTypeFilter);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return matchedMIMEs size: %{public}zu.", matchedMIMEs.size());
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return matchedMIMEs size: %{public}zu.", matchedMIMEs.size());
return matchedMIMEs;
}
@@ -334,14 +335,14 @@ int DataAbilityHelperImpl::OpenFile(Uri &uri, const std::string &mode)
int fd = -1;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return fd;
}
fd = dataAbilityProxy->OpenFile(uri, mode);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return fd: %{public}d.", fd);
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return fd: %{public}d.", fd);
return fd;
}
@@ -362,14 +363,14 @@ int DataAbilityHelperImpl::OpenRawFile(Uri &uri, const std::string &mode)
int fd = -1;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return fd;
}
fd = dataAbilityProxy->OpenRawFile(uri, mode);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return fd: %{public}d.", fd);
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return fd: %{public}d.", fd);
return fd;
}
@@ -386,14 +387,14 @@ int DataAbilityHelperImpl::Insert(Uri &uri, const NativeRdb::ValuesBucket &value
int index = -1;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return index;
}
index = dataAbilityProxy->Insert(uri, value);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return index: %{public}d.", index);
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return index: %{public}d.", index);
return index;
}
@@ -403,14 +404,14 @@ std::shared_ptr<AppExecFwk::PacMap> DataAbilityHelperImpl::Call(
std::shared_ptr<AppExecFwk::PacMap> result = nullptr;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return result;
}
result = dataAbilityProxy->Call(uri, method, arg, pacMap);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return result is or not nullptr: %{public}d.", result == nullptr);
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return result is or not nullptr: %{public}d.", result == nullptr);
return result;
}
@@ -429,14 +430,14 @@ int DataAbilityHelperImpl::Update(
int index = -1;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return index;
}
index = dataAbilityProxy->Update(uri, value, predicates);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return index: %{public}d.", index);
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return index: %{public}d.", index);
return index;
}
@@ -453,14 +454,14 @@ int DataAbilityHelperImpl::Delete(Uri &uri, const NativeRdb::DataAbilityPredicat
int index = -1;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return index;
}
index = dataAbilityProxy->Delete(uri, predicates);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return index: %{public}d.", index);
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return index: %{public}d.", index);
return index;
}
@@ -479,14 +480,14 @@ std::shared_ptr<NativeRdb::AbsSharedResultSet> DataAbilityHelperImpl::Query(
std::shared_ptr<NativeRdb::AbsSharedResultSet> resultset = nullptr;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return resultset;
}
resultset = dataAbilityProxy->Query(uri, columns, predicates);
ReleaseDataAbility(dataAbilityProxy);
HILOG_DEBUG("Return resultset is or not nullptr: %{public}d.", resultset == nullptr);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Return resultset is or not nullptr: %{public}d.", resultset == nullptr);
return resultset;
}
@@ -503,14 +504,14 @@ std::string DataAbilityHelperImpl::GetType(Uri &uri)
std::string type;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return type;
}
type = dataAbilityProxy->GetType(uri);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return type: %{public}s.", type.c_str());
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return type: %{public}s.", type.c_str());
return type;
}
@@ -529,14 +530,14 @@ bool DataAbilityHelperImpl::Reload(Uri &uri, const PacMap &extras)
bool ret = false;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return ret;
}
ret = dataAbilityProxy->Reload(uri, extras);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return ret: %{public}d.", ret);
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return ret: %{public}d.", ret);
return ret;
}
@@ -553,14 +554,14 @@ int DataAbilityHelperImpl::BatchInsert(Uri &uri, const std::vector<NativeRdb::Va
int ret = -1;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return ret;
}
ret = dataAbilityProxy->BatchInsert(uri, values);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return ret: %{public}d.", ret);
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return ret: %{public}d.", ret);
return ret;
}
@@ -568,7 +569,7 @@ bool DataAbilityHelperImpl::CheckUriParam(const Uri &uri)
{
Uri checkUri(uri.ToString());
if (!CheckOhosUri(checkUri)) {
HILOG_ERROR("Check ohos uri failed, uri: %{public}s.", uri.ToString().c_str());
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Check ohos uri failed, uri: %{public}s.", uri.ToString().c_str());
return false;
}
@@ -577,12 +578,12 @@ bool DataAbilityHelperImpl::CheckUriParam(const Uri &uri)
{
std::lock_guard<std::mutex> guard(lock_);
if (!uri_) {
HILOG_INFO("uri_ is nullptr, no need check.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "uri_ is nullptr, no need check.");
return true;
}
Uri checkUri(uri_->ToString());
if (!CheckOhosUri(checkUri)) {
HILOG_ERROR("Check ohos uri failed, uri_: %{public}s.", uri_->ToString().c_str());
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Check ohos uri failed, uri_: %{public}s.", uri_->ToString().c_str());
return false;
}
@@ -592,7 +593,7 @@ bool DataAbilityHelperImpl::CheckUriParam(const Uri &uri)
std::vector<std::string> checkSegments;
checkUri.GetPathSegments(checkSegments);
if (checkSegments.empty() || segments.empty() || checkSegments[0] != segments[0]) {
HILOG_ERROR("The dataability in uri doesn't equal the one in uri_.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "The dataability in uri doesn't equal the one in uri_.");
return false;
}
@@ -603,19 +604,20 @@ bool DataAbilityHelperImpl::CheckOhosUri(const Uri &checkUri)
{
Uri uri(checkUri);
if (uri.GetScheme() != SchemeOhos) {
HILOG_ERROR("Input uri is not a dataability one, uri: %{public}s.", uri.ToString().c_str());
TAG_LOGE(
AAFwkTag::DATA_ABILITY, "Input uri is not a dataability one, uri: %{public}s.", uri.ToString().c_str());
return false;
}
std::vector<std::string> segments;
uri.GetPathSegments(segments);
if (segments.empty()) {
HILOG_ERROR("There is no segments in the uri, uri: %{public}s.", uri.ToString().c_str());
TAG_LOGE(AAFwkTag::DATA_ABILITY, "There is no segments in the uri, uri: %{public}s.", uri.ToString().c_str());
return false;
}
if (uri.GetPath() == "") {
HILOG_ERROR("The path in the uri is empty, uri: %{public}s.", uri.ToString().c_str());
TAG_LOGE(AAFwkTag::DATA_ABILITY, "The path in the uri is empty, uri: %{public}s.", uri.ToString().c_str());
return false;
}
@@ -631,7 +633,7 @@ bool DataAbilityHelperImpl::CheckOhosUri(const Uri &checkUri)
void DataAbilityHelperImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
{
if (!CheckUriAndDataObserver(uri, dataObserver)) {
HILOG_ERROR("RegisterObserver param is invalid.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "RegisterObserver param is invalid.");
return;
}
@@ -651,7 +653,7 @@ void DataAbilityHelperImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::I
return;
}
if (path->second != tmpUri.GetPath()) {
HILOG_ERROR("Input uri's path is not equal the one the observer used.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input uri's path is not equal the one the observer used.");
return;
}
dataAbilityProxy = dataability->second;
@@ -661,7 +663,7 @@ void DataAbilityHelperImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::I
}
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("dataAbilityProxy is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "dataAbilityProxy is nullptr.");
registerMap_.erase(dataObserver);
uriMap_.erase(dataObserver);
return;
@@ -678,7 +680,7 @@ void DataAbilityHelperImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::I
void DataAbilityHelperImpl::UnregisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
{
if (!CheckUriAndDataObserver(uri, dataObserver)) {
HILOG_ERROR("UnregisterObserver param is invalid.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "UnregisterObserver param is invalid.");
return;
}
@@ -695,7 +697,7 @@ void DataAbilityHelperImpl::UnregisterObserver(const Uri &uri, const sptr<AAFwk:
return;
}
if (path->second != tmpUri.GetPath()) {
HILOG_ERROR("Input uri's path is not equal the one the observer used.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input uri's path is not equal the one the observer used.");
return;
}
dataAbilityProxy = dataability->second;
@@ -704,7 +706,7 @@ void DataAbilityHelperImpl::UnregisterObserver(const Uri &uri, const sptr<AAFwk:
}
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("dataAbilityProxy is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "dataAbilityProxy is nullptr.");
return;
}
@@ -726,7 +728,7 @@ void DataAbilityHelperImpl::NotifyChange(const Uri &uri)
{
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return;
}
@@ -751,14 +753,14 @@ Uri DataAbilityHelperImpl::NormalizeUri(Uri &uri)
Uri urivalue("");
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return urivalue;
}
urivalue = dataAbilityProxy->NormalizeUri(uri);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return uri: %{public}s.", urivalue.ToString().c_str());
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return uri: %{public}s.", urivalue.ToString().c_str());
return urivalue;
}
@@ -777,14 +779,14 @@ Uri DataAbilityHelperImpl::DenormalizeUri(Uri &uri)
Uri urivalue("");
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return urivalue;
}
urivalue = dataAbilityProxy->DenormalizeUri(uri);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return uri: %{public}s.", urivalue.ToString().c_str());
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return uri: %{public}s.", urivalue.ToString().c_str());
return urivalue;
}
@@ -794,31 +796,31 @@ std::vector<std::shared_ptr<DataAbilityResult>> DataAbilityHelperImpl::ExecuteBa
std::vector<std::shared_ptr<DataAbilityResult>> results;
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri, false);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Get data ability proxy failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
return results;
}
results = dataAbilityProxy->ExecuteBatch(operations);
ReleaseDataAbility(dataAbilityProxy);
HILOG_INFO("Return results size: %{public}zu.", results.size());
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return results size: %{public}zu.", results.size());
return results;
}
sptr<AAFwk::IAbilityScheduler> DataAbilityHelperImpl::GetDataAbilityProxy(const Uri &uri, bool addDeathRecipient)
{
if (!CheckUriParam(uri)) {
HILOG_ERROR("Check uri param failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Check uri param failed.");
return nullptr;
}
// if uri_ is nullptr, it indicates the operation(such as insert, delete and so on) is temporary,
// so, we need acquire the dataability before the operation.
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = dataAbilityProxy_;
if (uri_ == nullptr) {
HILOG_INFO("The uri_ is nullptr, need acquire data ability.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "The uri_ is nullptr, need acquire data ability.");
dataAbilityProxy = AbilityManagerClient::GetInstance()->AcquireDataAbility(uri, tryBind_, token_);
if (dataAbilityProxy == nullptr) {
HILOG_ERROR("Acquire data ability failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Acquire data ability failed.");
return nullptr;
}
if (addDeathRecipient && isSystemCaller_) {
@@ -832,23 +834,24 @@ void DataAbilityHelperImpl::ReleaseDataAbility(sptr<AAFwk::IAbilityScheduler> da
{
// if uri_ is nullptr, it indicates the operation(such as insert, delete and so on) is temporary,
// so, we need release the dataability after the operation.
HILOG_INFO("ReleaseDataAbility start.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "ReleaseDataAbility start.");
if (!uri_ && dataAbilityProxy && token_) {
int ret = AbilityManagerClient::GetInstance()->ReleaseDataAbility(dataAbilityProxy, token_);
HILOG_INFO("Release data ability, ret: %{public}d.", ret);
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Release data ability, ret: %{public}d.", ret);
}
HILOG_INFO("ReleaseDataAbility end.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "ReleaseDataAbility end.");
}
bool DataAbilityHelperImpl::CheckUri(const std::shared_ptr<Uri> &uri)
{
if (uri == nullptr) {
HILOG_ERROR("Input param invalid, uri is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, uri is nullptr.");
return false;
}
if (uri->GetScheme() != SchemeOhos) {
HILOG_ERROR("Input param invalid, the uri is not dataability, Scheme: %{private}s.", uri->GetScheme().c_str());
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, the uri is not dataability, Scheme: %{private}s.",
uri->GetScheme().c_str());
return false;
}
@@ -859,12 +862,12 @@ bool DataAbilityHelperImpl::CheckUriAndDataObserver(const Uri &uri,
const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
{
if (!CheckUriParam(uri)) {
HILOG_ERROR("Check uri param failed.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Check uri param failed.");
return false;
}
if (dataObserver == nullptr) {
HILOG_ERROR("Input param invalid, dataObserver is nullptr.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, dataObserver is nullptr.");
return false;
}
@@ -873,11 +876,11 @@ bool DataAbilityHelperImpl::CheckUriAndDataObserver(const Uri &uri,
void DataAbilityDeathRecipient::OnRemoteDied(const wptr<IRemoteObject> &remote)
{
HILOG_INFO("recv DataAbilityDeathRecipient death notice.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "recv DataAbilityDeathRecipient death notice.");
if (handler_) {
handler_(remote);
}
HILOG_INFO("OnRemoteDied end.");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "OnRemoteDied end.");
}
DataAbilityDeathRecipient::DataAbilityDeathRecipient(RemoteDiedHandler handler) : handler_(handler)
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -19,6 +19,7 @@
#include "accesstoken_kit.h"
#include "data_ability_operation.h"
#include "data_ability_predicates.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "ipc_skeleton.h"
#include "values_bucket.h"
@@ -34,12 +35,11 @@ using OHOS::Security::AccessToken::AccessTokenKit;
void DataAbilityImpl::HandleAbilityTransaction(const Want &want, const AAFwk::LifeCycleStateInfo &targetState,
sptr<AAFwk::SessionInfo> sessionInfo)
{
HILOG_INFO("DataAbilityImpl::sourceState:%{public}d; targetState: %{public}d; isNewWant: %{public}d",
lifecycleState_,
targetState.state,
targetState.isNewWant);
TAG_LOGI(AAFwkTag::DATA_ABILITY,
"DataAbilityImpl::sourceState:%{public}d; targetState: %{public}d; isNewWant: %{public}d", lifecycleState_,
targetState.state, targetState.isNewWant);
if ((lifecycleState_ == targetState.state) && !targetState.isNewWant) {
HILOG_ERROR("Org lifeCycleState equals to Dst lifeCycleState.");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Org lifeCycleState equals to Dst lifeCycleState.");
return;
}
@@ -55,7 +55,7 @@ void DataAbilityImpl::HandleAbilityTransaction(const Want &want, const AAFwk::Li
break;
}
default: {
HILOG_ERROR("DataAbilityImpl::HandleAbilityTransaction state is error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::HandleAbilityTransaction state is error");
return;
}
}
@@ -75,7 +75,7 @@ std::vector<std::string> DataAbilityImpl::GetFileTypes(const Uri &uri, const std
{
std::vector<std::string> types;
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::GetFileTypes ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::GetFileTypes ability_ is nullptr");
return types;
}
@@ -98,7 +98,7 @@ int DataAbilityImpl::OpenFile(const Uri &uri, const std::string &mode)
{
int fd = -1;
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::OpenFile ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::OpenFile ability_ is nullptr");
return fd;
}
@@ -126,7 +126,7 @@ int DataAbilityImpl::OpenRawFile(const Uri &uri, const std::string &mode)
{
int fd = -1;
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::OpenRawFile ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::OpenRawFile ability_ is nullptr");
return fd;
}
@@ -150,12 +150,12 @@ int DataAbilityImpl::Insert(const Uri &uri, const NativeRdb::ValuesBucket &value
{
int index = -1;
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::Insert ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Insert ability_ is nullptr");
return index;
}
if (!CheckReadAndWritePermission(WRITE)) {
HILOG_WARN("DataAbilityImpl::Insert failed, do not have write permission");
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Insert failed, do not have write permission");
return index;
}
@@ -177,12 +177,12 @@ int DataAbilityImpl::Update(
{
int index = -1;
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::Update ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Update ability_ is nullptr");
return index;
}
if (!CheckReadAndWritePermission(WRITE)) {
HILOG_WARN("DataAbilityImpl::Update failed, do not have write permission");
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Update failed, do not have write permission");
return index;
}
@@ -202,12 +202,12 @@ int DataAbilityImpl::Delete(const Uri &uri, const NativeRdb::DataAbilityPredicat
{
int index = -1;
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::Delete ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Delete ability_ is nullptr");
return index;
}
if (!CheckReadAndWritePermission(WRITE)) {
HILOG_WARN("DataAbilityImpl::Delete failed, do not have write permission");
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Delete failed, do not have write permission");
return index;
}
@@ -228,12 +228,12 @@ std::shared_ptr<NativeRdb::AbsSharedResultSet> DataAbilityImpl::Query(
const Uri &uri, std::vector<std::string> &columns, const NativeRdb::DataAbilityPredicates &predicates)
{
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::Query ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Query ability_ is nullptr");
return nullptr;
}
if (!CheckReadAndWritePermission(READ)) {
HILOG_WARN("DataAbilityImpl::Query failed, do not have read permission");
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Query failed, do not have read permission");
return nullptr;
}
@@ -244,7 +244,7 @@ std::shared_ptr<AppExecFwk::PacMap> DataAbilityImpl::Call(
const Uri &uri, const std::string &method, const std::string &arg, const AppExecFwk::PacMap &pacMap)
{
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::Call ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Call ability_ is nullptr");
return nullptr;
}
@@ -263,7 +263,7 @@ std::string DataAbilityImpl::GetType(const Uri &uri)
{
std::string type;
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::GetType ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::GetType ability_ is nullptr");
return type;
}
type = ability_->GetType(uri);
@@ -284,7 +284,7 @@ bool DataAbilityImpl::Reload(const Uri &uri, const PacMap &extras)
{
bool ret = false;
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::Reload ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Reload ability_ is nullptr");
return ret;
}
ret = ability_->Reload(uri, extras);
@@ -303,12 +303,12 @@ int DataAbilityImpl::BatchInsert(const Uri &uri, const std::vector<NativeRdb::Va
{
int ret = -1;
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::BatchInsert ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::BatchInsert ability_ is nullptr");
return ret;
}
if (!CheckReadAndWritePermission(WRITE)) {
HILOG_WARN("DataAbilityImpl::BatchInsert failed, do not have write permission");
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::BatchInsert failed, do not have write permission");
return ret;
}
@@ -331,12 +331,12 @@ Uri DataAbilityImpl::NormalizeUri(const Uri &uri)
{
Uri urivalue("");
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::NormalizeUri ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::NormalizeUri ability_ is nullptr");
return urivalue;
}
if (!CheckReadAndWritePermission(READ)) {
HILOG_WARN("DataAbilityImpl::NormalizeUri failed, do not have read permission");
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::NormalizeUri failed, do not have read permission");
return urivalue;
}
@@ -360,12 +360,12 @@ Uri DataAbilityImpl::DenormalizeUri(const Uri &uri)
{
Uri urivalue("");
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::DenormalizeUri ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::DenormalizeUri ability_ is nullptr");
return urivalue;
}
if (!CheckReadAndWritePermission(READ)) {
HILOG_ERROR("DataAbilityImpl::DenormalizeUri failed, do not have read permission");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::DenormalizeUri failed, do not have read permission");
return urivalue;
}
@@ -376,10 +376,10 @@ Uri DataAbilityImpl::DenormalizeUri(const Uri &uri)
std::vector<std::shared_ptr<DataAbilityResult>> DataAbilityImpl::ExecuteBatch(
const std::vector<std::shared_ptr<DataAbilityOperation>> &operations)
{
HILOG_INFO("DataAbilityImpl::ExecuteBatch start");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::ExecuteBatch start");
std::vector<std::shared_ptr<DataAbilityResult>> results;
if (ability_ == nullptr) {
HILOG_ERROR("DataAbilityImpl::ExecuteBatch ability_ is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::ExecuteBatch ability_ is nullptr");
results.clear();
return results;
}
@@ -390,7 +390,7 @@ std::vector<std::shared_ptr<DataAbilityResult>> DataAbilityImpl::ExecuteBatch(
}
results = ability_->ExecuteBatch(operations);
HILOG_INFO("DataAbilityImpl::ExecuteBatch end, results size:%{public}zu", results.size());
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::ExecuteBatch end, results size:%{public}zu", results.size());
return results;
}
@@ -404,7 +404,7 @@ bool DataAbilityImpl::CheckExecuteBatchPermission(
for (size_t i = 0; i < size; i++) {
std::shared_ptr<DataAbilityOperation> operation = operations[i];
if (operation == nullptr) {
HILOG_ERROR("operation[i] is nullptr, index: %{public}d", static_cast<int32_t>(i));
TAG_LOGE(AAFwkTag::DATA_ABILITY, "operation[i] is nullptr, index: %{public}d", static_cast<int32_t>(i));
return false;
}
if (operation->IsInsertOperation() || operation->IsUpdateOperation() || operation->IsDeleteOperation()) {
@@ -419,14 +419,14 @@ bool DataAbilityImpl::CheckExecuteBatchPermission(
if (needCheckReadPermission) {
if (!CheckReadAndWritePermission(READ)) {
HILOG_WARN("DataAbilityImpl::ExecuteBatch failed, do not have read permission");
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::ExecuteBatch failed, do not have read permission");
return false;
}
}
if (needCheckWritePermission) {
if (!CheckReadAndWritePermission(WRITE)) {
HILOG_WARN("DataAbilityImpl::ExecuteBatch failed, do not have write permission");
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::ExecuteBatch failed, do not have write permission");
return false;
}
}
@@ -438,12 +438,12 @@ bool DataAbilityImpl::CheckOpenFilePermission(const std::string &mode) const
{
if (mode.find(READ) != string::npos) {
if (!CheckReadAndWritePermission(READ)) {
HILOG_WARN("DataAbilityImpl::OpenFile failed, do not have read permission");
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::OpenFile failed, do not have read permission");
return false;
}
} else if (mode.find(WRITE) != string::npos) {
if (!CheckReadAndWritePermission(WRITE)) {
HILOG_WARN("DataAbilityImpl::OpenFile failed, do not have write permission");
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::OpenFile failed, do not have write permission");
return false;
}
}
@@ -455,7 +455,7 @@ bool DataAbilityImpl::CheckReadAndWritePermission(const std::string &permissionT
{
std::string permission = GetPermissionInfo(permissionType);
if (permission.empty()) {
HILOG_DEBUG("%{public}s, permission is empty", __func__);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "%{public}s, permission is empty", __func__);
return true;
}
@@ -463,7 +463,7 @@ bool DataAbilityImpl::CheckReadAndWritePermission(const std::string &permissionT
int checkReadPermission = AccessTokenKit::VerifyAccessToken(tokenId, permission);
if (checkReadPermission != ERR_OK) {
std::shared_ptr<AbilityInfo> abilityInfo = ability_->GetAbilityInfo();
HILOG_DEBUG("%{public}s do not have permission, bundleName: %{public}s",
TAG_LOGD(AAFwkTag::DATA_ABILITY, "%{public}s do not have permission, bundleName: %{public}s",
__func__, abilityInfo->bundleName.c_str());
return false;
}
@@ -473,10 +473,10 @@ bool DataAbilityImpl::CheckReadAndWritePermission(const std::string &permissionT
std::string DataAbilityImpl::GetPermissionInfo(const std::string &permissionType) const
{
HILOG_DEBUG("%{public}s begin, permissionType:%{public}s", __func__, permissionType.c_str());
TAG_LOGD(AAFwkTag::DATA_ABILITY, "%{public}s begin, permissionType:%{public}s", __func__, permissionType.c_str());
std::shared_ptr<AbilityInfo> abilityInfo = ability_->GetAbilityInfo();
if (abilityInfo == nullptr) {
HILOG_WARN("%{public}s abilityInfo is nullptr", __func__);
TAG_LOGW(AAFwkTag::DATA_ABILITY, "%{public}s abilityInfo is nullptr", __func__);
return "";
}
if (permissionType == READ) {
@@ -484,8 +484,8 @@ std::string DataAbilityImpl::GetPermissionInfo(const std::string &permissionType
} else if (permissionType == WRITE) {
return abilityInfo->writePermission;
} else {
HILOG_INFO("%{public}s permissionType is not read or write, permissionType:%{public}s", __func__,
permissionType.c_str());
TAG_LOGI(AAFwkTag::DATA_ABILITY, "%{public}s permissionType is not read or write, permissionType:%{public}s",
__func__, permissionType.c_str());
return "";
}
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -16,6 +16,7 @@
#include "data_ability_operation.h"
#include "data_ability_predicates.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "values_bucket.h"
@@ -140,139 +141,139 @@ DataAbilityOperation &DataAbilityOperation::operator=(const DataAbilityOperation
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperation::NewInsertBuilder(const std::shared_ptr<Uri> &uri)
{
HILOG_DEBUG("DataAbilityOperation::NewInsertBuilder start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewInsertBuilder start");
if (uri == nullptr) {
HILOG_ERROR("DataAbilityOperation::NewInsertBuilder uri is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewInsertBuilder uri is nullptr");
return nullptr;
}
std::shared_ptr<DataAbilityOperationBuilder> builder =
std::make_shared<DataAbilityOperationBuilder>(TYPE_INSERT, uri);
HILOG_DEBUG("DataAbilityOperation::NewInsertBuilder end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewInsertBuilder end");
return builder;
}
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperation::NewUpdateBuilder(const std::shared_ptr<Uri> &uri)
{
HILOG_DEBUG("DataAbilityOperation::NewUpdateBuilder start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewUpdateBuilder start");
if (uri == nullptr) {
HILOG_ERROR("DataAbilityOperation::NewUpdateBuilder uri is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewUpdateBuilder uri is nullptr");
return nullptr;
}
std::shared_ptr<DataAbilityOperationBuilder> builder =
std::make_shared<DataAbilityOperationBuilder>(TYPE_UPDATE, uri);
HILOG_DEBUG("DataAbilityOperation::NewUpdateBuilder end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewUpdateBuilder end");
return builder;
}
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperation::NewDeleteBuilder(const std::shared_ptr<Uri> &uri)
{
HILOG_DEBUG("DataAbilityOperation::NewDeleteBuilder start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewDeleteBuilder start");
if (uri == nullptr) {
HILOG_ERROR("DataAbilityOperation::NewDeleteBuilder uri is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewDeleteBuilder uri is nullptr");
return nullptr;
}
std::shared_ptr<DataAbilityOperationBuilder> builder =
std::make_shared<DataAbilityOperationBuilder>(TYPE_DELETE, uri);
HILOG_DEBUG("DataAbilityOperation::NewDeleteBuilder end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewDeleteBuilder end");
return builder;
}
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperation::NewAssertBuilder(const std::shared_ptr<Uri> &uri)
{
HILOG_DEBUG("DataAbilityOperation::NewAssertBuilder start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewAssertBuilder start");
if (uri == nullptr) {
HILOG_ERROR("DataAbilityOperation::NewAssertBuilder uri is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewAssertBuilder uri is nullptr");
return nullptr;
}
std::shared_ptr<DataAbilityOperationBuilder> builder =
std::make_shared<DataAbilityOperationBuilder>(TYPE_ASSERT, uri);
HILOG_DEBUG("DataAbilityOperation::NewAssertBuilder end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewAssertBuilder end");
return builder;
}
int DataAbilityOperation::GetType() const
{
HILOG_DEBUG("DataAbilityOperation::GetType");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetType");
return type_;
}
std::shared_ptr<Uri> DataAbilityOperation::GetUri() const
{
HILOG_DEBUG("DataAbilityOperation::GetUri");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetUri");
return uri_;
}
std::shared_ptr<NativeRdb::ValuesBucket> DataAbilityOperation::GetValuesBucket() const
{
HILOG_DEBUG("DataAbilityOperation::GetValuesBucket");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetValuesBucket");
return valuesBucket_;
}
int DataAbilityOperation::GetExpectedCount() const
{
HILOG_DEBUG("DataAbilityOperation::GetExpectedCount");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetExpectedCount");
return expectedCount_;
}
std::shared_ptr<NativeRdb::DataAbilityPredicates> DataAbilityOperation::GetDataAbilityPredicates() const
{
HILOG_DEBUG("DataAbilityOperation::GetDataAbilityPredicates");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetDataAbilityPredicates");
return dataAbilityPredicates_;
}
std::shared_ptr<NativeRdb::ValuesBucket> DataAbilityOperation::GetValuesBucketReferences() const
{
HILOG_DEBUG("DataAbilityOperation::GetValuesBucketReferences");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetValuesBucketReferences");
return valuesBucketReferences_;
}
std::map<int, int> DataAbilityOperation::GetDataAbilityPredicatesBackReferences() const
{
HILOG_DEBUG("DataAbilityOperation::GetDataAbilityPredicatesBackReferences");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetDataAbilityPredicatesBackReferences");
return dataAbilityPredicatesBackReferences_;
}
bool DataAbilityOperation::IsValidOperation() const
{
HILOG_DEBUG("DataAbilityOperation::IsValidOperation: type is %{public}d", type_);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsValidOperation: type is %{public}d", type_);
return (type_ == TYPE_INSERT || type_ == TYPE_UPDATE || type_ == TYPE_DELETE || type_ == TYPE_ASSERT);
}
bool DataAbilityOperation::IsInsertOperation() const
{
HILOG_DEBUG("DataAbilityOperation::IsInsertOperation: %{public}d", type_ == TYPE_INSERT);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsInsertOperation: %{public}d", type_ == TYPE_INSERT);
return type_ == TYPE_INSERT;
}
bool DataAbilityOperation::IsUpdateOperation() const
{
HILOG_DEBUG("DataAbilityOperation::IsUpdateOperation: %{public}d", type_ == TYPE_UPDATE);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsUpdateOperation: %{public}d", type_ == TYPE_UPDATE);
return type_ == TYPE_UPDATE;
}
bool DataAbilityOperation::IsDeleteOperation() const
{
HILOG_DEBUG("DataAbilityOperation::IsDeleteOperation: %{public}d", type_ == TYPE_DELETE);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsDeleteOperation: %{public}d", type_ == TYPE_DELETE);
return type_ == TYPE_DELETE;
}
bool DataAbilityOperation::IsAssertOperation() const
{
HILOG_DEBUG("DataAbilityOperation::IsAssertOperation: %{public}d", type_ == TYPE_ASSERT);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsAssertOperation: %{public}d", type_ == TYPE_ASSERT);
return type_ == TYPE_ASSERT;
}
bool DataAbilityOperation::IsInterruptionAllowed() const
{
HILOG_DEBUG("DataAbilityOperation::IsInterruptionAllowed: %{public}d", interrupted_);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsInterruptionAllowed: %{public}d", interrupted_);
return interrupted_;
}
bool DataAbilityOperation::WriteUri(Parcel &out) const
{
if (uri_ == nullptr) {
HILOG_DEBUG("Uri is nullptr");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Uri is nullptr");
return out.WriteInt32(VALUE_NULL);
}
if (!out.WriteInt32(VALUE_OBJECT)) {
HILOG_ERROR("Write VALUE_OBJECT error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write VALUE_OBJECT error");
return false;
}
if (!out.WriteParcelable(uri_.get())) {
HILOG_ERROR("Write Uri error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write Uri error");
return false;
}
return true;
@@ -281,15 +282,15 @@ bool DataAbilityOperation::WriteUri(Parcel &out) const
bool DataAbilityOperation::WriteValuesBucket(Parcel &out) const
{
if (valuesBucket_ == nullptr) {
HILOG_DEBUG("ValuesBucket is nullptr");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "ValuesBucket is nullptr");
return out.WriteInt32(VALUE_NULL);
}
if (!out.WriteInt32(VALUE_OBJECT)) {
HILOG_ERROR("Write VALUE_OBJECT error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write VALUE_OBJECT error");
return false;
}
if (!valuesBucket_->Marshalling(out)) {
HILOG_ERROR("Write ValuesBucket error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write ValuesBucket error");
return false;
}
return true;
@@ -298,15 +299,15 @@ bool DataAbilityOperation::WriteValuesBucket(Parcel &out) const
bool DataAbilityOperation::WritePredicates(Parcel &out) const
{
if (dataAbilityPredicates_ == nullptr) {
HILOG_DEBUG("DataAbilityPredicates is nullptr");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityPredicates is nullptr");
return out.WriteInt32(VALUE_NULL);
}
if (!out.WriteInt32(VALUE_OBJECT)) {
HILOG_ERROR("Write VALUE_OBJECT error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write VALUE_OBJECT error");
return false;
}
if (!out.WriteParcelable(dataAbilityPredicates_.get())) {
HILOG_ERROR("Write DataAbilityPredicates error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write DataAbilityPredicates error");
return false;
}
return true;
@@ -315,15 +316,15 @@ bool DataAbilityOperation::WritePredicates(Parcel &out) const
bool DataAbilityOperation::WriteValuesBucketReferences(Parcel &out) const
{
if (valuesBucketReferences_ == nullptr) {
HILOG_DEBUG("ValuesBucketReferences is nullptr");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "ValuesBucketReferences is nullptr");
return out.WriteInt32(VALUE_NULL);
}
if (!out.WriteInt32(VALUE_OBJECT)) {
HILOG_ERROR("Write VALUE_OBJECT error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write VALUE_OBJECT error");
return false;
}
if (!valuesBucketReferences_->Marshalling(out)) {
HILOG_ERROR("ValuesBucketReferences Marshalling error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "ValuesBucketReferences Marshalling error");
return false;
}
return true;
@@ -331,65 +332,66 @@ bool DataAbilityOperation::WriteValuesBucketReferences(Parcel &out) const
bool DataAbilityOperation::Marshalling(Parcel &out) const
{
HILOG_DEBUG("DataAbilityOperation::Marshalling start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling start");
if (!out.WriteInt32(type_)) {
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(type) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(type) error");
return false;
}
if (!out.WriteInt32(expectedCount_)) {
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(expectedCount) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(expectedCount) error");
return false;
}
if (!out.WriteBool(interrupted_)) {
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(interrupted) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(interrupted) error");
return false;
}
if (!WriteUri(out) || !WriteValuesBucket(out) || !WritePredicates(out) || !WriteValuesBucketReferences(out)) {
HILOG_ERROR("Marshalling error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Marshalling error");
return false;
}
int referenceSize = (int)dataAbilityPredicatesBackReferences_.size();
if (dataAbilityPredicatesBackReferences_.empty()) {
HILOG_DEBUG("DataAbilityOperation::Marshalling dataAbilityPredicatesBackReferences_ is empty");
TAG_LOGD(
AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling dataAbilityPredicatesBackReferences_ is empty");
if (!out.WriteInt32(referenceSize)) {
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
return false;
}
HILOG_DEBUG("DataAbilityOperation::Marshalling end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling end");
return true;
}
if (!out.WriteInt32(referenceSize)) {
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
return false;
}
if (referenceSize >= REFERENCE_THRESHOLD) {
HILOG_INFO("DataAbilityOperation::Marshalling referenceSize >= REFERENCE_THRESHOLD");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling referenceSize >= REFERENCE_THRESHOLD");
return true;
}
for (auto it = dataAbilityPredicatesBackReferences_.begin(); it != dataAbilityPredicatesBackReferences_.end();
it++) {
if (!out.WriteInt32(it->first)) {
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
return false;
}
if (!out.WriteInt32(it->second)) {
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
return false;
}
}
HILOG_DEBUG("DataAbilityOperation::Marshalling end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling end");
return true;
}
DataAbilityOperation *DataAbilityOperation::Unmarshalling(Parcel &in)
{
HILOG_DEBUG("DataAbilityOperation::Unmarshalling start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Unmarshalling start");
DataAbilityOperation *dataAbilityOperation = new (std::nothrow) DataAbilityOperation();
if (dataAbilityOperation != nullptr && !dataAbilityOperation->ReadFromParcel(in)) {
HILOG_ERROR("DataAbilityOperation::Unmarshalling dataAbilityOperation error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Unmarshalling dataAbilityOperation error");
delete dataAbilityOperation;
dataAbilityOperation = nullptr;
}
HILOG_DEBUG("DataAbilityOperation::Unmarshalling end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Unmarshalling end");
return dataAbilityOperation;
}
@@ -397,11 +399,11 @@ bool DataAbilityOperation::ReadUriFromParcel(Parcel &in)
{
int empty = VALUE_NULL;
if (!in.ReadInt32(empty)) {
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
return false;
}
if (empty == VALUE_OBJECT) {
HILOG_DEBUG("empty is VALUE_OBJECT");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "empty is VALUE_OBJECT");
uri_.reset(in.ReadParcelable<Uri>());
return true;
}
@@ -413,11 +415,11 @@ bool DataAbilityOperation::ReadValuesBucketFromParcel(Parcel &in)
{
int empty = VALUE_NULL;
if (!in.ReadInt32(empty)) {
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
return false;
}
if (empty == VALUE_OBJECT) {
HILOG_DEBUG("empty is VALUE_OBJECT");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "empty is VALUE_OBJECT");
valuesBucket_ = std::make_shared<NativeRdb::ValuesBucket>(NativeRdb::ValuesBucket::Unmarshalling(in));
return true;
}
@@ -429,11 +431,11 @@ bool DataAbilityOperation::ReadDataAbilityPredicatesFromParcel(Parcel &in)
{
int empty = VALUE_NULL;
if (!in.ReadInt32(empty)) {
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
return false;
}
if (empty == VALUE_OBJECT) {
HILOG_DEBUG("empty is VALUE_OBJECT");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "empty is VALUE_OBJECT");
dataAbilityPredicates_.reset(in.ReadParcelable<NativeRdb::DataAbilityPredicates>());
return true;
}
@@ -445,11 +447,11 @@ bool DataAbilityOperation::ReadValuesBucketReferencesFromParcel(Parcel &in)
{
int empty = VALUE_NULL;
if (!in.ReadInt32(empty)) {
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
return false;
}
if (empty == VALUE_OBJECT) {
HILOG_DEBUG("empty is VALUE_OBJECT");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "empty is VALUE_OBJECT");
valuesBucketReferences_ = std::make_shared<NativeRdb::ValuesBucket>(
NativeRdb::ValuesBucket::Unmarshalling(in));
return true;
@@ -460,28 +462,29 @@ bool DataAbilityOperation::ReadValuesBucketReferencesFromParcel(Parcel &in)
bool DataAbilityOperation::ReadFromParcel(Parcel &in)
{
HILOG_DEBUG("DataAbilityOperation::ReadFromParcel start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel start");
if (!in.ReadInt32(type_)) {
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(type) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(type) error");
return false;
}
if (!in.ReadInt32(expectedCount_)) {
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(expectedCount) error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(expectedCount) error");
return false;
}
interrupted_ = in.ReadBool();
if (!ReadUriFromParcel(in) || !ReadValuesBucketFromParcel(in) || !ReadDataAbilityPredicatesFromParcel(in) ||
!ReadValuesBucketReferencesFromParcel(in)) {
HILOG_ERROR("DataAbilityOperation::ReadFromParcel error");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel error");
return false;
}
int referenceSize = 0;
if (!in.ReadInt32(referenceSize)) {
HILOG_ERROR("DataAbilityOperation::ReadFromParcel end");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel end");
return false;
}
if (referenceSize >= REFERENCE_THRESHOLD) {
HILOG_INFO("DataAbilityOperation::ReadFromParcel referenceSize:%{public}d >= REFERENCE_THRESHOLD:%{public}d",
TAG_LOGI(AAFwkTag::DATA_ABILITY,
"DataAbilityOperation::ReadFromParcel referenceSize:%{public}d >= REFERENCE_THRESHOLD:%{public}d",
referenceSize, REFERENCE_THRESHOLD);
return true;
}
@@ -490,36 +493,36 @@ bool DataAbilityOperation::ReadFromParcel(Parcel &in)
int first = 0;
int second = 0;
if (!in.ReadInt32(first)) {
HILOG_ERROR("DataAbilityOperation::ReadFromParcel end");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel end");
return false;
}
if (!in.ReadInt32(second)) {
HILOG_ERROR("DataAbilityOperation::ReadFromParcel end");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel end");
return false;
}
dataAbilityPredicatesBackReferences_.insert(std::make_pair(first, second));
}
HILOG_DEBUG("DataAbilityOperation::ReadFromParcel end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel end");
return true;
}
std::shared_ptr<DataAbilityOperation> DataAbilityOperation::CreateFromParcel(Parcel &in)
{
HILOG_DEBUG("DataAbilityOperation::CreateFromParcel start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::CreateFromParcel start");
std::shared_ptr<DataAbilityOperation> operation = std::make_shared<DataAbilityOperation>(in);
HILOG_DEBUG("DataAbilityOperation::CreateFromParcel end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::CreateFromParcel end");
return operation;
}
void DataAbilityOperation::PutMap(Parcel &in)
{
HILOG_DEBUG("DataAbilityOperation::PutMap start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::PutMap start");
int count = in.ReadInt32();
if (count > 0 && count < REFERENCE_THRESHOLD) {
for (int i = 0; i < count; ++i) {
dataAbilityPredicatesBackReferences_.insert(std::make_pair(in.ReadInt32(), in.ReadInt32()));
}
}
HILOG_DEBUG("DataAbilityOperation::PutMap end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::PutMap end");
}
} // namespace AppExecFwk
} // namespace OHOS
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -15,6 +15,7 @@
#include "data_ability_operation_builder.h"
#include "data_ability_predicates.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "values_bucket.h"
@@ -38,104 +39,118 @@ DataAbilityOperationBuilder::~DataAbilityOperationBuilder()
std::shared_ptr<DataAbilityOperation> DataAbilityOperationBuilder::Build()
{
HILOG_DEBUG("DataAbilityOperationBuilder::Build start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::Build start");
if (type_ != DataAbilityOperation::TYPE_UPDATE || (valuesBucket_ != nullptr && !valuesBucket_->IsEmpty())) {
std::shared_ptr<DataAbilityOperation> operation = std::make_shared<DataAbilityOperation>(shared_from_this());
HILOG_DEBUG("DataAbilityOperationBuilder::Build end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::Build end");
return operation;
}
HILOG_ERROR("DataAbilityOperationBuilder::Build return nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::Build return nullptr");
return nullptr;
}
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithValuesBucket(
std::shared_ptr<NativeRdb::ValuesBucket> &values)
{
HILOG_DEBUG("DataAbilityOperationBuilder::WithValuesBucket start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithValuesBucket start");
if (type_ != DataAbilityOperation::TYPE_INSERT && type_ != DataAbilityOperation::TYPE_UPDATE &&
type_ != DataAbilityOperation::TYPE_ASSERT) {
HILOG_ERROR("DataAbilityOperationBuilder::WithValuesBucket only inserts, updates and assert can have values,"
" type=%{public}d", type_);
TAG_LOGE(AAFwkTag::DATA_ABILITY,
"DataAbilityOperationBuilder::WithValuesBucket only inserts, updates and assert can have values,"
" type=%{public}d",
type_);
return nullptr;
}
valuesBucket_ = std::make_shared<NativeRdb::ValuesBucket>(*values);
HILOG_DEBUG("DataAbilityOperationBuilder::WithValuesBucket end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithValuesBucket end");
return shared_from_this();
}
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithPredicates(
std::shared_ptr<NativeRdb::DataAbilityPredicates> &predicates)
{
HILOG_DEBUG("DataAbilityOperationBuilder::WithPredicates start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithPredicates start");
if (type_ != DataAbilityOperation::TYPE_DELETE && type_ != DataAbilityOperation::TYPE_UPDATE &&
type_ != DataAbilityOperation::TYPE_ASSERT) {
HILOG_ERROR(
TAG_LOGE(AAFwkTag::DATA_ABILITY,
"DataAbilityOperationBuilder::withPredicates only deletes, updates and assert can have selections,"
" type=%{public}d", type_);
" type=%{public}d",
type_);
return nullptr;
}
dataAbilityPredicates_ = predicates;
HILOG_DEBUG("DataAbilityOperationBuilder::WithPredicates end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithPredicates end");
return shared_from_this();
}
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithExpectedCount(int count)
{
HILOG_DEBUG("DataAbilityOperationBuilder::WithExpectedCount start");
HILOG_INFO("DataAbilityOperationBuilder::WithExpectedCount expectedCount:%{public}d", count);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithExpectedCount start");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithExpectedCount expectedCount:%{public}d", count);
if (type_ != DataAbilityOperation::TYPE_UPDATE && type_ != DataAbilityOperation::TYPE_DELETE &&
type_ != DataAbilityOperation::TYPE_ASSERT) {
HILOG_ERROR("DataAbilityOperationBuilder::withExpectedCount only updates, deletes and assert "
TAG_LOGE(AAFwkTag::DATA_ABILITY,
"DataAbilityOperationBuilder::withExpectedCount only updates, deletes and assert "
"can have expected counts, "
"type=%{public}d", type_);
"type=%{public}d",
type_);
return nullptr;
}
expectedCount_ = count;
HILOG_DEBUG("DataAbilityOperationBuilder::WithExpectedCount end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithExpectedCount end");
return shared_from_this();
}
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithPredicatesBackReference(
int requestArgIndex, int previousResult)
{
HILOG_DEBUG("DataAbilityOperationBuilder::WithPredicatesBackReference start");
HILOG_INFO("DataAbilityOperationBuilder::WithPredicatesBackReference requestArgIndex:%{public}d, "
"previousResult:%{public}d", requestArgIndex, previousResult);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithPredicatesBackReference start");
TAG_LOGI(AAFwkTag::DATA_ABILITY,
"DataAbilityOperationBuilder::WithPredicatesBackReference requestArgIndex:%{public}d, "
"previousResult:%{public}d",
requestArgIndex, previousResult);
if (type_ != DataAbilityOperation::TYPE_UPDATE && type_ != DataAbilityOperation::TYPE_DELETE &&
type_ != DataAbilityOperation::TYPE_ASSERT) {
HILOG_ERROR("DataAbilityOperationBuilder::withPredicatesBackReference only updates, deletes, "
"and asserts can have select back-references, type=%{public}d", type_);
TAG_LOGE(AAFwkTag::DATA_ABILITY,
"DataAbilityOperationBuilder::withPredicatesBackReference only updates, deletes, "
"and asserts can have select back-references, type=%{public}d",
type_);
return nullptr;
}
dataAbilityPredicatesBackReferences_.insert(std::make_pair(requestArgIndex, previousResult));
HILOG_DEBUG("DataAbilityOperationBuilder::WithPredicatesBackReference end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithPredicatesBackReference end");
return shared_from_this();
}
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithValueBackReferences(
std::shared_ptr<NativeRdb::ValuesBucket> &backReferences)
{
HILOG_DEBUG("DataAbilityOperationBuilder::WithValueBackReferences start");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithValueBackReferences start");
if (type_ != DataAbilityOperation::TYPE_INSERT && type_ != DataAbilityOperation::TYPE_UPDATE &&
type_ != DataAbilityOperation::TYPE_ASSERT) {
HILOG_ERROR("DataAbilityOperationBuilder::withValueBackReferences only inserts, updates, and asserts can have "
"value back-references, type=%{public}d", type_);
TAG_LOGE(AAFwkTag::DATA_ABILITY,
"DataAbilityOperationBuilder::withValueBackReferences only inserts, updates, and asserts can have "
"value back-references, type=%{public}d",
type_);
return nullptr;
}
valuesBucketReferences_ = backReferences;
HILOG_DEBUG("DataAbilityOperationBuilder::WithValueBackReferences end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithValueBackReferences end");
return shared_from_this();
}
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithInterruptionAllowed(bool interrupted)
{
HILOG_DEBUG("DataAbilityOperationBuilder::WithInterruptionAllowed start");
HILOG_INFO("DataAbilityOperationBuilder::WithInterruptionAllowed interrupted=%{public}d", interrupted);
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithInterruptionAllowed start");
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithInterruptionAllowed interrupted=%{public}d",
interrupted);
if (type_ != DataAbilityOperation::TYPE_INSERT && type_ != DataAbilityOperation::TYPE_UPDATE &&
type_ != DataAbilityOperation::TYPE_ASSERT && type_ != DataAbilityOperation::TYPE_DELETE) {
HILOG_ERROR("DataAbilityOperationBuilder::withInterruptionAllowed only inserts, updates, delete, "
"and asserts can have value back-references, type=%{public}d", type_);
TAG_LOGE(AAFwkTag::DATA_ABILITY,
"DataAbilityOperationBuilder::withInterruptionAllowed only inserts, updates, delete, "
"and asserts can have value back-references, type=%{public}d",
type_);
return nullptr;
}
interrupted_ = interrupted;
HILOG_DEBUG("DataAbilityOperationBuilder::WithInterruptionAllowed end");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithInterruptionAllowed end");
return shared_from_this();
}
} // namespace AppExecFwk
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -17,6 +17,7 @@
#include <memory>
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "parcel_macro_base.h"
@@ -87,7 +88,7 @@ DataAbilityResult *DataAbilityResult::CreateFromParcel(Parcel &parcel)
{
DataAbilityResult *dataAbilityResult = new (std::nothrow) DataAbilityResult(parcel);
if (dataAbilityResult == nullptr) {
HILOG_ERROR("DataAbilityResult::CreateFromParcel dataAbilityResult is nullptr");
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityResult::CreateFromParcel dataAbilityResult is nullptr");
}
return dataAbilityResult;
}
@@ -157,7 +158,7 @@ bool DataAbilityResult::ReadFromParcel(Parcel &parcel)
int32_t empty = VALUE_NULL;
if (!parcel.ReadInt32(empty)) {
return false;
HILOG_DEBUG("Failed to read parcel");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Failed to read parcel");
}
if (empty == VALUE_OBJECT) {
@@ -168,7 +169,7 @@ bool DataAbilityResult::ReadFromParcel(Parcel &parcel)
uri = nullptr;
} else {
return false;
HILOG_DEBUG("Failed to read parcel");
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Failed to read parcel");
}
}
+21 -20
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2023 Huawei Device Co., Ltd.
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -18,6 +18,7 @@
#include "ability_local_record.h"
#include "configuration.h"
#include "extension_context.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "hitrace_meter.h"
@@ -28,9 +29,9 @@ void Extension::Init(const std::shared_ptr<AppExecFwk::AbilityLocalRecord> &reco
std::shared_ptr<AppExecFwk::AbilityHandler> &handler,
const sptr<IRemoteObject> &token)
{
HILOG_DEBUG("called");
TAG_LOGD(AAFwkTag::EXT, "called");
if ((record == nullptr) || (application == nullptr) || (handler == nullptr) || (token == nullptr)) {
HILOG_ERROR("Extension::init failed, some object is nullptr");
TAG_LOGE(AAFwkTag::EXT, "Extension::init failed, some object is nullptr");
return;
}
abilityInfo_ = record->GetAbilityInfo();
@@ -41,7 +42,7 @@ void Extension::Init(const std::shared_ptr<AppExecFwk::AbilityLocalRecord> &reco
void Extension::OnStart(const AAFwk::Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
SetLaunchWant(want);
SetLastRequestWant(want);
}
@@ -49,14 +50,14 @@ void Extension::OnStart(const AAFwk::Want &want)
void Extension::OnStart(const AAFwk::Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
SetLaunchWant(want);
SetLastRequestWant(want);
}
void Extension::OnStop()
{
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
}
void Extension::OnStop(AppExecFwk::AbilityTransactionCallbackInfo<> *callbackInfo, bool &isAsyncCallback)
@@ -72,7 +73,7 @@ void Extension::OnStopCallBack()
sptr<IRemoteObject> Extension::OnConnect(const AAFwk::Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
return nullptr;
}
@@ -86,7 +87,7 @@ sptr<IRemoteObject> Extension::OnConnect(const AAFwk::Want &want,
void Extension::OnDisconnect(const AAFwk::Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
}
void Extension::OnDisconnect(const AAFwk::Want &want, AppExecFwk::AbilityTransactionCallbackInfo<> *callbackInfo,
@@ -98,7 +99,7 @@ void Extension::OnDisconnect(const AAFwk::Want &want, AppExecFwk::AbilityTransac
void Extension::OnCommand(const AAFwk::Want &want, bool restart, int startId)
{
HILOG_DEBUG("restart=%{public}s,startId=%{public}d.",
TAG_LOGD(AAFwkTag::EXT, "restart=%{public}s,startId=%{public}d.",
restart ? "true" : "false",
startId);
SetLastRequestWant(want);
@@ -107,19 +108,19 @@ void Extension::OnCommand(const AAFwk::Want &want, bool restart, int startId)
void Extension::OnCommandWindow(const AAFwk::Want &want, const sptr<AAFwk::SessionInfo> &sessionInfo,
AAFwk::WindowCommand winCmd)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
}
void Extension::OnForeground(const AAFwk::Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
}
void Extension::OnBackground()
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
}
void Extension::SetLaunchWant(const AAFwk::Want &want)
@@ -149,17 +150,17 @@ std::shared_ptr<CallingInfo> Extension::GetCallingInfo()
void Extension::OnConfigurationUpdated(const AppExecFwk::Configuration &configuration)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
}
void Extension::OnMemoryLevel(int level)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
}
void Extension::Dump(const std::vector<std::string> &params, std::vector<std::string> &info)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
}
void Extension::SetExtensionWindowLifeCycleListener(const sptr<Rosen::IWindowLifeCycle> &listener)
@@ -169,29 +170,29 @@ void Extension::SetExtensionWindowLifeCycleListener(const sptr<Rosen::IWindowLif
void Extension::OnAbilityResult(int requestCode, int resultCode, const Want &want)
{
HILOG_DEBUG("call.");
TAG_LOGD(AAFwkTag::EXT, "call.");
}
void Extension::OnCommandWindowDone(const sptr<AAFwk::SessionInfo> &sessionInfo, AAFwk::WindowCommand winCmd)
{
HILOG_DEBUG("call.");
TAG_LOGD(AAFwkTag::EXT, "call.");
}
void Extension::OnInsightIntentExecuteDone(const sptr<AAFwk::SessionInfo> &sessionInfo,
const AppExecFwk::InsightIntentExecuteResult &result)
{
HILOG_DEBUG("call.");
TAG_LOGD(AAFwkTag::EXT, "call.");
}
bool Extension::HandleInsightIntent(const AAFwk::Want &want)
{
HILOG_DEBUG("call.");
TAG_LOGD(AAFwkTag::EXT, "call.");
return true;
}
bool Extension::OnInsightIntentExecuteDone(uint64_t intentId, const AppExecFwk::InsightIntentExecuteResult &result)
{
HILOG_DEBUG("call.");
TAG_LOGD(AAFwkTag::EXT, "call.");
return true;
}
}
@@ -19,6 +19,7 @@
#include "ability_handler.h"
#include "ability_loader.h"
#include "ability_manager_client.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "hitrace_meter.h"
#include "ui_extension_utils.h"
@@ -75,24 +76,24 @@ std::string ExtensionAbilityThread::CreateAbilityName(
{
std::string abilityName;
if (abilityRecord == nullptr || application == nullptr) {
HILOG_ERROR("AbilityRecord or application is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "AbilityRecord or application is nullptr.");
return abilityName;
}
std::shared_ptr<AppExecFwk::AbilityInfo> abilityInfo = abilityRecord->GetAbilityInfo();
if (abilityInfo == nullptr) {
HILOG_ERROR("AbilityInfo is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "AbilityInfo is nullptr.");
return abilityName;
}
if (abilityInfo->isNativeAbility || abilityInfo->type != AppExecFwk::AbilityType::EXTENSION) {
HILOG_DEBUG("Ability info name is %{public}s", abilityInfo->name.c_str());
TAG_LOGD(AAFwkTag::EXT, "Ability info name is %{public}s", abilityInfo->name.c_str());
return abilityInfo->name;
}
application->GetExtensionNameByType(static_cast<int32_t>(abilityInfo->extensionAbilityType), abilityName);
if (!abilityName.empty()) {
HILOG_DEBUG("Get extension name: %{public}s success.", abilityName.c_str());
TAG_LOGD(AAFwkTag::EXT, "Get extension name: %{public}s success.", abilityName.c_str());
return abilityName;
}
@@ -111,7 +112,7 @@ std::string ExtensionAbilityThread::CreateAbilityName(
}
}
CreateExtensionAbilityName(abilityInfo, abilityName);
HILOG_DEBUG("Ability name is %{public}s.", abilityName.c_str());
TAG_LOGD(AAFwkTag::EXT, "Ability name is %{public}s.", abilityName.c_str());
return abilityName;
}
@@ -169,13 +170,13 @@ void ExtensionAbilityThread::Attach(const std::shared_ptr<AppExecFwk::OHOSApplic
[[maybe_unused]] const std::shared_ptr<Context> &appContext)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (application == nullptr || abilityRecord == nullptr || mainRunner == nullptr) {
HILOG_ERROR("application or abilityRecord or mainRunner is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "application or abilityRecord or mainRunner is nullptr.");
return;
}
HandleAttach(application, abilityRecord, mainRunner);
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::Attach(const std::shared_ptr<AppExecFwk::OHOSApplication> &application,
@@ -183,13 +184,13 @@ void ExtensionAbilityThread::Attach(const std::shared_ptr<AppExecFwk::OHOSApplic
[[maybe_unused]] const std::shared_ptr<Context> &appContext)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if ((application == nullptr) || (abilityRecord == nullptr)) {
HILOG_ERROR("application or abilityRecord is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "application or abilityRecord is nullptr.");
return;
}
HandleAttach(application, abilityRecord, nullptr);
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::HandleAttach(const std::shared_ptr<AppExecFwk::OHOSApplication> &application,
@@ -197,33 +198,33 @@ void ExtensionAbilityThread::HandleAttach(const std::shared_ptr<AppExecFwk::OHOS
const std::shared_ptr<AppExecFwk::EventRunner> &mainRunner)
{
if (application == nullptr || abilityRecord == nullptr) {
HILOG_ERROR("Application or abilityRecord is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "Application or abilityRecord is nullptr.");
return;
}
// 1.new AbilityHandler
std::string abilityName = CreateAbilityName(abilityRecord, application);
if (abilityName.empty()) {
HILOG_ERROR("AbilityName is empty.");
TAG_LOGE(AAFwkTag::EXT, "AbilityName is empty.");
return;
}
HILOG_DEBUG("Begin, extension: %{public}s.", abilityName.c_str());
TAG_LOGD(AAFwkTag::EXT, "Begin, extension: %{public}s.", abilityName.c_str());
if (mainRunner == nullptr) {
runner_ = AppExecFwk::EventRunner::Create(abilityName);
if (runner_ == nullptr) {
HILOG_ERROR("runner_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "runner_ is nullptr.");
return;
}
abilityHandler_ = std::make_shared<AppExecFwk::AbilityHandler>(runner_);
if (abilityHandler_ == nullptr) {
HILOG_ERROR("abilityHandler_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
return;
}
} else {
abilityHandler_ = std::make_shared<AppExecFwk::AbilityHandler>(mainRunner);
if (abilityHandler_ == nullptr) {
HILOG_ERROR("abilityHandler_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
return;
}
}
@@ -231,7 +232,7 @@ void ExtensionAbilityThread::HandleAttach(const std::shared_ptr<AppExecFwk::OHOS
// 2.new ability
auto extension = AppExecFwk::AbilityLoader::GetInstance().GetExtensionByName(abilityName);
if (extension == nullptr) {
HILOG_ERROR("Extension is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "Extension is nullptr.");
return;
}
currentExtension_.reset(extension);
@@ -247,7 +248,7 @@ void ExtensionAbilityThread::HandleAttachInner(const std::shared_ptr<AppExecFwk:
{
extensionImpl_ = std::make_shared<ExtensionImpl>();
if (extensionImpl_ == nullptr) {
HILOG_ERROR("extensionImpl_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr");
return;
}
@@ -256,7 +257,7 @@ void ExtensionAbilityThread::HandleAttachInner(const std::shared_ptr<AppExecFwk:
// 4.ipc attach init
ErrCode err = AbilityManagerClient::GetInstance()->AttachAbilityThread(this, token_);
if (err != ERR_OK) {
HILOG_ERROR("Attach failed err is %{public}d", err);
TAG_LOGE(AAFwkTag::EXT, "Attach failed err is %{public}d", err);
}
}
@@ -264,21 +265,21 @@ void ExtensionAbilityThread::HandleExtensionTransaction(
const Want &want, const LifeCycleStateInfo &lifeCycleStateInfo, sptr<AAFwk::SessionInfo> sessionInfo)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (extensionImpl_ == nullptr) {
HILOG_ERROR("extensionImpl_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
return;
}
extensionImpl_->HandleExtensionTransaction(want, lifeCycleStateInfo, sessionInfo);
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::HandleConnectExtension(const Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (extensionImpl_ == nullptr) {
HILOG_ERROR("extensionImpl_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
return;
}
bool isAsyncCallback = false;
@@ -286,15 +287,15 @@ void ExtensionAbilityThread::HandleConnectExtension(const Want &want)
if (!isAsyncCallback) {
extensionImpl_->ConnectExtensionCallback(service);
}
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::HandleDisconnectExtension(const Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (extensionImpl_ == nullptr) {
HILOG_ERROR("extensionImpl_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
return;
}
@@ -303,174 +304,174 @@ void ExtensionAbilityThread::HandleDisconnectExtension(const Want &want)
if (!isAsyncCallback) {
extensionImpl_->DisconnectExtensionCallback();
}
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::HandleCommandExtension(const Want &want, bool restart, int32_t startId)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (extensionImpl_ == nullptr) {
HILOG_ERROR("extensionImpl_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
return;
}
extensionImpl_->CommandExtension(want, restart, startId);
ErrCode err = AbilityManagerClient::GetInstance()->ScheduleCommandAbilityDone(token_);
if (err != ERR_OK) {
HILOG_ERROR("Failed err is %{public}d.", err);
TAG_LOGE(AAFwkTag::EXT, "Failed err is %{public}d.", err);
}
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::HandleInsightIntent(const Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (extensionImpl_ == nullptr) {
HILOG_ERROR("extensionImpl_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
return;
}
auto ret = extensionImpl_->HandleInsightIntent(want);
if (!ret) {
HILOG_ERROR("extensionImpl_ HandleInsightIntent failed.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ HandleInsightIntent failed.");
return;
}
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::HandleCommandExtensionWindow(
const Want &want, const sptr<AAFwk::SessionInfo> &sessionInfo, AAFwk::WindowCommand winCmd)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (extensionImpl_ == nullptr) {
HILOG_ERROR("extensionImpl_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
return;
}
extensionImpl_->CommandExtensionWindow(want, sessionInfo, winCmd);
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::ScheduleUpdateConfiguration(const AppExecFwk::Configuration &config)
{
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (abilityHandler_ == nullptr) {
HILOG_ERROR("abilityHandler_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
return;
}
wptr<ExtensionAbilityThread> weak = this;
auto task = [weak, config]() {
auto abilityThread = weak.promote();
if (abilityThread == nullptr) {
HILOG_ERROR("Ability thread is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "Ability thread is nullptr.");
return;
}
abilityThread->HandleExtensionUpdateConfiguration(config);
};
bool ret = abilityHandler_->PostTask(task);
if (!ret) {
HILOG_ERROR("PostTask error");
TAG_LOGE(AAFwkTag::EXT, "PostTask error");
}
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::HandleExtensionUpdateConfiguration(const AppExecFwk::Configuration &config)
{
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (extensionImpl_ == nullptr) {
HILOG_ERROR("extensionImpl_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
return;
}
extensionImpl_->ScheduleUpdateConfiguration(config);
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::ScheduleAbilityTransaction(
const Want &want, const LifeCycleStateInfo &lifeCycleStateInfo, sptr<AAFwk::SessionInfo> sessionInfo)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Name is %{public}s, targeState is %{public}d, isNewWant is %{public}d",
TAG_LOGD(AAFwkTag::EXT, "Name is %{public}s, targeState is %{public}d, isNewWant is %{public}d",
want.GetElement().GetAbilityName().c_str(), lifeCycleStateInfo.state, lifeCycleStateInfo.isNewWant);
if (token_ == nullptr) {
HILOG_ERROR("token_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "token_ is nullptr.");
return;
}
if (abilityHandler_ == nullptr) {
HILOG_ERROR("abilityHandler_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
return;
}
wptr<ExtensionAbilityThread> weak = this;
auto task = [weak, want, lifeCycleStateInfo, sessionInfo]() {
auto abilityThread = weak.promote();
if (abilityThread == nullptr) {
HILOG_ERROR("Ability thread is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "Ability thread is nullptr.");
return;
}
abilityThread->HandleExtensionTransaction(want, lifeCycleStateInfo, sessionInfo);
};
bool ret = abilityHandler_->PostTask(task);
if (!ret) {
HILOG_ERROR("PostTask error.");
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
}
}
void ExtensionAbilityThread::ScheduleConnectAbility(const Want &want)
{
HILOG_DEBUG("Called.");
TAG_LOGD(AAFwkTag::EXT, "Called.");
if (abilityHandler_ == nullptr) {
HILOG_ERROR("abilityHandler_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
return;
}
wptr<ExtensionAbilityThread> weak = this;
auto task = [weak, want]() {
auto abilityThread = weak.promote();
if (abilityThread == nullptr) {
HILOG_ERROR("AbilityThread is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
return;
}
abilityThread->HandleConnectExtension(want);
};
bool ret = abilityHandler_->PostTask(task);
if (!ret) {
HILOG_ERROR("PostTask error.");
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
}
}
void ExtensionAbilityThread::ScheduleDisconnectAbility(const Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Called.");
TAG_LOGD(AAFwkTag::EXT, "Called.");
if (abilityHandler_ == nullptr) {
HILOG_ERROR("abilityHandler_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
return;
}
wptr<ExtensionAbilityThread> weak = this;
auto task = [weak, want]() {
auto abilityThread = weak.promote();
if (abilityThread == nullptr) {
HILOG_ERROR("AbilityThread is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
return;
}
abilityThread->HandleDisconnectExtension(want);
};
bool ret = abilityHandler_->PostTask(task);
if (!ret) {
HILOG_ERROR("PostTask error.");
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
}
}
void ExtensionAbilityThread::ScheduleCommandAbility(const Want &want, bool restart, int32_t startId)
{
HILOG_DEBUG("Begin startId: %{public}d", startId);
TAG_LOGD(AAFwkTag::EXT, "Begin startId: %{public}d", startId);
if (abilityHandler_ == nullptr) {
HILOG_ERROR("abilityHandler_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
return;
}
ScheduleCommandAbilityInner(want, restart, startId);
if (AppExecFwk::InsightIntentExecuteParam::IsInsightIntentExecute(want)) {
ScheduleInsightIntentInner(want);
}
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::ScheduleCommandAbilityInner(const Want &want, bool restart, int32_t startId)
@@ -479,14 +480,14 @@ void ExtensionAbilityThread::ScheduleCommandAbilityInner(const Want &want, bool
auto task = [weak, want, restart, startId]() {
auto abilityThread = weak.promote();
if (abilityThread == nullptr) {
HILOG_ERROR("AbilityThread is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
return;
}
abilityThread->HandleCommandExtension(want, restart, startId);
};
bool ret = abilityHandler_->PostTask(task);
if (!ret) {
HILOG_ERROR("PostTask error.");
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
}
}
@@ -496,46 +497,46 @@ void ExtensionAbilityThread::ScheduleInsightIntentInner(const Want &want)
auto task = [weak, want]() {
auto abilityThread = weak.promote();
if (abilityThread == nullptr) {
HILOG_ERROR("AbilityThread is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
return;
}
abilityThread->HandleInsightIntent(want);
};
bool ret = abilityHandler_->PostTask(task);
if (!ret) {
HILOG_ERROR("PostTask error.");
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
}
}
void ExtensionAbilityThread::ScheduleCommandAbilityWindow(
const Want &want, const sptr<AAFwk::SessionInfo> &sessionInfo, AAFwk::WindowCommand winCmd)
{
HILOG_DEBUG("Begin, winCmd: %{public}d.", winCmd);
TAG_LOGD(AAFwkTag::EXT, "Begin, winCmd: %{public}d.", winCmd);
if (abilityHandler_ == nullptr) {
HILOG_ERROR("abilityHandler_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
return;
}
wptr<ExtensionAbilityThread> weak = this;
auto task = [weak, want, sessionInfo, winCmd]() {
auto abilityThread = weak.promote();
if (abilityThread == nullptr) {
HILOG_ERROR("AbilityThread is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
return;
}
abilityThread->HandleCommandExtensionWindow(want, sessionInfo, winCmd);
};
bool ret = abilityHandler_->PostTask(task);
if (!ret) {
HILOG_ERROR("PostTask error.");
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
}
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::SendResult(int requestCode, int resultCode, const Want &want)
{
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (abilityHandler_ == nullptr || requestCode == -1) {
HILOG_ERROR("abilityHandler_ is nullptr or requestCode is -1.");
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr or requestCode is -1.");
return;
}
@@ -543,28 +544,28 @@ void ExtensionAbilityThread::SendResult(int requestCode, int resultCode, const W
auto task = [weak, requestCode, resultCode, want]() {
auto abilityThread = weak.promote();
if (abilityThread == nullptr) {
HILOG_ERROR("AbilityThread is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
return;
}
if (abilityThread->extensionImpl_ == nullptr) {
HILOG_ERROR("ExtensionImpl is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl is nullptr.");
return;
}
abilityThread->extensionImpl_->SendResult(requestCode, resultCode, want);
};
bool ret = abilityHandler_->PostTask(task);
if (!ret) {
HILOG_ERROR("PostTask error.");
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
}
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::NotifyMemoryLevel(int32_t level)
{
HILOG_DEBUG("called, result: %{public}d.", level);
TAG_LOGD(AAFwkTag::EXT, "called, result: %{public}d.", level);
if (extensionImpl_ == nullptr) {
HILOG_ERROR("extensionImpl_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
return;
}
extensionImpl_->NotifyMemoryLevel(level);
@@ -572,38 +573,38 @@ void ExtensionAbilityThread::NotifyMemoryLevel(int32_t level)
void ExtensionAbilityThread::DumpAbilityInfo(const std::vector<std::string> &params, std::vector<std::string> &info)
{
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (token_ == nullptr || abilityHandler_ == nullptr) {
HILOG_ERROR("token_ or abilityHandler_ is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "token_ or abilityHandler_ is nullptr.");
return;
}
wptr<ExtensionAbilityThread> weak = this;
auto task = [weak, params, token = token_]() {
auto abilityThread = weak.promote();
if (abilityThread == nullptr) {
HILOG_ERROR("AbilityThread is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
return;
}
std::vector<std::string> dumpInfo;
abilityThread->DumpAbilityInfoInner(params, dumpInfo);
ErrCode err = AbilityManagerClient::GetInstance()->DumpAbilityInfoDone(dumpInfo, token);
if (err != ERR_OK) {
HILOG_ERROR("Dump ability info failed err is %{public}d.", err);
TAG_LOGE(AAFwkTag::EXT, "Dump ability info failed err is %{public}d.", err);
}
};
bool ret = abilityHandler_->PostTask(task);
if (!ret) {
HILOG_ERROR("PostTask error.");
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
}
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::DumpAbilityInfoInner(
const std::vector<std::string> &params, std::vector<std::string> &info)
{
HILOG_DEBUG("Begin.");
TAG_LOGD(AAFwkTag::EXT, "Begin.");
if (currentExtension_ == nullptr) {
HILOG_DEBUG("currentExtension_ is nullptr.");
TAG_LOGD(AAFwkTag::EXT, "currentExtension_ is nullptr.");
return;
}
currentExtension_->Dump(params, info);
@@ -616,7 +617,7 @@ void ExtensionAbilityThread::DumpAbilityInfoInner(
#else
DumpOtherInfo(info);
#endif
HILOG_DEBUG("End.");
TAG_LOGD(AAFwkTag::EXT, "End.");
}
void ExtensionAbilityThread::DumpOtherInfo(std::vector<std::string> &info)
@@ -624,12 +625,12 @@ void ExtensionAbilityThread::DumpOtherInfo(std::vector<std::string> &info)
std::string dumpInfo = " event:";
info.push_back(dumpInfo);
if (abilityHandler_ == nullptr) {
HILOG_DEBUG("abilityHandler_ is nullptr.");
TAG_LOGD(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
return;
}
auto runner = abilityHandler_->GetEventRunner();
if (runner == nullptr) {
HILOG_DEBUG("runner_ is nullptr.");
TAG_LOGD(AAFwkTag::EXT, "runner_ is nullptr.");
return;
}
dumpInfo = "";
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Huawei Device Co., Ltd.
* Copyright (c) 2023-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -19,6 +19,7 @@
#include <nlohmann/json.hpp>
#include "app_module_checker.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
namespace OHOS::AbilityRuntime {
@@ -36,18 +37,18 @@ void ExtensionConfigMgr::Init()
std::ifstream inFile;
inFile.open(EXTENSION_BLOCKLIST_FILE_PATH, std::ios::in);
if (!inFile.is_open()) {
HILOG_ERROR("read extension config error");
TAG_LOGE(AAFwkTag::EXT, "read extension config error");
return;
}
nlohmann::json extensionConfig;
inFile >> extensionConfig;
if (extensionConfig.is_discarded()) {
HILOG_ERROR("extension config json discarded error");
TAG_LOGE(AAFwkTag::EXT, "extension config json discarded error");
inFile.close();
return;
}
if (!extensionConfig.contains(ExtensionConfigItem::ITEM_NAME_BLOCKLIST)) {
HILOG_ERROR("extension config file have no blocklist node");
TAG_LOGE(AAFwkTag::EXT, "extension config file have no blocklist node");
inFile.close();
return;
}
@@ -68,10 +69,10 @@ void ExtensionConfigMgr::Init()
void ExtensionConfigMgr::AddBlockListItem(const std::string& name, int32_t type)
{
HILOG_DEBUG("AddBlockListItem name = %{public}s, type = %{public}d", name.c_str(), type);
TAG_LOGD(AAFwkTag::EXT, "AddBlockListItem name = %{public}s, type = %{public}d", name.c_str(), type);
auto iter = blocklistConfig_.find(name);
if (iter == blocklistConfig_.end()) {
HILOG_DEBUG("Extension name = %{public}s, not exist in blocklist config", name.c_str());
TAG_LOGD(AAFwkTag::EXT, "Extension name = %{public}s, not exist in blocklist config", name.c_str());
return;
}
extensionBlocklist_.emplace(type, iter->second);
@@ -80,10 +81,10 @@ void ExtensionConfigMgr::AddBlockListItem(const std::string& name, int32_t type)
void ExtensionConfigMgr::UpdateRuntimeModuleChecker(const std::unique_ptr<AbilityRuntime::Runtime> &runtime)
{
if (!runtime) {
HILOG_ERROR("UpdateRuntimeModuleChecker faild, runtime is null");
TAG_LOGE(AAFwkTag::EXT, "UpdateRuntimeModuleChecker faild, runtime is null");
return;
}
HILOG_DEBUG("extensionType_ = %{public}d", extensionType_);
TAG_LOGD(AAFwkTag::EXT, "extensionType_ = %{public}d", extensionType_);
auto moduleChecker = std::make_shared<AppModuleChecker>(extensionType_, std::move(extensionBlocklist_));
runtime->SetModuleLoadChecker(moduleChecker);
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2023 Huawei Device Co., Ltd.
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -20,6 +20,7 @@
#include "ability_transaction_callback_info.h"
#include "hitrace_meter.h"
#include "extension_context.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "ui_extension_utils.h"
@@ -32,10 +33,10 @@ void ExtensionImpl::Init(const std::shared_ptr<AppExecFwk::OHOSApplication> &app
const sptr<IRemoteObject> &token)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if ((token == nullptr) || (application == nullptr) || (handler == nullptr) || (record == nullptr) ||
extension == nullptr) {
HILOG_ERROR("ExtensionImpl::init failed, some object is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::init failed, some object is nullptr");
return;
}
@@ -65,10 +66,10 @@ void ExtensionImpl::HandleExtensionTransaction(const Want &want, const AAFwk::Li
sptr<AAFwk::SessionInfo> sessionInfo)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("sourceState:%{public}d;targetState:%{public}d;isNewWant:%{public}d",
TAG_LOGD(AAFwkTag::EXT, "sourceState:%{public}d;targetState:%{public}d;isNewWant:%{public}d",
lifecycleState_, targetState.state, targetState.isNewWant);
if (lifecycleState_ == targetState.state) {
HILOG_ERROR("Org lifeCycleState equals to Dst lifeCycleState.");
TAG_LOGE(AAFwkTag::EXT, "Org lifeCycleState equals to Dst lifeCycleState.");
return;
}
@@ -104,13 +105,13 @@ void ExtensionImpl::HandleExtensionTransaction(const Want &want, const AAFwk::Li
}
default: {
ret = false;
HILOG_ERROR("ExtensionImpl::HandleExtensionTransaction state is error");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::HandleExtensionTransaction state is error");
break;
}
}
if (ret && !UIExtensionAbilityExecuteInsightIntent(want)) {
HILOG_DEBUG("call abilityms");
TAG_LOGD(AAFwkTag::EXT, "call abilityms");
AAFwk::PacMap restoreData;
AAFwk::AbilityManagerClient::GetInstance()->AbilityTransitionDone(token_, targetState.state, restoreData);
}
@@ -124,9 +125,9 @@ bool ExtensionImpl::UIExtensionAbilityExecuteInsightIntent(const Want &want)
void ExtensionImpl::ScheduleUpdateConfiguration(const AppExecFwk::Configuration &config)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::ScheduleUpdateConfiguration extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::ScheduleUpdateConfiguration extension_ is nullptr");
return;
}
@@ -137,9 +138,9 @@ void ExtensionImpl::ScheduleUpdateConfiguration(const AppExecFwk::Configuration
void ExtensionImpl::NotifyMemoryLevel(int level)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::NotifyMemoryLevel extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::NotifyMemoryLevel extension_ is nullptr");
return;
}
@@ -158,20 +159,20 @@ void ExtensionImpl::NotifyMemoryLevel(int level)
void ExtensionImpl::Start(const Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::Start extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::Start extension_ is nullptr");
return;
}
HILOG_DEBUG("ExtensionImpl::Start");
TAG_LOGD(AAFwkTag::EXT, "ExtensionImpl::Start");
if (extension_->abilityInfo_->extensionAbilityType == AppExecFwk::ExtensionAbilityType::WINDOW) {
extension_->OnStart(want, sessionInfo);
} else {
extension_->OnStart(want);
}
lifecycleState_ = AAFwk::ABILITY_STATE_INACTIVE;
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::EXT, "ok");
}
/**
@@ -181,23 +182,23 @@ void ExtensionImpl::Start(const Want &want, sptr<AAFwk::SessionInfo> sessionInfo
*/
void ExtensionImpl::Stop()
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::Stop extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::Stop extension_ is nullptr");
return;
}
extension_->OnStop();
lifecycleState_ = AAFwk::ABILITY_STATE_INITIAL;
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::EXT, "ok");
}
void ExtensionImpl::Stop(bool &isAsyncCallback, const Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::Stop extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::Stop extension_ is nullptr");
isAsyncCallback = false;
return;
}
@@ -217,7 +218,7 @@ void ExtensionImpl::Stop(bool &isAsyncCallback, const Want &want, sptr<AAFwk::Se
auto asyncCallback = [ExtensionImplWeakPtr = weakPtr, state = AAFwk::ABILITY_STATE_INITIAL]() {
auto extensionImpl = ExtensionImplWeakPtr.lock();
if (extensionImpl == nullptr) {
HILOG_ERROR("extensionImpl is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl is nullptr.");
return;
}
extensionImpl->lifecycleState_ = AAFwk::ABILITY_STATE_INITIAL;
@@ -231,12 +232,12 @@ void ExtensionImpl::Stop(bool &isAsyncCallback, const Want &want, sptr<AAFwk::Se
AppExecFwk::AbilityTransactionCallbackInfo<>::Destroy(callbackInfo);
}
// else: callbackInfo will be destroyed after the async callback
HILOG_DEBUG("%{public}s end.", __func__);
TAG_LOGD(AAFwkTag::EXT, "%{public}s end.", __func__);
}
void ExtensionImpl::AbilityTransactionCallback(const AAFwk::AbilityLifeCycleState &state)
{
HILOG_DEBUG("called");
TAG_LOGD(AAFwkTag::EXT, "called");
AAFwk::PacMap restoreData;
AAFwk::AbilityManagerClient::GetInstance()->AbilityTransitionDone(token_, state, restoreData);
}
@@ -249,25 +250,25 @@ void ExtensionImpl::AbilityTransactionCallback(const AAFwk::AbilityLifeCycleStat
*/
sptr<IRemoteObject> ExtensionImpl::ConnectExtension(const Want &want)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::ConnectAbility extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::ConnectAbility extension_ is nullptr");
return nullptr;
}
skipCommandExtensionWithIntent_ = true;
sptr<IRemoteObject> object = extension_->OnConnect(want);
lifecycleState_ = AAFwk::ABILITY_STATE_ACTIVE;
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::EXT, "ok");
return object;
}
sptr<IRemoteObject> ExtensionImpl::ConnectExtension(const Want &want, bool &isAsyncCallback)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::ConnectAbility extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::ConnectAbility extension_ is nullptr");
isAsyncCallback = false;
return nullptr;
}
@@ -278,7 +279,7 @@ sptr<IRemoteObject> ExtensionImpl::ConnectExtension(const Want &want, bool &isAs
sptr<IRemoteObject> object = extension_->OnConnect(want);
lifecycleState_ = AAFwk::ABILITY_STATE_ACTIVE;
isAsyncCallback = false;
HILOG_INFO("%{public}s end.", __func__);
TAG_LOGI(AAFwkTag::EXT, "%{public}s end.", __func__);
return object;
}
@@ -286,7 +287,7 @@ sptr<IRemoteObject> ExtensionImpl::ConnectExtension(const Want &want, bool &isAs
auto asyncCallback = [extensionImplWeakPtr = weakPtr](sptr<IRemoteObject> &service) {
auto extensionImpl = extensionImplWeakPtr.lock();
if (extensionImpl == nullptr) {
HILOG_ERROR("extensionImpl is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl is nullptr.");
return;
}
extensionImpl->lifecycleState_ = AAFwk::ABILITY_STATE_ACTIVE;
@@ -300,7 +301,7 @@ sptr<IRemoteObject> ExtensionImpl::ConnectExtension(const Want &want, bool &isAs
AppExecFwk::AbilityTransactionCallbackInfo<sptr<IRemoteObject>>::Destroy(callbackInfo);
}
// else: callbackInfo will be destroyed after the async callback
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::EXT, "ok");
return object;
}
@@ -308,7 +309,7 @@ void ExtensionImpl::ConnectExtensionCallback(sptr<IRemoteObject> &service)
{
ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->ScheduleConnectAbilityDone(token_, service);
if (err != ERR_OK) {
HILOG_ERROR("AbilityThread::HandleConnectExtension failed err = %{public}d", err);
TAG_LOGE(AAFwkTag::EXT, "AbilityThread::HandleConnectExtension failed err = %{public}d", err);
}
}
@@ -319,21 +320,21 @@ void ExtensionImpl::ConnectExtensionCallback(sptr<IRemoteObject> &service)
*/
void ExtensionImpl::DisconnectExtension(const Want &want)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::DisconnectAbility extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::DisconnectAbility extension_ is nullptr");
return;
}
extension_->OnDisconnect(want);
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::EXT, "ok");
}
void ExtensionImpl::DisconnectExtension(const Want &want, bool &isAsyncCallback)
{
HILOG_DEBUG("%{public}s begin.", __func__);
TAG_LOGD(AAFwkTag::EXT, "%{public}s begin.", __func__);
if (extension_ == nullptr) {
HILOG_ERROR("Failed to disconnect, extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "Failed to disconnect, extension_ is nullptr");
isAsyncCallback = false;
return;
}
@@ -348,7 +349,7 @@ void ExtensionImpl::DisconnectExtension(const Want &want, bool &isAsyncCallback)
auto asyncCallback = [extensionImplWeakPtr = weakPtr]() {
auto extensionImpl = extensionImplWeakPtr.lock();
if (extensionImpl == nullptr) {
HILOG_ERROR("extensionImpl is nullptr.");
TAG_LOGE(AAFwkTag::EXT, "extensionImpl is nullptr.");
return;
}
extensionImpl->DisconnectExtensionCallback();
@@ -360,14 +361,14 @@ void ExtensionImpl::DisconnectExtension(const Want &want, bool &isAsyncCallback)
AppExecFwk::AbilityTransactionCallbackInfo<>::Destroy(callbackInfo);
}
// else: callbackInfo will be destroyed after the async callback
HILOG_DEBUG("%{public}s end.", __func__);
TAG_LOGD(AAFwkTag::EXT, "%{public}s end.", __func__);
}
void ExtensionImpl::DisconnectExtensionCallback()
{
ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->ScheduleDisconnectAbilityDone(token_);
if (err != ERR_OK) {
HILOG_ERROR("ExtensionImpl::DisconnectExtensionCallback failed err = %{public}d", err);
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::DisconnectExtensionCallback failed err = %{public}d", err);
}
}
@@ -385,9 +386,9 @@ void ExtensionImpl::DisconnectExtensionCallback()
*/
void ExtensionImpl::CommandExtension(const Want &want, bool restart, int startId)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::CommandAbility extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::CommandAbility extension_ is nullptr");
return;
}
if (!AppExecFwk::InsightIntentExecuteParam::IsInsightIntentExecute(want) || !skipCommandExtensionWithIntent_) {
@@ -395,22 +396,22 @@ void ExtensionImpl::CommandExtension(const Want &want, bool restart, int startId
extension_->OnCommand(want, restart, startId);
}
lifecycleState_ = AAFwk::ABILITY_STATE_ACTIVE;
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::EXT, "ok");
}
bool ExtensionImpl::HandleInsightIntent(const Want &want)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::EXT, "call");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::HandleInsightIntent extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::HandleInsightIntent extension_ is nullptr");
return false;
}
auto ret = extension_->HandleInsightIntent(want);
if (!ret) {
HILOG_ERROR("ExtensionImpl::extension HandleInsightIntent failed");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::extension HandleInsightIntent failed");
return false;
}
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::EXT, "ok");
return true;
}
@@ -419,34 +420,34 @@ void ExtensionImpl::CommandExtensionWindow(const Want &want, const sptr<AAFwk::S
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
if (extension_ == nullptr || sessionInfo == nullptr) {
HILOG_ERROR("extension_ or sessionInfo is nullptr");
TAG_LOGE(AAFwkTag::EXT, "extension_ or sessionInfo is nullptr");
return;
}
HILOG_DEBUG("persistentId: %{private}d, componentId: %{public}" PRId64 ", winCmd: %{public}d",
TAG_LOGD(AAFwkTag::EXT, "persistentId: %{private}d, componentId: %{public}" PRId64 ", winCmd: %{public}d",
sessionInfo->persistentId, sessionInfo->uiExtensionComponentId, winCmd);
extension_->OnCommandWindow(want, sessionInfo, winCmd);
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::EXT, "ok");
}
void ExtensionImpl::SendResult(int requestCode, int resultCode, const Want &resultData)
{
HILOG_DEBUG("begin.");
TAG_LOGD(AAFwkTag::EXT, "begin.");
if (extension_ == nullptr) {
HILOG_ERROR("extension_ is nullptr");
TAG_LOGE(AAFwkTag::EXT, "extension_ is nullptr");
return;
}
extension_->OnAbilityResult(requestCode, resultCode, resultData);
HILOG_DEBUG("end.");
TAG_LOGD(AAFwkTag::EXT, "end.");
}
void ExtensionImpl::Foreground(const Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("ExtensionImpl::Foreground begin");
TAG_LOGD(AAFwkTag::EXT, "ExtensionImpl::Foreground begin");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::Foreground ability is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::Foreground ability is nullptr");
return;
}
@@ -457,9 +458,9 @@ void ExtensionImpl::Foreground(const Want &want, sptr<AAFwk::SessionInfo> sessio
void ExtensionImpl::Background(const Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("ExtensionImpl::Background begin");
TAG_LOGD(AAFwkTag::EXT, "ExtensionImpl::Background begin");
if (extension_ == nullptr) {
HILOG_ERROR("ExtensionImpl::Background ability is nullptr");
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::Background ability is nullptr");
return;
}
@@ -473,22 +474,22 @@ void ExtensionImpl::Background(const Want &want, sptr<AAFwk::SessionInfo> sessio
void ExtensionImpl::ExtensionWindowLifeCycleImpl::AfterForeground()
{
HILOG_DEBUG("called.");
TAG_LOGD(AAFwkTag::EXT, "called.");
}
void ExtensionImpl::ExtensionWindowLifeCycleImpl::AfterBackground()
{
HILOG_DEBUG("called.");
TAG_LOGD(AAFwkTag::EXT, "called.");
}
void ExtensionImpl::ExtensionWindowLifeCycleImpl::AfterActive()
{
HILOG_DEBUG("called.");
TAG_LOGD(AAFwkTag::EXT, "called.");
}
void ExtensionImpl::ExtensionWindowLifeCycleImpl::AfterInactive()
{
HILOG_DEBUG("called.");
TAG_LOGD(AAFwkTag::EXT, "called.");
}
}
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -17,6 +17,7 @@
#include <dlfcn.h>
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
namespace OHOS::AbilityRuntime {
@@ -47,27 +48,29 @@ DummyExtensionModuleLoader::~DummyExtensionModuleLoader() = default;
ExtensionModuleLoader& GetExtensionModuleLoader(const char* sharedLibrary)
{
if (sharedLibrary == nullptr) {
HILOG_ERROR("Name of shared extension library MUST NOT be null pointer");
TAG_LOGE(AAFwkTag::EXT, "Name of shared extension library MUST NOT be null pointer");
return DummyExtensionModuleLoader::GetInstance();
}
void* handle = dlopen(sharedLibrary, RTLD_LAZY);
if (handle == nullptr) {
HILOG_ERROR("Failed to open extension library %{public}s, reason: %{public}sn", sharedLibrary, dlerror());
TAG_LOGE(AAFwkTag::EXT, "Failed to open extension library %{public}s, reason: %{public}sn", sharedLibrary,
dlerror());
return DummyExtensionModuleLoader::GetInstance();
}
auto entry = reinterpret_cast<DynamicEntry>(dlsym(handle, EXTENSION_MODULE_ENTRY));
if (entry == nullptr) {
dlclose(handle);
HILOG_ERROR("Failed to get extension symbol %{public}s in %{public}s", EXTENSION_MODULE_ENTRY, sharedLibrary);
TAG_LOGE(AAFwkTag::EXT, "Failed to get extension symbol %{public}s in %{public}s", EXTENSION_MODULE_ENTRY,
sharedLibrary);
return DummyExtensionModuleLoader::GetInstance();
}
auto loader = reinterpret_cast<ExtensionModuleLoader*>(entry());
if (loader == nullptr) {
dlclose(handle);
HILOG_ERROR("Failed to get extension module loader in %{public}s", sharedLibrary);
TAG_LOGE(AAFwkTag::EXT, "Failed to get extension module loader in %{public}s", sharedLibrary);
return DummyExtensionModuleLoader::GetInstance();
}
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -18,6 +18,7 @@
#include "configuration_utils.h"
#include "form_extension_context.h"
#include "form_runtime/js_form_extension.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "runtime.h"
@@ -29,7 +30,7 @@ FormExtension* FormExtension::Create(const std::unique_ptr<Runtime>& runtime)
if (!runtime) {
return new FormExtension();
}
HILOG_INFO("call");
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
switch (runtime->GetLanguage()) {
case Runtime::Language::JS:
return JsFormExtension::Create(runtime);
@@ -44,7 +45,7 @@ void FormExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
const sptr<IRemoteObject> &token)
{
ExtensionBase<FormExtensionContext>::Init(record, application, handler, token);
HILOG_DEBUG("FormExtension begin init");
TAG_LOGD(AAFwkTag::FORM_EXT, "FormExtension begin init");
}
std::shared_ptr<FormExtensionContext> FormExtension::CreateAndInitContext(
@@ -56,7 +57,7 @@ std::shared_ptr<FormExtensionContext> FormExtension::CreateAndInitContext(
std::shared_ptr<FormExtensionContext> context =
ExtensionBase<FormExtensionContext>::CreateAndInitContext(record, application, handler, token);
if (record == nullptr) {
HILOG_ERROR("FormExtension::CreateAndInitContext record is nullptr");
TAG_LOGE(AAFwkTag::FORM_EXT, "FormExtension::CreateAndInitContext record is nullptr");
return context;
}
context->SetAbilityInfo(record->GetAbilityInfo());
@@ -65,51 +66,51 @@ std::shared_ptr<FormExtensionContext> FormExtension::CreateAndInitContext(
OHOS::AppExecFwk::FormProviderInfo FormExtension::OnCreate(const OHOS::AAFwk::Want& want)
{
HILOG_INFO("call");
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
OHOS::AppExecFwk::FormProviderInfo formProviderInfo;
return formProviderInfo;
}
void FormExtension::OnDestroy(const int64_t formId)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::FORM_EXT, "call");
}
void FormExtension::OnEvent(const int64_t formId, const std::string& message)
{
HILOG_INFO("call");
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
}
void FormExtension::OnUpdate(const int64_t formId, const AAFwk::WantParams &wantParams)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::FORM_EXT, "call");
}
void FormExtension::OnCastToNormal(const int64_t formId)
{
HILOG_INFO("call");
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
}
void FormExtension::OnVisibilityChange(const std::map<int64_t, int32_t>& formEventsMap)
{
HILOG_INFO("call");
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
}
FormState FormExtension::OnAcquireFormState(const Want &want)
{
HILOG_INFO("call");
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
return FormState::DEFAULT;
}
bool FormExtension::OnShare(int64_t formId, AAFwk::WantParams &wantParams)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::FORM_EXT, "call");
return false;
}
bool FormExtension::OnAcquireData(int64_t formId, AAFwk::WantParams &wantParams)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::FORM_EXT, "call");
return false;
}
@@ -119,7 +120,7 @@ void FormExtension::OnConfigurationUpdated(const AppExecFwk::Configuration &conf
auto context = GetContext();
if (context == nullptr) {
HILOG_ERROR("Context is invalid.");
TAG_LOGE(AAFwkTag::FORM_EXT, "Context is invalid.");
return;
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Huawei Device Co., Ltd.
* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -16,6 +16,7 @@
#include "form_extension_module_loader.h"
#include "form_extension.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
namespace OHOS::AbilityRuntime {
@@ -24,13 +25,13 @@ FormExtensionModuleLoader::~FormExtensionModuleLoader() = default;
Extension *FormExtensionModuleLoader::Create(const std::unique_ptr<Runtime> &runtime) const
{
HILOG_DEBUG("called");
TAG_LOGD(AAFwkTag::FORM_EXT, "called");
return FormExtension::Create(runtime);
}
std::map<std::string, std::string> FormExtensionModuleLoader::GetParams()
{
HILOG_DEBUG("called");
TAG_LOGD(AAFwkTag::FORM_EXT, "called");
std::map<std::string, std::string> params;
// type means extension type in ExtensionAbilityType of extension_ability_info.h, 0 means form.
params.insert(std::pair<std::string, std::string>("type", "0"));
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Huawei Device Co., Ltd.
* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -15,6 +15,7 @@
#include "free_install_observer_proxy.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "ipc_types.h"
@@ -27,7 +28,7 @@ FreeInstallObserverProxy::FreeInstallObserverProxy(
bool FreeInstallObserverProxy::WriteInterfaceToken(MessageParcel &data)
{
if (!data.WriteInterfaceToken(FreeInstallObserverProxy::GetDescriptor())) {
HILOG_ERROR("write interface token failed.");
TAG_LOGE(AAFwkTag::FREE_INSTALL, "write interface token failed.");
return false;
}
return true;
@@ -45,20 +46,20 @@ void FreeInstallObserverProxy::OnInstallFinished(const std::string &bundleName,
if (!data.WriteString(bundleName) || !data.WriteString(abilityName) || !data.WriteString(startTime) ||
!data.WriteInt32(resultCode)) {
HILOG_ERROR("params is wrong");
TAG_LOGE(AAFwkTag::FREE_INSTALL, "params is wrong");
return;
}
sptr<IRemoteObject> remote = Remote();
if (remote == nullptr) {
HILOG_ERROR("Remote() is NULL");
TAG_LOGE(AAFwkTag::FREE_INSTALL, "Remote() is NULL");
return;
}
int32_t ret = remote->SendRequest(
IFreeInstallObserver::ON_INSTALL_FINISHED,
data, reply, option);
if (ret != NO_ERROR) {
HILOG_WARN("SendRequest is failed, error code: %{public}d", ret);
TAG_LOGW(AAFwkTag::FREE_INSTALL, "SendRequest is failed, error code: %{public}d", ret);
return;
}
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Huawei Device Co., Ltd.
* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -15,6 +15,7 @@
#include "free_install_observer_stub.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "ipc_types.h"
#include "iremote_object.h"
@@ -49,7 +50,7 @@ int FreeInstallObserverStub::OnRemoteRequest(
std::u16string descriptor = FreeInstallObserverStub::GetDescriptor();
std::u16string remoteDescriptor = data.ReadInterfaceToken();
if (descriptor != remoteDescriptor) {
HILOG_ERROR("Local descriptor is not equal to remote");
TAG_LOGE(AAFwkTag::FREE_INSTALL, "Local descriptor is not equal to remote");
return ERR_INVALID_STATE;
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Huawei Device Co., Ltd.
* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -13,6 +13,7 @@
* limitations under the License.
*/
#include "insight_intent_host_client.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
namespace OHOS {
@@ -27,7 +28,7 @@ sptr<InsightIntentHostClient> InsightIntentHostClient::GetInstance()
if (instance_ == nullptr) {
instance_ = new (std::nothrow) InsightIntentHostClient();
if (instance_ == nullptr) {
HILOG_ERROR("failed to create InsightIntentHostClient.");
TAG_LOGE(AAFwkTag::INTENT, "failed to create InsightIntentHostClient.");
}
}
}
@@ -37,7 +38,7 @@ sptr<InsightIntentHostClient> InsightIntentHostClient::GetInstance()
uint64_t InsightIntentHostClient::AddInsightIntentExecute(
const std::shared_ptr<InsightIntentExecuteCallbackInterface> &callback)
{
HILOG_DEBUG("called.");
TAG_LOGD(AAFwkTag::INTENT, "called.");
std::lock_guard<std::mutex> lock(insightIntentExecutebackMutex_);
callbackMap_.emplace(++key_, callback);
return key_;
@@ -45,7 +46,7 @@ uint64_t InsightIntentHostClient::AddInsightIntentExecute(
void InsightIntentHostClient::RemoveInsightIntentExecute(uint64_t key)
{
HILOG_DEBUG("called.");
TAG_LOGD(AAFwkTag::INTENT, "called.");
std::lock_guard<std::mutex> lock(insightIntentExecutebackMutex_);
auto iter = callbackMap_.find(key);
if (iter != callbackMap_.end()) {
@@ -56,14 +57,14 @@ void InsightIntentHostClient::RemoveInsightIntentExecute(uint64_t key)
void InsightIntentHostClient::OnExecuteDone(uint64_t key, int32_t resultCode,
const AppExecFwk::InsightIntentExecuteResult &executeResult)
{
HILOG_DEBUG("called.");
TAG_LOGD(AAFwkTag::INTENT, "called.");
std::shared_ptr<InsightIntentExecuteCallbackInterface> callback = nullptr;
{
std::lock_guard<std::mutex> lock(insightIntentExecutebackMutex_);
auto iter = callbackMap_.find(key);
if (iter == callbackMap_.end()) {
HILOG_INFO("InsightIntent execute callback not found");
TAG_LOGI(AAFwkTag::INTENT, "InsightIntent execute callback not found");
} else {
callback = iter->second;
callbackMap_.erase(key);
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -15,6 +15,7 @@
#include "js_extension_common.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "js_extension_context.h"
#include "js_runtime.h"
@@ -49,9 +50,9 @@ JsExtensionCommon::~JsExtensionCommon()
void JsExtensionCommon::OnConfigurationUpdated(const std::shared_ptr<AppExecFwk::Configuration> &fullConfig)
{
HILOG_INFO("%{public}s called.", __func__);
TAG_LOGI(AAFwkTag::EXT, "%{public}s called.", __func__);
if (!fullConfig) {
HILOG_ERROR("invalid configuration.");
TAG_LOGE(AAFwkTag::EXT, "invalid configuration.");
return;
}
@@ -65,14 +66,14 @@ void JsExtensionCommon::OnConfigurationUpdated(const std::shared_ptr<AppExecFwk:
void JsExtensionCommon::OnMemoryLevel(int level)
{
HILOG_DEBUG("%{public}s called.", __func__);
TAG_LOGD(AAFwkTag::EXT, "%{public}s called.", __func__);
HandleScope handleScope(jsRuntime_);
auto env = jsRuntime_.GetNapiEnv();
napi_value obj = jsObj_.GetNapiValue();
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
HILOG_ERROR("Failed to get js instance object");
TAG_LOGE(AAFwkTag::EXT, "Failed to get js instance object");
return;
}
@@ -85,23 +86,23 @@ void JsExtensionCommon::OnMemoryLevel(int level)
napi_value JsExtensionCommon::CallObjectMethod(const char* name, napi_value const* argv, size_t argc)
{
HILOG_DEBUG("name: %{public}s", name);
TAG_LOGD(AAFwkTag::EXT, "name: %{public}s", name);
HandleScope handleScope(jsRuntime_);
auto env = jsRuntime_.GetNapiEnv();
napi_value obj = jsObj_.GetNapiValue();
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
HILOG_ERROR("Failed to get js instance object");
TAG_LOGE(AAFwkTag::EXT, "Failed to get js instance object");
return nullptr;
}
napi_value method = nullptr;
napi_get_named_property(env, obj, name, &method);
if (!CheckTypeForNapiValue(env, obj, napi_function)) {
HILOG_ERROR("Failed to get '%{public}s' from js object", name);
TAG_LOGE(AAFwkTag::EXT, "Failed to get '%{public}s' from js object", name);
return nullptr;
}
HILOG_DEBUG("(%{public}s), success", name);
TAG_LOGD(AAFwkTag::EXT, "(%{public}s), success", name);
napi_value result = nullptr;
napi_call_function(env, obj, method, argc, argv, &result);
return result;
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Huawei Device Co., Ltd.
* Copyright (c) 2023-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -15,6 +15,7 @@
#include "js_free_install_observer.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "hitrace_meter.h"
#include "js_error_utils.h"
@@ -31,7 +32,7 @@ JsFreeInstallObserver::~JsFreeInstallObserver() = default;
void JsFreeInstallObserver::OnInstallFinished(const std::string &bundleName, const std::string &abilityName,
const std::string &startTime, const int &resultCode)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
wptr<JsFreeInstallObserver> jsObserver = this;
std::unique_ptr<NapiAsyncTask::CompleteCallback> complete = std::make_unique<NapiAsyncTask::CompleteCallback>
([jsObserver, bundleName, abilityName, startTime, resultCode](napi_env env, NapiAsyncTask &task,
@@ -50,7 +51,7 @@ void JsFreeInstallObserver::OnInstallFinished(const std::string &bundleName, con
void JsFreeInstallObserver::OnInstallFinished(const std::string &bundleName, const std::string &abilityName,
const std::string &startTime, napi_value abilityResult)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
for (auto it = jsObserverObjectList_.begin(); it != jsObserverObjectList_.end();) {
if ((it->bundleName == bundleName) && (it->abilityName == abilityName) && (it->startTime == startTime)) {
if (it->callback == nullptr && it->deferred == nullptr) {
@@ -68,7 +69,8 @@ void JsFreeInstallObserver::OnInstallFinished(const std::string &bundleName, con
}
FinishAsyncTrace(HITRACE_TAG_ABILITY_MANAGER, "StartFreeInstall", atoi(startTime.c_str()));
it = jsObserverObjectList_.erase(it);
HILOG_DEBUG("the size of jsObserverObjectList_:%{public}zu", jsObserverObjectList_.size());
TAG_LOGD(AAFwkTag::FREE_INSTALL,
"the size of jsObserverObjectList_:%{public}zu", jsObserverObjectList_.size());
} else {
it++;
}
@@ -78,7 +80,7 @@ void JsFreeInstallObserver::OnInstallFinished(const std::string &bundleName, con
void JsFreeInstallObserver::HandleOnInstallFinished(const std::string &bundleName, const std::string &abilityName,
const std::string &startTime, const int &resultCode)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
for (auto it = jsObserverObjectList_.begin(); it != jsObserverObjectList_.end();) {
if ((it->bundleName == bundleName) && (it->abilityName == abilityName) && (it->startTime == startTime)) {
if (it->callback == nullptr && it->deferred == nullptr) {
@@ -96,7 +98,8 @@ void JsFreeInstallObserver::HandleOnInstallFinished(const std::string &bundleNam
}
FinishAsyncTrace(HITRACE_TAG_ABILITY_MANAGER, "StartFreeInstall", atoi(startTime.c_str()));
it = jsObserverObjectList_.erase(it);
HILOG_DEBUG("the size of jsObserverObjectList_:%{public}zu", jsObserverObjectList_.size());
TAG_LOGD(
AAFwkTag::FREE_INSTALL, "the size of jsObserverObjectList_:%{public}zu", jsObserverObjectList_.size());
} else {
it++;
}
@@ -105,9 +108,9 @@ void JsFreeInstallObserver::HandleOnInstallFinished(const std::string &bundleNam
void JsFreeInstallObserver::CallCallback(napi_ref callback, int32_t resultCode)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
if (callback == nullptr) {
HILOG_ERROR("callback is nullptr.");
TAG_LOGE(AAFwkTag::FREE_INSTALL, "callback is nullptr.");
return;
}
napi_value value;
@@ -124,9 +127,9 @@ void JsFreeInstallObserver::CallCallback(napi_ref callback, int32_t resultCode)
void JsFreeInstallObserver::CallCallback(napi_ref callback, napi_value abilityResult)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
if (callback == nullptr) {
HILOG_ERROR("callback is nullptr.");
TAG_LOGE(AAFwkTag::FREE_INSTALL, "callback is nullptr.");
return;
}
napi_value argv[] = {
@@ -141,7 +144,7 @@ void JsFreeInstallObserver::CallCallback(napi_ref callback, napi_value abilityRe
void JsFreeInstallObserver::CallPromise(napi_deferred deferred, int32_t resultCode)
{
if (deferred == nullptr) {
HILOG_ERROR("deferred is nullptr.");
TAG_LOGE(AAFwkTag::FREE_INSTALL, "deferred is nullptr.");
return;
}
if (resultCode == ERR_OK) {
@@ -156,7 +159,7 @@ void JsFreeInstallObserver::CallPromise(napi_deferred deferred, int32_t resultCo
void JsFreeInstallObserver::CallPromise(napi_deferred deferred, napi_value abilityResult)
{
if (deferred == nullptr) {
HILOG_ERROR("deferred is nullptr.");
TAG_LOGE(AAFwkTag::FREE_INSTALL, "deferred is nullptr.");
return;
}
napi_resolve_deferred(env_, deferred, abilityResult);
@@ -165,11 +168,11 @@ void JsFreeInstallObserver::CallPromise(napi_deferred deferred, napi_value abili
void JsFreeInstallObserver::AddJsObserverObject(const std::string &bundleName, const std::string &abilityName,
const std::string &startTime, napi_value jsObserverObject, napi_value* result, bool isAbilityResult)
{
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
for (auto it = jsObserverObjectList_.begin(); it != jsObserverObjectList_.end(); ++it) {
if (it->bundleName == bundleName && it->abilityName == abilityName &&
it->startTime == startTime) {
HILOG_WARN("The jsObject has been added.");
TAG_LOGW(AAFwkTag::FREE_INSTALL, "The jsObject has been added.");
return;
}
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -21,6 +21,7 @@
#include "ability_manager_client.h"
#include "configuration_utils.h"
#include "hitrace_meter.h"
#include "hilog_tag_wrapper.h"
#include "hilog_wrapper.h"
#include "insight_intent_execute_param.h"
#include "insight_intent_execute_result.h"
@@ -63,7 +64,7 @@ napi_value PromiseCallback(napi_env env, napi_callback_info info)
napi_value OnConnectPromiseCallback(napi_env env, napi_callback_info info)
{
HILOG_DEBUG("enter");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "enter");
void *data = nullptr;
size_t argc = ARGC_MAX_COUNT;
napi_value argv[ARGC_MAX_COUNT] = {nullptr};
@@ -76,7 +77,7 @@ napi_value OnConnectPromiseCallback(napi_env env, napi_callback_info info)
callbackInfo->Call(service);
AppExecFwk::AbilityTransactionCallbackInfo<sptr<IRemoteObject>>::Destroy(callbackInfo);
data = nullptr;
HILOG_DEBUG("end");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "end");
return nullptr;
}
}
@@ -86,19 +87,19 @@ using namespace OHOS::AppExecFwk;
napi_value AttachServiceExtensionContext(napi_env env, void *value, void *)
{
if (value == nullptr) {
HILOG_WARN("invalid parameter.");
TAG_LOGW(AAFwkTag::SERVICE_EXT, "invalid parameter.");
return nullptr;
}
auto ptr = reinterpret_cast<std::weak_ptr<ServiceExtensionContext> *>(value)->lock();
if (ptr == nullptr) {
HILOG_WARN("invalid context.");
TAG_LOGW(AAFwkTag::SERVICE_EXT, "invalid context.");
return nullptr;
}
napi_value object = CreateJsServiceExtensionContext(env, ptr);
auto sysModule = JsRuntime::LoadSystemModuleByEngine(env,
"application.ServiceExtensionContext", &object, 1);
if (sysModule == nullptr) {
HILOG_WARN("load module failed.");
TAG_LOGW(AAFwkTag::SERVICE_EXT, "load module failed.");
return nullptr;
}
auto contextObj = sysModule->GetNapiValue();
@@ -107,7 +108,7 @@ napi_value AttachServiceExtensionContext(napi_env env, void *value, void *)
auto workContext = new (std::nothrow) std::weak_ptr<ServiceExtensionContext>(ptr);
napi_wrap(env, contextObj, workContext,
[](napi_env, void *data, void *) {
HILOG_DEBUG("Finalizer for weak_ptr service extension context is called");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Finalizer for weak_ptr service extension context is called");
delete static_cast<std::weak_ptr<ServiceExtensionContext> *>(data);
},
nullptr, nullptr);
@@ -122,7 +123,7 @@ JsServiceExtension* JsServiceExtension::Create(const std::unique_ptr<Runtime>& r
JsServiceExtension::JsServiceExtension(JsRuntime& jsRuntime) : jsRuntime_(jsRuntime) {}
JsServiceExtension::~JsServiceExtension()
{
HILOG_DEBUG("Js service extension destructor.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Js service extension destructor.");
auto context = GetContext();
if (context) {
context->Unbind();
@@ -140,13 +141,13 @@ void JsServiceExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
std::string srcPath = "";
GetSrcPath(srcPath);
if (srcPath.empty()) {
HILOG_ERROR("Failed to get srcPath");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get srcPath");
return;
}
std::string moduleName(Extension::abilityInfo_->moduleName);
moduleName.append("::").append(abilityInfo_->name);
HILOG_DEBUG("JsServiceExtension::Init moduleName:%{public}s,srcPath:%{public}s.",
TAG_LOGD(AAFwkTag::SERVICE_EXT, "JsServiceExtension::Init moduleName:%{public}s,srcPath:%{public}s.",
moduleName.c_str(), srcPath.c_str());
HandleScope handleScope(jsRuntime_);
auto env = jsRuntime_.GetNapiEnv();
@@ -154,14 +155,14 @@ void JsServiceExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
jsObj_ = jsRuntime_.LoadModule(
moduleName, srcPath, abilityInfo_->hapPath, abilityInfo_->compileMode == CompileMode::ES_MODULE);
if (jsObj_ == nullptr) {
HILOG_ERROR("Failed to get jsObj_");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get jsObj_");
return;
}
HILOG_DEBUG("ConvertNativeValueTo.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "ConvertNativeValueTo.");
napi_value obj = jsObj_->GetNapiValue();
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
HILOG_ERROR("Failed to get JsServiceExtension object");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get JsServiceExtension object");
return;
}
@@ -175,7 +176,7 @@ void JsServiceExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
if (context != nullptr && appContext != nullptr) {
auto appConfig = appContext->GetConfiguration();
if (appConfig != nullptr) {
HILOG_DEBUG("Original config dump: %{public}s", appConfig->GetName().c_str());
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Original config dump: %{public}s", appConfig->GetName().c_str());
context->SetConfiguration(std::make_shared<Configuration>(*appConfig));
}
}
@@ -185,29 +186,29 @@ void JsServiceExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
void JsServiceExtension::ListenWMS()
{
#ifdef SUPPORT_GRAPHICS
HILOG_DEBUG("RegisterDisplayListener");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "RegisterDisplayListener");
auto abilityManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
if (abilityManager == nullptr) {
HILOG_ERROR("Failed to get SaMgr.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get SaMgr.");
return;
}
auto jsServiceExtension = std::static_pointer_cast<JsServiceExtension>(shared_from_this());
displayListener_ = sptr<JsServiceExtensionDisplayListener>::MakeSptr(jsServiceExtension);
if (displayListener_ == nullptr) {
HILOG_ERROR("Failed to create display listener.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to create display listener.");
return;
}
auto listener = sptr<SystemAbilityStatusChangeListener>::MakeSptr(displayListener_);
if (listener == nullptr) {
HILOG_ERROR("Failed to create status change listener.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to create status change listener.");
return;
}
auto ret = abilityManager->SubscribeSystemAbility(WINDOW_MANAGER_SERVICE_ID, listener);
if (ret != 0) {
HILOG_ERROR("subscribe system ability failed, ret = %{public}d.", ret);
TAG_LOGE(AAFwkTag::SERVICE_EXT, "subscribe system ability failed, ret = %{public}d.", ret);
}
#endif
}
@@ -215,7 +216,7 @@ void JsServiceExtension::ListenWMS()
void JsServiceExtension::SystemAbilityStatusChangeListener::OnAddSystemAbility(int32_t systemAbilityId,
const std::string& deviceId)
{
HILOG_DEBUG("systemAbilityId: %{public}d add", systemAbilityId);
TAG_LOGD(AAFwkTag::SERVICE_EXT, "systemAbilityId: %{public}d add", systemAbilityId);
if (systemAbilityId == WINDOW_MANAGER_SERVICE_ID) {
Rosen::DisplayManager::GetInstance().RegisterDisplayListener(tmpDisplayListener_);
}
@@ -225,26 +226,26 @@ void JsServiceExtension::BindContext(napi_env env, napi_value obj)
{
auto context = GetContext();
if (context == nullptr) {
HILOG_ERROR("Failed to get context");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get context");
return;
}
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
napi_value contextObj = CreateJsServiceExtensionContext(env, context);
shellContextRef_ = JsRuntime::LoadSystemModuleByEngine(env, "application.ServiceExtensionContext",
&contextObj, ARGC_ONE);
if (shellContextRef_ == nullptr) {
HILOG_ERROR("Failed to load module");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to load module");
return;
}
contextObj = shellContextRef_->GetNapiValue();
if (!CheckTypeForNapiValue(env, contextObj, napi_object)) {
HILOG_ERROR("Failed to get context native object");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get context native object");
return;
}
auto workContext = new (std::nothrow) std::weak_ptr<ServiceExtensionContext>(context);
napi_coerce_to_native_binding_object(
env, contextObj, DetachCallbackFunc, AttachServiceExtensionContext, workContext, nullptr);
HILOG_DEBUG("Bind.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Bind.");
context->Bind(jsRuntime_, shellContextRef_.get());
napi_set_named_property(env, obj, "context", contextObj);
@@ -254,19 +255,19 @@ void JsServiceExtension::BindContext(napi_env env, napi_value obj)
},
nullptr, nullptr);
HILOG_DEBUG("end.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "end.");
}
void JsServiceExtension::OnStart(const AAFwk::Want &want)
{
Extension::OnStart(want);
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
auto context = GetContext();
if (context != nullptr) {
int32_t displayId = static_cast<int32_t>(Rosen::DisplayManager::GetInstance().GetDefaultDisplayId());
displayId = want.GetIntParam(Want::PARAM_RESV_DISPLAY_ID, displayId);
HILOG_DEBUG("displayId %{public}d", displayId);
TAG_LOGD(AAFwkTag::SERVICE_EXT, "displayId %{public}d", displayId);
auto configUtils = std::make_shared<ConfigurationUtils>();
configUtils->InitDisplayConfig(displayId, context->GetConfiguration(), context->GetResourceManager());
}
@@ -282,21 +283,21 @@ void JsServiceExtension::OnStart(const AAFwk::Want &want)
napi_value napiWant = OHOS::AppExecFwk::WrapWant(env, want);
napi_value argv[] = {napiWant};
CallObjectMethod("onCreate", argv, ARGC_ONE);
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "ok");
}
void JsServiceExtension::OnStop()
{
ServiceExtension::OnStop();
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
CallObjectMethod("onDestroy");
bool ret = ConnectionManager::GetInstance().DisconnectCaller(GetContext()->GetToken());
if (ret) {
ConnectionManager::GetInstance().ReportConnectionLeakEvent(getpid(), gettid());
HILOG_DEBUG("The service extension connection is not disconnected.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "The service extension connection is not disconnected.");
}
Rosen::DisplayManager::GetInstance().UnregisterDisplayListener(displayListener_);
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "ok");
}
sptr<IRemoteObject> JsServiceExtension::OnConnect(const AAFwk::Want &want)
@@ -306,7 +307,7 @@ sptr<IRemoteObject> JsServiceExtension::OnConnect(const AAFwk::Want &want)
napi_env env = jsRuntime_.GetNapiEnv();
auto remoteObj = NAPI_ohos_rpc_getNativeRemoteObject(env, result);
if (remoteObj == nullptr) {
HILOG_ERROR("remoteObj null.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "remoteObj null.");
}
return remoteObj;
}
@@ -322,7 +323,7 @@ sptr<IRemoteObject> JsServiceExtension::OnConnect(const AAFwk::Want &want,
isAsyncCallback = false;
sptr<IRemoteObject> remoteObj = NAPI_ohos_rpc_getNativeRemoteObject(env, result);
if (remoteObj == nullptr) {
HILOG_ERROR("remoteObj null.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "remoteObj null.");
}
return remoteObj;
}
@@ -330,19 +331,19 @@ sptr<IRemoteObject> JsServiceExtension::OnConnect(const AAFwk::Want &want,
bool callResult = false;
do {
if (!CheckTypeForNapiValue(env, result, napi_object)) {
HILOG_ERROR("CallPromise, error to convert native value to NativeObject.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, error to convert native value to NativeObject.");
break;
}
napi_value then = nullptr;
napi_get_named_property(env, result, "then", &then);
if (then == nullptr) {
HILOG_ERROR("CallPromise, error to get property: then.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, error to get property: then.");
break;
}
bool isCallable = false;
napi_is_callable(env, then, &isCallable);
if (!isCallable) {
HILOG_ERROR("CallPromise, property then is not callable");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, property then is not callable");
break;
}
napi_value promiseCallback = nullptr;
@@ -354,7 +355,7 @@ sptr<IRemoteObject> JsServiceExtension::OnConnect(const AAFwk::Want &want,
} while (false);
if (!callResult) {
HILOG_ERROR("error to call promise.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "error to call promise.");
isAsyncCallback = false;
} else {
isAsyncCallback = true;
@@ -367,9 +368,9 @@ void JsServiceExtension::OnDisconnect(const AAFwk::Want &want)
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HandleScope handleScope(jsRuntime_);
Extension::OnDisconnect(want);
HILOG_DEBUG("%{public}s begin.", __func__);
TAG_LOGD(AAFwkTag::SERVICE_EXT, "%{public}s begin.", __func__);
CallOnDisconnect(want, false);
HILOG_DEBUG("%{public}s end.", __func__);
TAG_LOGD(AAFwkTag::SERVICE_EXT, "%{public}s end.", __func__);
}
void JsServiceExtension::OnDisconnect(const AAFwk::Want &want,
@@ -378,7 +379,7 @@ void JsServiceExtension::OnDisconnect(const AAFwk::Want &want,
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HandleScope handleScope(jsRuntime_);
Extension::OnDisconnect(want);
HILOG_DEBUG("%{public}s start.", __func__);
TAG_LOGD(AAFwkTag::SERVICE_EXT, "%{public}s start.", __func__);
napi_value result = CallOnDisconnect(want, true);
bool isPromise = CheckPromise(result);
if (!isPromise) {
@@ -387,19 +388,19 @@ void JsServiceExtension::OnDisconnect(const AAFwk::Want &want,
}
bool callResult = CallPromise(result, callbackInfo);
if (!callResult) {
HILOG_ERROR("error to call promise.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "error to call promise.");
isAsyncCallback = false;
} else {
isAsyncCallback = true;
}
HILOG_DEBUG("%{public}s end.", __func__);
TAG_LOGD(AAFwkTag::SERVICE_EXT, "%{public}s end.", __func__);
}
void JsServiceExtension::OnCommand(const AAFwk::Want &want, bool restart, int startId)
{
Extension::OnCommand(want, restart, startId);
HILOG_DEBUG("restart=%{public}s,startId=%{public}d.",
TAG_LOGD(AAFwkTag::SERVICE_EXT, "restart=%{public}s,startId=%{public}d.",
restart ? "true" : "false",
startId);
// wrap want
@@ -411,48 +412,49 @@ void JsServiceExtension::OnCommand(const AAFwk::Want &want, bool restart, int st
napi_create_int32(env, startId, &napiStartId);
napi_value argv[] = {napiWant, napiStartId};
CallObjectMethod("onRequest", argv, ARGC_TWO);
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "ok");
}
bool JsServiceExtension::HandleInsightIntent(const AAFwk::Want &want)
{
HILOG_DEBUG("called.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "called.");
auto callback = std::make_unique<InsightIntentExecutorAsyncCallback>();
callback.reset(InsightIntentExecutorAsyncCallback::Create());
if (callback == nullptr) {
HILOG_ERROR("Create async callback failed.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Create async callback failed.");
return false;
}
auto executeParam = std::make_shared<AppExecFwk::InsightIntentExecuteParam>();
bool ret = AppExecFwk::InsightIntentExecuteParam::GenerateFromWant(want, *executeParam);
if (!ret) {
HILOG_ERROR("Generate execute param failed.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Generate execute param failed.");
InsightIntentExecutorMgr::TriggerCallbackInner(std::move(callback),
static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INVALID_PARAM));
return false;
}
HILOG_DEBUG("Insight intent bundleName: %{public}s, moduleName: %{public}s, abilityName: %{public}s"
"insightIntentName: %{public}s, executeMode: %{public}d, intentId: %{public}" PRIu64"",
TAG_LOGD(AAFwkTag::SERVICE_EXT,
"Insight intent bundleName: %{public}s, moduleName: %{public}s, abilityName: %{public}s"
"insightIntentName: %{public}s, executeMode: %{public}d, intentId: %{public}" PRIu64 "",
executeParam->bundleName_.c_str(), executeParam->moduleName_.c_str(), executeParam->abilityName_.c_str(),
executeParam->insightIntentName_.c_str(), executeParam->executeMode_, executeParam->insightIntentId_);
auto asyncCallback = [weak = weak_from_this(), intentId = executeParam->insightIntentId_]
(AppExecFwk::InsightIntentExecuteResult result) {
HILOG_DEBUG("Execute insight intent finshed, intentId %{public}" PRIu64"", intentId);
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Execute insight intent finshed, intentId %{public}" PRIu64"", intentId);
auto extension = weak.lock();
if (extension == nullptr) {
HILOG_ERROR("extension is nullptr.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "extension is nullptr.");
return;
}
auto ret = extension->OnInsightIntentExecuteDone(intentId, result);
if (!ret) {
HILOG_ERROR("OnInsightIntentExecuteDone failed.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "OnInsightIntentExecuteDone failed.");
}
};
callback->Push(asyncCallback);
InsightIntentExecutorInfo executorInfo;
ret = GetInsightIntentExecutorInfo(want, executeParam, executorInfo);
if (!ret) {
HILOG_ERROR("Get Intent executor failed.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Get Intent executor failed.");
InsightIntentExecutorMgr::TriggerCallbackInner(std::move(callback),
static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INVALID_PARAM));
return false;
@@ -460,7 +462,7 @@ bool JsServiceExtension::HandleInsightIntent(const AAFwk::Want &want)
ret = DelayedSingleton<InsightIntentExecutorMgr>::GetInstance()->ExecuteInsightIntent(
jsRuntime_, executorInfo, std::move(callback));
if (!ret) {
HILOG_ERROR("Execute insight intent failed.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Execute insight intent failed.");
return false;
}
return true;
@@ -470,10 +472,10 @@ bool JsServiceExtension::GetInsightIntentExecutorInfo(const Want &want,
const std::shared_ptr<AppExecFwk::InsightIntentExecuteParam> &executeParam,
InsightIntentExecutorInfo &executorInfo)
{
HILOG_DEBUG("called.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "called.");
auto context = GetContext();
if (executeParam == nullptr || context == nullptr || abilityInfo_ == nullptr) {
HILOG_ERROR("Param invalid.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Param invalid.");
return false;
}
@@ -489,20 +491,20 @@ bool JsServiceExtension::GetInsightIntentExecutorInfo(const Want &want,
bool JsServiceExtension::OnInsightIntentExecuteDone(uint64_t intentId,
const AppExecFwk::InsightIntentExecuteResult &result)
{
HILOG_INFO("Notify execute done, intentId %{public}" PRIu64"", intentId);
TAG_LOGI(AAFwkTag::SERVICE_EXT, "Notify execute done, intentId %{public}" PRIu64"", intentId);
auto context = GetContext();
if (context == nullptr) {
HILOG_ERROR("context is null.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "context is null.");
return false;
}
auto token = context->GetToken();
if (token == nullptr) {
HILOG_ERROR("token is null.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "token is null.");
return false;
}
auto ret = AAFwk::AbilityManagerClient::GetInstance()->ExecuteInsightIntentDone(token, intentId, result);
if (ret != ERR_OK) {
HILOG_ERROR("Notify execute done faild.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Notify execute done faild.");
return false;
}
return true;
@@ -510,10 +512,10 @@ bool JsServiceExtension::OnInsightIntentExecuteDone(uint64_t intentId,
napi_value JsServiceExtension::CallObjectMethod(const char* name, napi_value const* argv, size_t argc)
{
HILOG_DEBUG("name:%{public}s", name);
TAG_LOGD(AAFwkTag::SERVICE_EXT, "name:%{public}s", name);
if (!jsObj_) {
HILOG_WARN("Not found ServiceExtension.js");
TAG_LOGW(AAFwkTag::SERVICE_EXT, "Not found ServiceExtension.js");
return nullptr;
}
@@ -522,17 +524,17 @@ napi_value JsServiceExtension::CallObjectMethod(const char* name, napi_value con
napi_value obj = jsObj_->GetNapiValue();
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
HILOG_ERROR("Failed to get ServiceExtension object");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get ServiceExtension object");
return nullptr;
}
napi_value method = nullptr;
napi_get_named_property(env, obj, name, &method);
if (!CheckTypeForNapiValue(env, method, napi_function)) {
HILOG_ERROR("Failed to get '%{public}s' from ServiceExtension object", name);
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get '%{public}s' from ServiceExtension object", name);
return nullptr;
}
HILOG_DEBUG("CallFunction(%{public}s) ok", name);
TAG_LOGD(AAFwkTag::SERVICE_EXT, "CallFunction(%{public}s) ok", name);
napi_value result = nullptr;
napi_call_function(env, obj, method, argc, argv, &result);
return result;
@@ -540,7 +542,7 @@ napi_value JsServiceExtension::CallObjectMethod(const char* name, napi_value con
void JsServiceExtension::GetSrcPath(std::string &srcPath)
{
HILOG_DEBUG("GetSrcPath start.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "GetSrcPath start.");
if (!Extension::abilityInfo_->isModuleJson) {
/* temporary compatibility api8 + config.json */
srcPath.append(Extension::abilityInfo_->package);
@@ -564,33 +566,33 @@ napi_value JsServiceExtension::CallOnConnect(const AAFwk::Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
Extension::OnConnect(want);
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
napi_env env = jsRuntime_.GetNapiEnv();
napi_value napiWant = OHOS::AppExecFwk::WrapWant(env, want);
napi_value argv[] = {napiWant};
if (!jsObj_) {
HILOG_WARN("Not found ServiceExtension.js");
TAG_LOGW(AAFwkTag::SERVICE_EXT, "Not found ServiceExtension.js");
return nullptr;
}
napi_value obj = jsObj_->GetNapiValue();
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
HILOG_ERROR("Failed to get ServiceExtension object");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get ServiceExtension object");
return nullptr;
}
napi_value method = nullptr;
napi_get_named_property(env, obj, "onConnect", &method);
if (method == nullptr) {
HILOG_ERROR("Failed to get onConnect from ServiceExtension object");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get onConnect from ServiceExtension object");
return nullptr;
}
napi_value remoteNative = nullptr;
napi_call_function(env, obj, method, ARGC_ONE, argv, &remoteNative);
if (remoteNative == nullptr) {
HILOG_ERROR("remoteNative nullptr.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "remoteNative nullptr.");
}
HILOG_DEBUG("ok");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "ok");
return remoteNative;
}
@@ -601,20 +603,20 @@ napi_value JsServiceExtension::CallOnDisconnect(const AAFwk::Want &want, bool wi
napi_value napiWant = OHOS::AppExecFwk::WrapWant(env, want);
napi_value argv[] = { napiWant };
if (!jsObj_) {
HILOG_WARN("Not found ServiceExtension.js");
TAG_LOGW(AAFwkTag::SERVICE_EXT, "Not found ServiceExtension.js");
return nullptr;
}
napi_value obj = jsObj_->GetNapiValue();
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
HILOG_ERROR("Failed to get ServiceExtension object");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get ServiceExtension object");
return nullptr;
}
napi_value method = nullptr;
napi_get_named_property(env, obj, "onDisconnect", &method);
if (method == nullptr) {
HILOG_ERROR("Failed to get onDisconnect from ServiceExtension object");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get onDisconnect from ServiceExtension object");
return nullptr;
}
@@ -631,14 +633,14 @@ napi_value JsServiceExtension::CallOnDisconnect(const AAFwk::Want &want, bool wi
bool JsServiceExtension::CheckPromise(napi_value result)
{
if (result == nullptr) {
HILOG_DEBUG("CheckPromise, result is nullptr, no need to call promise.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "CheckPromise, result is nullptr, no need to call promise.");
return false;
}
napi_env env = jsRuntime_.GetNapiEnv();
bool isPromise = false;
napi_is_promise(env, result, &isPromise);
if (!isPromise) {
HILOG_DEBUG("CheckPromise, result is not promise, no need to call promise.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "CheckPromise, result is not promise, no need to call promise.");
return false;
}
return true;
@@ -648,19 +650,19 @@ bool JsServiceExtension::CallPromise(napi_value result, AppExecFwk::AbilityTrans
{
napi_env env = jsRuntime_.GetNapiEnv();
if (!CheckTypeForNapiValue(env, result, napi_object)) {
HILOG_ERROR("CallPromise, Error to convert native value to NativeObject.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, Error to convert native value to NativeObject.");
return false;
}
napi_value then = nullptr;
napi_get_named_property(env, result, "then", &then);
if (then == nullptr) {
HILOG_ERROR("CallPromise, Error to get property: then.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, Error to get property: then.");
return false;
}
bool isCallable = false;
napi_is_callable(env, then, &isCallable);
if (!isCallable) {
HILOG_ERROR("CallPromise, Property then is not callable.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, Property then is not callable.");
return false;
}
HandleScope handleScope(jsRuntime_);
@@ -669,43 +671,43 @@ bool JsServiceExtension::CallPromise(napi_value result, AppExecFwk::AbilityTrans
callbackInfo, &promiseCallback);
napi_value argv[1] = { promiseCallback };
napi_call_function(env, result, then, 1, argv, nullptr);
HILOG_DEBUG("end");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "end");
return true;
}
void JsServiceExtension::OnConfigurationUpdated(const AppExecFwk::Configuration& configuration)
{
ServiceExtension::OnConfigurationUpdated(configuration);
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
auto context = GetContext();
if (context == nullptr) {
HILOG_ERROR("Context is invalid.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Context is invalid.");
return;
}
auto contextConfig = context->GetConfiguration();
if (contextConfig != nullptr) {
HILOG_DEBUG("Config dump: %{public}s", contextConfig->GetName().c_str());
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Config dump: %{public}s", contextConfig->GetName().c_str());
std::vector<std::string> changeKeyV;
contextConfig->CompareDifferent(changeKeyV, configuration);
if (!changeKeyV.empty()) {
contextConfig->Merge(changeKeyV, configuration);
}
HILOG_DEBUG("Config dump after merge: %{public}s", contextConfig->GetName().c_str());
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Config dump after merge: %{public}s", contextConfig->GetName().c_str());
}
ConfigurationUpdated();
}
void JsServiceExtension::ConfigurationUpdated()
{
HILOG_DEBUG("called.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "called.");
HandleScope handleScope(jsRuntime_);
napi_env env = jsRuntime_.GetNapiEnv();
// Notify extension context
auto fullConfig = GetContext()->GetConfiguration();
if (!fullConfig) {
HILOG_ERROR("configuration is nullptr.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "configuration is nullptr.");
return;
}
@@ -718,20 +720,20 @@ void JsServiceExtension::ConfigurationUpdated()
void JsServiceExtension::Dump(const std::vector<std::string> &params, std::vector<std::string> &info)
{
Extension::Dump(params, info);
HILOG_DEBUG("call");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
HandleScope handleScope(jsRuntime_);
napi_env env = jsRuntime_.GetNapiEnv();
// create js array object of params
napi_value argv[] = { CreateNativeArray(env, params) };
if (!jsObj_) {
HILOG_WARN("Not found ServiceExtension.js");
TAG_LOGW(AAFwkTag::SERVICE_EXT, "Not found ServiceExtension.js");
return;
}
napi_value obj = jsObj_->GetNapiValue();
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
HILOG_ERROR("Failed to get ServiceExtension object");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get ServiceExtension object");
return;
}
@@ -741,15 +743,15 @@ void JsServiceExtension::Dump(const std::vector<std::string> &params, std::vecto
method = nullptr;
napi_get_named_property(env, obj, "dump", &method);
if (!CheckTypeForNapiValue(env, method, napi_function)) {
HILOG_ERROR("Failed to get onConnect from ServiceExtension object");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get onConnect from ServiceExtension object");
return;
}
}
HILOG_DEBUG("success");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "success");
napi_value dumpInfo = nullptr;
napi_call_function(env, obj, method, ARGC_ONE, argv, &dumpInfo);
if (dumpInfo == nullptr) {
HILOG_ERROR("dumpInfo nullptr.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "dumpInfo nullptr.");
return;
}
uint32_t len = 0;
@@ -759,45 +761,45 @@ void JsServiceExtension::Dump(const std::vector<std::string> &params, std::vecto
napi_value element = nullptr;
napi_get_element(env, dumpInfo, i, &element);
if (!ConvertFromJsValue(env, element, dumpInfoStr)) {
HILOG_ERROR("Parse dumpInfoStr failed.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Parse dumpInfoStr failed.");
return;
}
info.push_back(dumpInfoStr);
}
HILOG_DEBUG("Dump info size: %{public}zu", info.size());
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Dump info size: %{public}zu", info.size());
}
#ifdef SUPPORT_GRAPHICS
void JsServiceExtension::OnCreate(Rosen::DisplayId displayId)
{
HILOG_DEBUG("enter.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "enter.");
}
void JsServiceExtension::OnDestroy(Rosen::DisplayId displayId)
{
HILOG_DEBUG("exit.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "exit.");
}
void JsServiceExtension::OnChange(Rosen::DisplayId displayId)
{
HILOG_DEBUG("displayId: %{public}" PRIu64"", displayId);
TAG_LOGD(AAFwkTag::SERVICE_EXT, "displayId: %{public}" PRIu64"", displayId);
auto context = GetContext();
if (context == nullptr) {
HILOG_ERROR("Context is invalid.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Context is invalid.");
return;
}
auto contextConfig = context->GetConfiguration();
if (contextConfig == nullptr) {
HILOG_ERROR("Configuration is invalid.");
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Configuration is invalid.");
return;
}
HILOG_DEBUG("Config dump: %{public}s", contextConfig->GetName().c_str());
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Config dump: %{public}s", contextConfig->GetName().c_str());
bool configChanged = false;
auto configUtils = std::make_shared<ConfigurationUtils>();
configUtils->UpdateDisplayConfig(displayId, contextConfig, context->GetResourceManager(), configChanged);
HILOG_DEBUG("Config dump after update: %{public}s", contextConfig->GetName().c_str());
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Config dump after update: %{public}s", contextConfig->GetName().c_str());
if (configChanged) {
auto jsServiceExtension = std::static_pointer_cast<JsServiceExtension>(shared_from_this());
@@ -811,7 +813,7 @@ void JsServiceExtension::OnChange(Rosen::DisplayId displayId)
}
}
HILOG_DEBUG("finished.");
TAG_LOGD(AAFwkTag::SERVICE_EXT, "finished.");
}
#endif
} // AbilityRuntime