From cbc8dfab3a303f805298d5b6312caadb66830529 Mon Sep 17 00:00:00 2001 From: zhangbingce Date: Tue, 18 Jul 2023 10:50:16 +0800 Subject: [PATCH] =?UTF-8?q?[DFX]FA=E6=A8=A1=E5=9E=8B=E9=80=82=E9=85=8Dsour?= =?UTF-8?q?ceMap--=E6=8C=91=E5=8D=953.2release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangbingce Change-Id: I0695fc2200e7449898db38757a39580cbf2fff64 --- adapter/ohos/entrance/ace_data_ability.cpp | 2 +- adapter/ohos/entrance/ace_form_ability.cpp | 2 +- adapter/ohos/entrance/ace_service_ability.cpp | 2 +- adapter/ohos/entrance/pa_container.cpp | 9 ++++++--- adapter/ohos/entrance/pa_container.h | 5 +++-- .../pa_engine/engine/common/js_backend_engine.h | 10 ++++++++++ 6 files changed, 22 insertions(+), 8 deletions(-) diff --git a/adapter/ohos/entrance/ace_data_ability.cpp b/adapter/ohos/entrance/ace_data_ability.cpp index 6d9dfcebb80..a09cbcc1fef 100644 --- a/adapter/ohos/entrance/ace_data_ability.cpp +++ b/adapter/ohos/entrance/ace_data_ability.cpp @@ -85,7 +85,7 @@ void AceDataAbility::OnStart(const OHOS::AAFwk::Want& want) BackendType backendType = BackendType::DATA; bool isArkApp = GetIsArkFromConfig(packagePath, isHap); - Platform::PaContainer::CreateContainer(abilityId_, backendType, isArkApp, this, + Platform::PaContainer::CreateContainer(abilityId_, backendType, isArkApp, this, moduleInfo->hapPath, std::make_unique([this]() { TerminateAbility(); })); AceEngine::InitJsDumpHeadSignal(); diff --git a/adapter/ohos/entrance/ace_form_ability.cpp b/adapter/ohos/entrance/ace_form_ability.cpp index d1a192ddfa4..4e7f9800193 100644 --- a/adapter/ohos/entrance/ace_form_ability.cpp +++ b/adapter/ohos/entrance/ace_form_ability.cpp @@ -85,7 +85,7 @@ void AceFormAbility::LoadFormEnv(const OHOS::AAFwk::Want& want) BackendType backendType = BackendType::FORM; bool isArkApp = GetIsArkFromConfig(packagePath, isHap); - Platform::PaContainer::CreateContainer(instanceId_, backendType, isArkApp, this, + Platform::PaContainer::CreateContainer(instanceId_, backendType, isArkApp, this, moduleInfo->hapPath, std::make_unique([this]() { TerminateAbility(); })); std::shared_ptr info = GetAbilityInfo(); diff --git a/adapter/ohos/entrance/ace_service_ability.cpp b/adapter/ohos/entrance/ace_service_ability.cpp index 1a8d191254b..910ee48b377 100644 --- a/adapter/ohos/entrance/ace_service_ability.cpp +++ b/adapter/ohos/entrance/ace_service_ability.cpp @@ -85,7 +85,7 @@ void AceServiceAbility::OnStart(const OHOS::AAFwk::Want& want) BackendType backendType = BackendType::SERVICE; bool isArkApp = GetIsArkFromConfig(packagePath, isHap); - Platform::PaContainer::CreateContainer(abilityId_, backendType, isArkApp, this, + Platform::PaContainer::CreateContainer(abilityId_, backendType, isArkApp, this, moduleInfo->hapPath, std::make_unique([this]() { TerminateAbility(); })); AceEngine::InitJsDumpHeadSignal(); diff --git a/adapter/ohos/entrance/pa_container.cpp b/adapter/ohos/entrance/pa_container.cpp index 224763ca347..e254dd9b793 100644 --- a/adapter/ohos/entrance/pa_container.cpp +++ b/adapter/ohos/entrance/pa_container.cpp @@ -53,7 +53,7 @@ const char* GetPaEngineSharedLibrary(bool isArkApp) } // namespace PaContainer::PaContainer(int32_t instanceId, BackendType type, bool isArkApp, void* paAbility, - std::unique_ptr callback) + const std::string& hapPath, std::unique_ptr callback) : instanceId_(instanceId), type_(type), isArkApp_(isArkApp), paAbility_(paAbility) { ACE_DCHECK(callback); @@ -61,6 +61,7 @@ PaContainer::PaContainer(int32_t instanceId, BackendType type, bool isArkApp, vo flutterTaskExecutor->InitPlatformThread(); flutterTaskExecutor->InitJsThread(); taskExecutor_ = flutterTaskExecutor; + hapPath_ = hapPath; InitializeBackend(); @@ -80,6 +81,7 @@ void PaContainer::InitializeBackend() jsEngine->AddExtraNativeObject("ability", paAbility_); jsEngine->SetNeedDebugBreakPoint(AceApplicationInfo::GetInstance().IsNeedDebugBreakPoint()); jsEngine->SetDebugVersion(AceApplicationInfo::GetInstance().IsDebugVersion()); + jsEngine->SetHapPath(hapPath_); paBackend->SetJsEngine(jsEngine); ACE_DCHECK(backend_); @@ -93,9 +95,10 @@ RefPtr PaContainer::GetContainer(int32_t instanceId) } void PaContainer::CreateContainer(int32_t instanceId, BackendType type, bool isArkApp, void* paAbility, - std::unique_ptr callback) + const std::string& hapPath, std::unique_ptr callback) { - auto aceContainer = AceType::MakeRefPtr(instanceId, type, isArkApp, paAbility, std::move(callback)); + auto aceContainer = AceType::MakeRefPtr(instanceId, type, isArkApp, paAbility, + hapPath, std::move(callback)); AceEngine::Get().AddContainer(instanceId, aceContainer); auto back = aceContainer->GetBackend(); diff --git a/adapter/ohos/entrance/pa_container.h b/adapter/ohos/entrance/pa_container.h index 12fb976155c..902c45501fe 100644 --- a/adapter/ohos/entrance/pa_container.h +++ b/adapter/ohos/entrance/pa_container.h @@ -42,7 +42,7 @@ class PaContainer : public Container, public JsMessageDispatcher { public: PaContainer(int32_t instanceId, BackendType type, bool isArkApp, void* paAbility, - std::unique_ptr callback); + const std::string& hapPath, std::unique_ptr callback); ~PaContainer() override = default; void Initialize() override {} @@ -143,7 +143,7 @@ public: static bool Register(); static void CreateContainer(int32_t instanceId, BackendType type, bool isArkApp, void* paAbility, - std::unique_ptr callback); + const std::string& hapPath, std::unique_ptr callback); static void DestroyContainer(int32_t instanceId); static RefPtr GetContainer(int32_t instanceId); static bool RunPa(int32_t instanceId, const std::string& content, const OHOS::AAFwk::Want& want); @@ -193,6 +193,7 @@ private: bool isArkApp_ = false; std::unique_ptr platformEventCallback_; void* paAbility_ = nullptr; + std::string hapPath_; ACE_DISALLOW_COPY_AND_MOVE(PaContainer); }; diff --git a/adapter/ohos/entrance/pa_engine/engine/common/js_backend_engine.h b/adapter/ohos/entrance/pa_engine/engine/common/js_backend_engine.h index 739afc7be0f..3fb43f9e90c 100644 --- a/adapter/ohos/entrance/pa_engine/engine/common/js_backend_engine.h +++ b/adapter/ohos/entrance/pa_engine/engine/common/js_backend_engine.h @@ -136,6 +136,15 @@ public: needDebugBreakPoint_ = value; } + void SetHapPath(std::string hapPath) + { + hapPath_ = hapPath; + } + + std::string GetHapPath() + { + return hapPath_; + } private: std::string instanceName_; AppExecFwk::FormProviderData formProviderData_; @@ -144,6 +153,7 @@ private: bool isDebugVersion_ = false; // if debug, '-D' means need debug breakpoint, by default, do not enter breakpoint. bool needDebugBreakPoint_ = false; + std::string hapPath_; }; } // namespace OHOS::Ace -- Gitee