From 70cd03d4e5de40fc16befa99e5719fc58aec9329 Mon Sep 17 00:00:00 2001 From: xiehd Date: Sat, 8 Feb 2025 09:16:10 +0800 Subject: [PATCH] fix support passing want to window Signed-off-by: xiehd --- .../ability/native/ui_extension_ability/js_ui_extension.cpp | 5 +++++ .../native/ui_extension_base/js_ui_extension_base.cpp | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/frameworks/native/ability/native/ui_extension_ability/js_ui_extension.cpp b/frameworks/native/ability/native/ui_extension_ability/js_ui_extension.cpp index 9e332c160e..925bdfe012 100755 --- a/frameworks/native/ability/native/ui_extension_ability/js_ui_extension.cpp +++ b/frameworks/native/ability/native/ui_extension_ability/js_ui_extension.cpp @@ -715,6 +715,7 @@ bool JsUIExtension::HandleSessionCreate(const AAFwk::Want &want, const sptr lock(uiWindowMutex_); TAG_LOGD(AAFwkTag::UI_EXT, "UIExtension component id: %{public}" PRId64 ", element: %{public}s", sessionInfo->uiExtensionComponentId, want.GetElement().GetURI().c_str()); + std::shared_ptr sharedWant = std::make_shared(); auto compId = sessionInfo->uiExtensionComponentId; if (uiWindowMap_.find(compId) == uiWindowMap_.end()) { auto context = GetContext(); @@ -746,11 +747,15 @@ bool JsUIExtension::HandleSessionCreate(const AAFwk::Want &want, const sptrUpdateExtensionConfig(sharedWant); #ifdef SUPPORT_GRAPHICS if (context->GetWindow() == nullptr) { context->SetWindow(uiWindow); } #endif // SUPPORT_GRAPHICS + } else { + auto& uiWindow = uiWindowMap_[compId]; + uiWindow->UpdateExtensionConfig(sharedWant); } return true; } diff --git a/frameworks/native/ability/native/ui_extension_base/js_ui_extension_base.cpp b/frameworks/native/ability/native/ui_extension_base/js_ui_extension_base.cpp index ccd4049cd4..09dc0ac29a 100644 --- a/frameworks/native/ability/native/ui_extension_base/js_ui_extension_base.cpp +++ b/frameworks/native/ability/native/ui_extension_base/js_ui_extension_base.cpp @@ -707,6 +707,7 @@ bool JsUIExtensionBase::HandleSessionCreate(const AAFwk::Want &want, const sptr< TAG_LOGE(AAFwkTag::UI_EXT, "Invalid sessionInfo"); return false; } + std::shared_ptr sharedWant = std::make_shared(); auto componentId = sessionInfo->uiExtensionComponentId; if (uiWindowMap_.find(componentId) == uiWindowMap_.end()) { if (context_ == nullptr || context_->GetAbilityInfo() == nullptr) { @@ -731,11 +732,15 @@ bool JsUIExtensionBase::HandleSessionCreate(const AAFwk::Want &want, const sptr< return false; } uiWindowMap_[componentId] = uiWindow; + uiWindow->UpdateExtensionConfig(sharedWant); #ifdef SUPPORT_GRAPHICS if (context_->GetWindow() == nullptr) { context_->SetWindow(uiWindow); } #endif // SUPPORT_GRAPHICS + } else { + auto& uiWindow = uiWindowMap_[componentId]; + uiWindow->UpdateExtensionConfig(sharedWant); } return true; }