From 212f22e2faef2aa628478ca6334059f45f4b96d2 Mon Sep 17 00:00:00 2001 From: mingxihua Date: Thu, 20 Jan 2022 07:38:37 +0000 Subject: [PATCH 1/9] IssueNo:#I4PCM1:ce/de context Description: ce/de context Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: mingxihua --- .../include/ability_context_impl.h | 1 + .../src/ability_context_impl.cpp | 8 +++ .../native/ability_runtime/context/context.h | 7 +++ .../ability_runtime/context/context_impl.cpp | 47 ++++++++++++----- .../ability_runtime/context/context_impl.h | 14 ++--- .../context/js_context_utils.cpp | 44 ++++++++++++++++ .../kits/napi/aafwk/app/context/context.js | 51 +++++++++++++++---- 7 files changed, 143 insertions(+), 29 deletions(-) mode change 100644 => 100755 frameworks/kits/appkit/native/ability_runtime/context/context.h mode change 100644 => 100755 frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp mode change 100644 => 100755 frameworks/kits/appkit/native/ability_runtime/context/context_impl.h mode change 100644 => 100755 frameworks/kits/appkit/native/ability_runtime/context/js_context_utils.cpp mode change 100644 => 100755 interfaces/kits/napi/aafwk/app/context/context.js diff --git a/frameworks/kits/ability/ability_runtime/include/ability_context_impl.h b/frameworks/kits/ability/ability_runtime/include/ability_context_impl.h index 1a12d57bbf0..0a6e5a94540 100755 --- a/frameworks/kits/ability/ability_runtime/include/ability_context_impl.h +++ b/frameworks/kits/ability/ability_runtime/include/ability_context_impl.h @@ -34,6 +34,7 @@ public: std::string GetDatabaseDir() override; std::string GetStorageDir() override; std::string GetDistributedFilesDir() override; + void SwitchArea(int mode) override; std::string GetBundleName() const override; std::shared_ptr GetApplicationInfo() const override; std::shared_ptr GetResourceManager() const override; diff --git a/frameworks/kits/ability/ability_runtime/src/ability_context_impl.cpp b/frameworks/kits/ability/ability_runtime/src/ability_context_impl.cpp index e31aa1de2fe..8ac0aef46b8 100755 --- a/frameworks/kits/ability/ability_runtime/src/ability_context_impl.cpp +++ b/frameworks/kits/ability/ability_runtime/src/ability_context_impl.cpp @@ -59,6 +59,14 @@ std::string AbilityContextImpl::GetDistributedFilesDir() return stageContext_ ? stageContext_->GetDistributedFilesDir() : ""; } +void AbilityContextImpl::SwitchArea(int mode) +{ + HILOG_DEBUG("AbilityContextImpl::SwitchArea."); + if (stageContext_ != nullptr) { + stageContext_->SwitchArea(mode); + } +} + ErrCode AbilityContextImpl::StartAbility(const AAFwk::Want &want, int requestCode) { BYTRACE_NAME(BYTRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); diff --git a/frameworks/kits/appkit/native/ability_runtime/context/context.h b/frameworks/kits/appkit/native/ability_runtime/context/context.h old mode 100644 new mode 100755 index c7ea7287462..c2ae9a9b18a --- a/frameworks/kits/appkit/native/ability_runtime/context/context.h +++ b/frameworks/kits/appkit/native/ability_runtime/context/context.h @@ -137,6 +137,13 @@ public: */ virtual std::string GetDistributedFilesDir() = 0; + /** + * @brief Switch file area + * + * @param mode file area. + */ + virtual void SwitchArea(int mode) = 0; + /** * @brief Getting derived class * diff --git a/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp b/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp old mode 100644 new mode 100755 index 92a2057121c..c7bbc9987af --- a/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp +++ b/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp @@ -26,22 +26,23 @@ namespace OHOS { namespace AbilityRuntime { const size_t Context::CONTEXT_TYPE_ID(std::hash {} ("Context")); const int64_t ContextImpl::CONTEXT_CREATE_BY_SYSTEM_APP(0x00000001); -const std::string ContextImpl::CONTEXT_BUNDLECODE_BASE("/data/app/base/"); -const std::string ContextImpl::CONTEXT_BUNDLECODE("/data/storage/app/base"); +const std::string ContextImpl::CONTEXT_DATA_APP("/data/app/"); const std::string ContextImpl::CONTEXT_BUNDLE("/bundle/"); const std::string ContextImpl::CONTEXT_DISTRIBUTEDFILES_BASE_BEFORE("/mnt/hmdfs/"); const std::string ContextImpl::CONTEXT_DISTRIBUTEDFILES_BASE_MIDDLE("/device_view/local/data/"); const std::string ContextImpl::CONTEXT_DISTRIBUTEDFILES("distributedfiles"); const std::string ContextImpl::CONTEXT_FILE_SEPARATOR("/"); const std::string ContextImpl::CONTEXT_DATA("/data/"); -const std::string ContextImpl::CONTEXT_BASE("/data/storage/"); +const std::string ContextImpl::CONTEXT_DATA_STORAGE("/data/storage/"); +const std::string ContextImpl::CONTEXT_BASE("base"); const std::string ContextImpl::CONTEXT_PRIVATE("/private/"); const std::string ContextImpl::CONTEXT_CACHES("caches"); const std::string ContextImpl::CONTEXT_STORAGE("storage"); const std::string ContextImpl::CONTEXT_DATABASE("database"); const std::string ContextImpl::CONTEXT_TEMP("/temp"); const std::string ContextImpl::CONTEXT_FILES("/files"); -const std::string ContextImpl::CONTEXT_CE("ce"); +const std::string ContextImpl::CONTEXT_HAPS("/haps"); +const std::string ContextImpl::CONTEXT_ELS[] = {"el1", "el2", "el3", "el4"}; std::string ContextImpl::GetBundleName() const { @@ -55,9 +56,9 @@ std::string ContextImpl::GetBundleCodeDir() { std::string dir; if (IsCreateBySystemApp()) { - dir = CONTEXT_BUNDLECODE_BASE + GetBundleName(); + dir = CONTEXT_DATA_APP + CONTEXT_ELS[0] + CONTEXT_BUNDLE + GetBundleName(); } else { - dir = CONTEXT_BUNDLECODE; + dir = CONTEXT_DATA_STORAGE + CONTEXT_ELS[0] + CONTEXT_BUNDLE; } HILOG_DEBUG("ContextImpl::GetBundleCodeDir:%{public}s", dir.c_str()); return dir; @@ -72,7 +73,14 @@ std::string ContextImpl::GetCacheDir() std::string ContextImpl::GetDatabaseDir() { - std::string dir = GetBaseDir() + CONTEXT_PRIVATE + CONTEXT_DATABASE; + std::string dir; + if (IsCreateBySystemApp()) { + dir = CONTEXT_DATA_APP + currArea_ + CONTEXT_FILE_SEPARATOR + GetCurrentAccountId() + CONTEXT_FILE_SEPARATOR + + CONTEXT_DATABASE + GetBundleName(); + } else { + dir = CONTEXT_DATA_STORAGE + currArea_ + CONTEXT_FILE_SEPARATOR + CONTEXT_DATABASE; + } + dir = dir + CONTEXT_FILE_SEPARATOR + GetHapModuleInfo()->moduleName; HILOG_DEBUG("ContextImpl::GetDatabaseDir:%{public}s", dir.c_str()); return dir; } @@ -106,23 +114,36 @@ std::string ContextImpl::GetDistributedFilesDir() dir = CONTEXT_DISTRIBUTEDFILES_BASE_BEFORE + GetCurrentAccountId() + CONTEXT_DISTRIBUTEDFILES_BASE_MIDDLE + GetBundleName(); } else { - dir = CONTEXT_BASE + CONTEXT_DISTRIBUTEDFILES; + dir = CONTEXT_DATA_STORAGE + currArea_ + CONTEXT_FILE_SEPARATOR + CONTEXT_DISTRIBUTEDFILES + + CONTEXT_FILE_SEPARATOR + GetHapModuleInfo()->moduleName; } HILOG_DEBUG("ContextImpl::GetDistributedFilesDir:%{public}s", dir.c_str()); return dir; } +void ContextImpl::SwitchArea(int mode) +{ + HILOG_DEBUG("ContextImpl::SwitchArea, mode:%{public}d.", mode); + if (mode < 0 || mode >= (sizeof(CONTEXT_ELS) / sizeof(CONTEXT_ELS[0]))) { + HILOG_ERROR("ContextImpl::SwitchArea, mode is invalid."); + return; + } + currArea_ = CONTEXT_ELS[mode]; + HILOG_DEBUG("ContextImpl::SwitchArea end, currArea:%{public}s.", currArea_.c_str()); +} + std::string ContextImpl::GetBaseDir() const { std::string baseDir; if (IsCreateBySystemApp()) { - baseDir = CONTEXT_DATA + currArea_ + CONTEXT_FILE_SEPARATOR + GetCurrentAccountId() + - CONTEXT_BUNDLE + GetBundleName(); + baseDir = CONTEXT_DATA_APP + currArea_ + CONTEXT_FILE_SEPARATOR + GetCurrentAccountId() + + CONTEXT_FILE_SEPARATOR + CONTEXT_BASE + CONTEXT_FILE_SEPARATOR + GetBundleName(); } else { - baseDir = CONTEXT_BASE + currArea_; + baseDir = CONTEXT_DATA_STORAGE + currArea_ + CONTEXT_FILE_SEPARATOR + CONTEXT_BASE; } if (parentContext_ != nullptr) { - baseDir = baseDir + CONTEXT_FILE_SEPARATOR + GetHapModuleInfo()->moduleName; + baseDir = baseDir + CONTEXT_HAPS + CONTEXT_FILE_SEPARATOR + + GetHapModuleInfo()->moduleName; } HILOG_DEBUG("ContextImpl::GetBaseDir:%{public}s", baseDir.c_str()); @@ -328,4 +349,4 @@ void ContextImpl::InitAppContext() Context::appContext_ = shared_from_this(); } } // namespace AbilityRuntime -} // namespace OHOS +} // namespace OHOS \ No newline at end of file diff --git a/frameworks/kits/appkit/native/ability_runtime/context/context_impl.h b/frameworks/kits/appkit/native/ability_runtime/context/context_impl.h old mode 100644 new mode 100755 index db19e2c8348..396d9480420 --- a/frameworks/kits/appkit/native/ability_runtime/context/context_impl.h +++ b/frameworks/kits/appkit/native/ability_runtime/context/context_impl.h @@ -175,14 +175,15 @@ public: */ void InitAppContext(); private: - static const std::string CONTEXT_BUNDLECODE_BASE; - static const std::string CONTEXT_BUNDLECODE; + static const int64_t CONTEXT_CREATE_BY_SYSTEM_APP; + static const std::string CONTEXT_DATA_APP; static const std::string CONTEXT_BUNDLE; static const std::string CONTEXT_DISTRIBUTEDFILES_BASE_BEFORE; static const std::string CONTEXT_DISTRIBUTEDFILES_BASE_MIDDLE; static const std::string CONTEXT_DISTRIBUTEDFILES; static const std::string CONTEXT_FILE_SEPARATOR; static const std::string CONTEXT_DATA; + static const std::string CONTEXT_DATA_STORAGE; static const std::string CONTEXT_BASE; static const std::string CONTEXT_PRIVATE; static const std::string CONTEXT_CACHES; @@ -190,8 +191,9 @@ private: static const std::string CONTEXT_DATABASE; static const std::string CONTEXT_TEMP; static const std::string CONTEXT_FILES; - static const std::string CONTEXT_CE; - static const int64_t CONTEXT_CREATE_BY_SYSTEM_APP; + static const std::string CONTEXT_HAPS; + static const std::string CONTEXT_ELS[]; + static const int EL_DEFAULT = 1; int flags_ = 0x00000000; void InitResourceManager( @@ -205,8 +207,8 @@ private: std::shared_ptr parentContext_ = nullptr; std::shared_ptr resourceManager_ = nullptr; std::shared_ptr hapModuleInfo_ = nullptr; - std::string currArea_ = CONTEXT_CE; + std::string currArea_ = CONTEXT_ELS[EL_DEFAULT]; }; } // namespace AbilityRuntime } // namespace OHOS -#endif // ABILITY_RUNTIME_CONTEXT_IMPL_H +#endif // ABILITY_RUNTIME_CONTEXT_IMPL_H \ No newline at end of file diff --git a/frameworks/kits/appkit/native/ability_runtime/context/js_context_utils.cpp b/frameworks/kits/appkit/native/ability_runtime/context/js_context_utils.cpp old mode 100644 new mode 100755 index 6ee66fa1059..90ac1f16003 --- a/frameworks/kits/appkit/native/ability_runtime/context/js_context_utils.cpp +++ b/frameworks/kits/appkit/native/ability_runtime/context/js_context_utils.cpp @@ -34,6 +34,7 @@ public: static void Finalizer(NativeEngine* engine, void* data, void* hint); static NativeValue* CreateBundleContext(NativeEngine* engine, NativeCallbackInfo* info); static NativeValue* GetApplicationContext(NativeEngine* engine, NativeCallbackInfo* info); + static NativeValue* SwitchArea(NativeEngine* engine, NativeCallbackInfo* info); void KeepContext(std::shared_ptr context) { @@ -43,6 +44,7 @@ public: private: NativeValue* OnCreateBundleContext(NativeEngine& engine, NativeCallbackInfo& info); NativeValue* OnGetApplicationContext(NativeEngine& engine, NativeCallbackInfo& info); + NativeValue* OnSwitchArea(NativeEngine& engine, NativeCallbackInfo& info); std::shared_ptr keepContext_; @@ -68,6 +70,47 @@ NativeValue* JsBaseContext::GetApplicationContext(NativeEngine* engine, NativeCa return me != nullptr ? me->OnGetApplicationContext(*engine, *info) : nullptr; } +NativeValue* JsBaseContext::SwitchArea(NativeEngine* engine, NativeCallbackInfo* info) +{ + HILOG_INFO("JsBaseContext::SwitchArea is called"); + JsBaseContext* me = CheckParamsAndGetThis(engine, info, BASE_CONTEXT_NAME); + return me != nullptr ? me->OnSwitchArea(*engine, *info) : nullptr; +} + +NativeValue* JsBaseContext::OnSwitchArea(NativeEngine& engine, NativeCallbackInfo& info) +{ + if (info.argc == 0) { + HILOG_ERROR("Not enough params"); + return engine->CreateUndefined(); + } + + auto context = context_.lock(); + if (!context) { + HILOG_WARN("context is already released"); + return engine->CreateUndefined(); + } + + int mode; + if (!ConvertFromJsValue(engine, info.argv[0], mode)) { + HILOG_ERROR("Parse mode failed"); + return engine->CreateUndefined(); + } + + context->SwitchArea(mode); + + NativeValue* thisVar = info.thisVar; + NativeObject* object = ConvertNativeValueTo(thisVar); + object->SetProperty("cacheDir", CreateJsValue(engine, context->GetCacheDir())); + object->SetProperty("tempDir", CreateJsValue(engine, context->GetTempDir())); + object->SetProperty("filesDir", CreateJsValue(engine, context->GetFilesDir())); + object->SetProperty("distributedFilesDir", CreateJsValue(engine, context->GetDistributedFilesDir())); + object->SetProperty("databaseDir", CreateJsValue(engine, context->GetDatabaseDir())); + object->SetProperty("storageDir", CreateJsValue(engine, context->GetStorageDir())); + object->SetProperty("bundleCodeDir", CreateJsValue(engine, context->GetBundleCodeDir())); + + return engine->CreateUndefined(); +} + NativeValue* JsBaseContext::OnCreateBundleContext(NativeEngine& engine, NativeCallbackInfo& info) { if (info.argc == 0) { @@ -151,6 +194,7 @@ NativeValue* CreateJsBaseContext(NativeEngine& engine, std::shared_ptr BindNativeFunction(engine, *object, "createBundleContext", JsBaseContext::CreateBundleContext); BindNativeFunction(engine, *object, "getApplicationContext", JsBaseContext::GetApplicationContext); + BindNativeFunction(engine, *object, "switchArea", JsBaseContext::SwitchArea); return objValue; } diff --git a/interfaces/kits/napi/aafwk/app/context/context.js b/interfaces/kits/napi/aafwk/app/context/context.js old mode 100644 new mode 100755 index d28e3283fd0..88f512579d9 --- a/interfaces/kits/napi/aafwk/app/context/context.js +++ b/interfaces/kits/napi/aafwk/app/context/context.js @@ -16,24 +16,55 @@ class Context { constructor(obj) { this.__context_impl__ = obj - - this.resourceManager = obj.resourceManager - this.applicationInfo = obj.applicationInfo - this.cacheDir = obj.cacheDir - this.tempDir = obj.tempDir - this.filesDir = obj.filesDir - this.distributedFilesDir = obj.distributedFilesDir - this.databaseDir = obj.databaseDir - this.storageDir = obj.storageDir - this.bundleCodeDir = obj.bundleCodeDir } createBundleContext(bundleName) { return this.__context_impl__.createBundleContext(bundleName) } + getApplicationContext() { return this.__context_impl__.getApplicationContext() } + + switchArea(mode) { + return this.__context_impl__.switchArea(mode) + } + + get resourceManager() { + return this.__context_impl__.resourceManager + } + + get applicationInfo() { + return this.__context_impl__.applicationInfo + } + + get cacheDir() { + return this.__context_impl__.cacheDir + } + + get tempDir() { + return this.__context_impl__.tempDir + } + + get filesDir() { + return this.__context_impl__.filesDir + } + + get distributedFilesDir() { + return this.__context_impl__.distributedFilesDir + } + + get databaseDir() { + return this.__context_impl__.databaseDir + } + + get storageDir() { + return this.__context_impl__.storageDir + } + + get bundleCodeDir() { + return this.__context_impl__.bundleCodeDir + } } export default Context -- Gitee From ad93b23bb03c783a493403037941b51ac6127732 Mon Sep 17 00:00:00 2001 From: mingxihua Date: Thu, 20 Jan 2022 08:28:57 +0000 Subject: [PATCH 2/9] IssueNo:#I4PCM1:ce/de context Description: ce/de context Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: mingxihua --- .../appkit/native/ability_runtime/context/context_impl.h | 7 +++++++ .../native/ability_runtime/context/js_context_utils.cpp | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/frameworks/kits/appkit/native/ability_runtime/context/context_impl.h b/frameworks/kits/appkit/native/ability_runtime/context/context_impl.h index 396d9480420..4658e7fb5a2 100755 --- a/frameworks/kits/appkit/native/ability_runtime/context/context_impl.h +++ b/frameworks/kits/appkit/native/ability_runtime/context/context_impl.h @@ -87,6 +87,13 @@ public: */ std::string GetDistributedFilesDir() override; + /** + * @brief Switch file area + * + * @param mode file area. + */ + void SwitchArea(int mode) override; + /** * @brief set the ResourceManager. * diff --git a/frameworks/kits/appkit/native/ability_runtime/context/js_context_utils.cpp b/frameworks/kits/appkit/native/ability_runtime/context/js_context_utils.cpp index 90ac1f16003..08c265d7c6f 100755 --- a/frameworks/kits/appkit/native/ability_runtime/context/js_context_utils.cpp +++ b/frameworks/kits/appkit/native/ability_runtime/context/js_context_utils.cpp @@ -81,19 +81,19 @@ NativeValue* JsBaseContext::OnSwitchArea(NativeEngine& engine, NativeCallbackInf { if (info.argc == 0) { HILOG_ERROR("Not enough params"); - return engine->CreateUndefined(); + return engine.CreateUndefined(); } auto context = context_.lock(); if (!context) { HILOG_WARN("context is already released"); - return engine->CreateUndefined(); + return engine.CreateUndefined(); } int mode; if (!ConvertFromJsValue(engine, info.argv[0], mode)) { HILOG_ERROR("Parse mode failed"); - return engine->CreateUndefined(); + return engine.CreateUndefined(); } context->SwitchArea(mode); @@ -108,7 +108,7 @@ NativeValue* JsBaseContext::OnSwitchArea(NativeEngine& engine, NativeCallbackInf object->SetProperty("storageDir", CreateJsValue(engine, context->GetStorageDir())); object->SetProperty("bundleCodeDir", CreateJsValue(engine, context->GetBundleCodeDir())); - return engine->CreateUndefined(); + return engine.CreateUndefined(); } NativeValue* JsBaseContext::OnCreateBundleContext(NativeEngine& engine, NativeCallbackInfo& info) -- Gitee From 7d8a0799b7b3fb49aca47817d68e37b5351c8cc9 Mon Sep 17 00:00:00 2001 From: mingxihua Date: Fri, 21 Jan 2022 02:41:37 +0000 Subject: [PATCH 3/9] IssueNo:#I4PCM1:ce/de context Description: ce/de context Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: mingxihua --- .../native/src/ability_runtime/js_ability_context.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp index d49efb0f923..8098cb35820 100755 --- a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp +++ b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp @@ -327,8 +327,12 @@ NativeValue* JsAbilityContext::OnDisconnectAbility(NativeEngine& engine, NativeC return; } HILOG_INFO("context->DisconnectAbility"); - context->DisconnectAbility(want, connection); - task.Resolve(engine, engine.CreateUndefined()); + auto errcode = context->DisconnectAbility(want, connection); + if (errcode == 0) { + task.Resolve(engine, engine.CreateUndefined()); + } else { + task.Resolve(engine, CreateJsError(engine, errcode, "Disconnect Ability failed.")); + } }; NativeValue* lastParam = (info.argc == ARGC_ONE) ? nullptr : info.argv[1]; -- Gitee From 05410874b602aaa8af2d07fd96f3f97269f03655 Mon Sep 17 00:00:00 2001 From: mingxihua Date: Fri, 21 Jan 2022 02:49:01 +0000 Subject: [PATCH 4/9] IssueNo:#I4PCM1:ce/de context Description: ce/de context Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: mingxihua --- .../native/src/ability_runtime/js_ability_context.cpp | 7 +------ .../ability/native/src/js_service_extension_context.cpp | 5 ++--- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp index 8098cb35820..f3520d16017 100755 --- a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp +++ b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp @@ -327,12 +327,7 @@ NativeValue* JsAbilityContext::OnDisconnectAbility(NativeEngine& engine, NativeC return; } HILOG_INFO("context->DisconnectAbility"); - auto errcode = context->DisconnectAbility(want, connection); - if (errcode == 0) { - task.Resolve(engine, engine.CreateUndefined()); - } else { - task.Resolve(engine, CreateJsError(engine, errcode, "Disconnect Ability failed.")); - } + context->DisconnectAbility(want, connection); }; NativeValue* lastParam = (info.argc == ARGC_ONE) ? nullptr : info.argv[1]; diff --git a/frameworks/kits/ability/native/src/js_service_extension_context.cpp b/frameworks/kits/ability/native/src/js_service_extension_context.cpp index 8786829e243..aa44d8255dc 100755 --- a/frameworks/kits/ability/native/src/js_service_extension_context.cpp +++ b/frameworks/kits/ability/native/src/js_service_extension_context.cpp @@ -264,13 +264,12 @@ private: return; } HILOG_INFO("context->DisconnectAbility"); - context->DisconnectAbility(want, connection); - /* auto errcode = context->DisconnectAbility(want, connection); + auto errcode = context->DisconnectAbility(want, connection); if (errcode == 0) { task.Resolve(engine, engine.CreateUndefined()); } else { task.Reject(engine, CreateJsError(engine, errcode, "Disconnect Ability failed.")); - } */ + } }; NativeValue* lastParam = (info.argc == ARGC_ONE) ? nullptr : info.argv[INDEX_ONE]; -- Gitee From ef7c03a4e50ae3954864db8088e8bbd124e6d9e2 Mon Sep 17 00:00:00 2001 From: mingxihua Date: Fri, 21 Jan 2022 02:51:12 +0000 Subject: [PATCH 5/9] IssueNo:#I4PCM1:ce/de context Description: ce/de context Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: mingxihua --- .../ability/native/src/ability_runtime/js_ability_context.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp index f3520d16017..a8e0133d60f 100755 --- a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp +++ b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp @@ -328,6 +328,7 @@ NativeValue* JsAbilityContext::OnDisconnectAbility(NativeEngine& engine, NativeC } HILOG_INFO("context->DisconnectAbility"); context->DisconnectAbility(want, connection); + task.Resolve(engine, engine.CreateUndefined()); }; NativeValue* lastParam = (info.argc == ARGC_ONE) ? nullptr : info.argv[1]; -- Gitee From 3434fd661070543bb230c6f9f0d2889be1e2ff98 Mon Sep 17 00:00:00 2001 From: mingxihua Date: Fri, 21 Jan 2022 02:51:57 +0000 Subject: [PATCH 6/9] IssueNo:#I4PCM1:ce/de context Description: ce/de context Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: mingxihua --- .../ability/native/src/ability_runtime/js_ability_context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp index a8e0133d60f..d49efb0f923 100755 --- a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp +++ b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp @@ -328,7 +328,7 @@ NativeValue* JsAbilityContext::OnDisconnectAbility(NativeEngine& engine, NativeC } HILOG_INFO("context->DisconnectAbility"); context->DisconnectAbility(want, connection); - task.Resolve(engine, engine.CreateUndefined()); + task.Resolve(engine, engine.CreateUndefined()); }; NativeValue* lastParam = (info.argc == ARGC_ONE) ? nullptr : info.argv[1]; -- Gitee From 2c4175e46a0b8e2119cee3b3268d01a51c340914 Mon Sep 17 00:00:00 2001 From: mingxihua Date: Fri, 21 Jan 2022 03:43:19 +0000 Subject: [PATCH 7/9] IssueNo:#I4PCM1:ce/de context Description: ce/de context Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: mingxihua --- .../kits/ability/native/src/js_service_extension_context.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/frameworks/kits/ability/native/src/js_service_extension_context.cpp b/frameworks/kits/ability/native/src/js_service_extension_context.cpp index aa44d8255dc..940ef133613 100755 --- a/frameworks/kits/ability/native/src/js_service_extension_context.cpp +++ b/frameworks/kits/ability/native/src/js_service_extension_context.cpp @@ -265,11 +265,8 @@ private: } HILOG_INFO("context->DisconnectAbility"); auto errcode = context->DisconnectAbility(want, connection); - if (errcode == 0) { - task.Resolve(engine, engine.CreateUndefined()); - } else { + errcode == 0 ? task.Resolve(engine, engine.CreateUndefined()) : task.Reject(engine, CreateJsError(engine, errcode, "Disconnect Ability failed.")); - } }; NativeValue* lastParam = (info.argc == ARGC_ONE) ? nullptr : info.argv[INDEX_ONE]; -- Gitee From 069d493362641da3d1ed30dc26166d3a83ec06f4 Mon Sep 17 00:00:00 2001 From: mingxihua Date: Fri, 21 Jan 2022 05:34:56 +0000 Subject: [PATCH 8/9] IssueNo:#I4PCM1:ce/de context Description: ce/de context Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: mingxihua --- .../native/ability_runtime/context/context_impl.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp b/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp index c7bbc9987af..418df097e5f 100755 --- a/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp +++ b/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp @@ -80,7 +80,7 @@ std::string ContextImpl::GetDatabaseDir() } else { dir = CONTEXT_DATA_STORAGE + currArea_ + CONTEXT_FILE_SEPARATOR + CONTEXT_DATABASE; } - dir = dir + CONTEXT_FILE_SEPARATOR + GetHapModuleInfo()->moduleName; + dir = dir + CONTEXT_FILE_SEPARATOR + (GetHapModuleInfo() == nullptr) ? "" : GetHapModuleInfo()->moduleName; HILOG_DEBUG("ContextImpl::GetDatabaseDir:%{public}s", dir.c_str()); return dir; } @@ -115,7 +115,7 @@ std::string ContextImpl::GetDistributedFilesDir() CONTEXT_DISTRIBUTEDFILES_BASE_MIDDLE + GetBundleName(); } else { dir = CONTEXT_DATA_STORAGE + currArea_ + CONTEXT_FILE_SEPARATOR + CONTEXT_DISTRIBUTEDFILES + - CONTEXT_FILE_SEPARATOR + GetHapModuleInfo()->moduleName; + CONTEXT_FILE_SEPARATOR + (GetHapModuleInfo() == nullptr) ? "" : GetHapModuleInfo()->moduleName; } HILOG_DEBUG("ContextImpl::GetDistributedFilesDir:%{public}s", dir.c_str()); return dir; @@ -143,7 +143,7 @@ std::string ContextImpl::GetBaseDir() const } if (parentContext_ != nullptr) { baseDir = baseDir + CONTEXT_HAPS + CONTEXT_FILE_SEPARATOR + - GetHapModuleInfo()->moduleName; + (GetHapModuleInfo() == nullptr) ? "" : GetHapModuleInfo()->moduleName; } HILOG_DEBUG("ContextImpl::GetBaseDir:%{public}s", baseDir.c_str()); @@ -321,6 +321,9 @@ void ContextImpl::InitHapModuleInfo(const AppExecFwk::HapModuleInfo &hapModuleIn std::shared_ptr ContextImpl::GetHapModuleInfo() const { + if (hapModuleInfo_ == nullptr) { + HILOG_ERROR("ContextImpl::GetHapModuleInfo, hapModuleInfo is empty"); + } return hapModuleInfo_; } -- Gitee From 4d02c9c3132c1c3e2d915c6fd47183175de5139d Mon Sep 17 00:00:00 2001 From: mingxihua Date: Fri, 21 Jan 2022 06:07:51 +0000 Subject: [PATCH 9/9] IssueNo:#I4PCM1:ce/de context Description: ce/de context Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: mingxihua --- .../appkit/native/ability_runtime/context/context_impl.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp b/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp index 418df097e5f..9654f279e15 100755 --- a/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp +++ b/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp @@ -80,7 +80,7 @@ std::string ContextImpl::GetDatabaseDir() } else { dir = CONTEXT_DATA_STORAGE + currArea_ + CONTEXT_FILE_SEPARATOR + CONTEXT_DATABASE; } - dir = dir + CONTEXT_FILE_SEPARATOR + (GetHapModuleInfo() == nullptr) ? "" : GetHapModuleInfo()->moduleName; + dir = dir + CONTEXT_FILE_SEPARATOR + ((GetHapModuleInfo() == nullptr) ? "" : GetHapModuleInfo()->moduleName); HILOG_DEBUG("ContextImpl::GetDatabaseDir:%{public}s", dir.c_str()); return dir; } @@ -115,7 +115,7 @@ std::string ContextImpl::GetDistributedFilesDir() CONTEXT_DISTRIBUTEDFILES_BASE_MIDDLE + GetBundleName(); } else { dir = CONTEXT_DATA_STORAGE + currArea_ + CONTEXT_FILE_SEPARATOR + CONTEXT_DISTRIBUTEDFILES + - CONTEXT_FILE_SEPARATOR + (GetHapModuleInfo() == nullptr) ? "" : GetHapModuleInfo()->moduleName; + CONTEXT_FILE_SEPARATOR + ((GetHapModuleInfo() == nullptr) ? "" : GetHapModuleInfo()->moduleName); } HILOG_DEBUG("ContextImpl::GetDistributedFilesDir:%{public}s", dir.c_str()); return dir; @@ -143,7 +143,7 @@ std::string ContextImpl::GetBaseDir() const } if (parentContext_ != nullptr) { baseDir = baseDir + CONTEXT_HAPS + CONTEXT_FILE_SEPARATOR + - (GetHapModuleInfo() == nullptr) ? "" : GetHapModuleInfo()->moduleName; + ((GetHapModuleInfo() == nullptr) ? "" : GetHapModuleInfo()->moduleName); } HILOG_DEBUG("ContextImpl::GetBaseDir:%{public}s", baseDir.c_str()); -- Gitee