-
[BugFix][Event] Fix runWorklet not differ event and eventClosureListener (206fda5) @f0rdream
Currently, there're EventHandler and ClosureEventHandler to handle events, when they call runWorklet, framework need to distingish these two, to wrap different object in it.
(cherry picked from commit 45072d294f9d9bdd9ab7d3e249dab7df8f483d51)
-
[BugFix][Harmony] Refactor overflow clipping implementation in UIBase for Harmony platform (77ff43e) @rel-q
Updated ApplyOverflowClipPath and ApplyOverflowClipRectangle methods to improve clip handling and overflow behavior
(cherry picked from commit a1aa8a3e76ca3ede3cdb51a1328de2e6b0aef6c2)
-
[BugFix][Event] Modify the native-interaction-enabled validation logic. (2a9ee52) @rAY-ooo
description: Since HitTestMode.None only affects the node itself and cannot affect its child nodes, it is necessary to traverse the UI tree before touching so that native-interaction-enabled can affect its child nodes.
(cherry picked from commit 948823949dd849813e137e5b9c8cf04c63adf4e2)
-
[BugFix] fix embedded mode issues (1ab2c57) @nhsprite
Fix some embedded mode issues:
- in engine reuse cases, if data is not changed we need to make sure rebuildViewTree for each LynxView.
- in case lynxView is created without init, we need to protect the case that mKeyboardEvent is null.
(cherry picked from commit 6445c07635be0d037ca39f6c183e7142e80b65a5)
-
[BugFix][Harmony] Fix vertical position error of inline view when setting vertical-align as middle. (f1e9a93) @Randycn
When calculating the offset of the middle property value, the vertical offset of the line was omitted.
(cherry picked from commit 92106461ef9eb4d96d60bc6359e1085e71bdb7b6)
-
[BugFix][Android] Add pixelCopy support and optimize screenshot generation (a32039d) @rel-q
Moves bitmap processing to a background thread and adds a pixelCopy option for better screenshot generation
(cherry picked from commit 3c5e5fcc6bfc3f7aa8fbf9d9c2df16b858476671)
-
[BugFix][List] Fix sticky item not render when list scroll in the next vsync. (23b5942) @DwwWxx
If list's scroll offset is updated in the next vsync callback, we should set sticky item's translate after updating scroll offset.
(cherry picked from commit b305e1698f1f4021c7746b68403c75a542525819)
-
[BugFix][InlineStyle] fix the issue when splitting inline style string (55aadc2) @linxs0211
When there are single quotes, the style string splits incorrectly, failing to skip the closing single quote.
(cherry picked from commit 76b849e5009b92b1ce1d9a61aa3dfcc597839eae)
-
[BugFix][iOS] Fix compilation errors when using LynxServiceRegister in LynxBase (d2f57ac) @ykai55
Using the same guard condition in ServiceLazyLoad.h and LynxLazyLoad.h to avoid redefination of macros. This change fixes compilation errors when using LynxServiceRegister in LynxBase.
(cherry picked from commit 81a557fac596d82059a891c4bcaf3daed4338041)
-
[BugFix] using correct resourcetype when fetchTemplate (d0300cf) @nhsprite
- Update resource type handling in resource loader
- Fix template resource callback parameter usage
- Ensure consistent resource type across platforms
(cherry picked from commit 0754ba9a3ecb91d01215413edcf338819b04cadd)
-
[BugFix][Event] The new event logic adapts to triggerEvent. (b021472) @rAY-ooo
description:
- Added the enableEventHandleRefactor switch to control the new event handling logic.
- Adapted the triggerEvent interface to trigger CustomEvent.
- Fixed an issue where catch interception failed.
- Adjusted the event triggering order.
-
[BugFix] Fix the bytecode generation task handling error that causes task loss (5114025) @lybvinci
Because active and passive generation may execute sequentially, and passive
executiondoes not include all tasks while active generation includes all
tasks, judging only by template key can cause tasks to be overwritten and some
tasks to be lost.
(cherry picked from commit 3eb805b5e19992606c9a6c988e81964aaa6e8730)
-
[BugFix][List] Fix list item-snap not work on Harmony platform. (2245672) @DwwWxx
(cherry picked from commit a83703292af36c4547391edc41a24baf08435e17)
-
[BugFix] Fix the issue with incorrect reading of the codecache toggle. (4991868) @lybvinci
Use the remote switch as primary and the local switch as secondary to resolve the issue of remote switch failure.
(cherry picked from commit 187f01b3dfd3431d1f31b320b57d1be71e734c1f)
-
[BugFix][Harmony] Self-Adaptation text height when line-height is the default value. (5568240) @Randycn
When the developer does not set the line-height, no specific line height will be set, and the text height will be expanded using font Self-Adaptation.
(cherry picked from commit d38fa2000c821be1c7883d57630b3085cffec187)
-
[BugFix] There lacks a debuggable value in InitRuntimeStandalone (02560d9) @talisk
summary: When use debuggable to enable instance-level debugging,
we should pass debuggable via InitRuntimeStandalone.
(cherry picked from commit 52ce5bd266702b47ea13a85fdcb72199f0777a41)
-
[BugFix][List] Fix invoking EnqueueComponent() multiple times in the rendering pipeline of a single list item. (7017e1c) @DwwWxx
As the layout is triggered twice in the layout process, and the second layout will use the same PipelineOption, the HandleListOrComponentUpdated may also trigger twice. Therefore we will clear all list-related variables in PipelineOption after the first layout.
(cherry picked from commit a896084c7cfd7ad9ea76c540e9bde02d79e7b82d)
-
[BugFix][iOS] Fix text overlapping in the scenario where text is reused in a list. (c582605) @Randycn
1.When text is reused, the previously drawn text may not be cleared, and the contents of both the view and layer need to be reset.
2.When there are line breaks in the text, boundingRectForGlyphRange returns the typography width instead of the actual text width. Change it to the maximum value between the maximum font size and the text typography width.
(cherry picked from commit b398b8c165a3f4a0d28ee3bf7240c6140c17acf3)
-
[BugFix][Gesture][Harmony] Fix gesture stop fling will trigger bindtap in harmony (0c879a2) @AdrianLCA
Fix gesture stop fling will trigger bindtap in harmony, merge single touch and multi touch gesture processing logic.
(cherry picked from commit b27965e08ced4f54f7f512241c39eab1bfb49919)
-
[BugFix][Clay][Headless] Pick historical fixes in headless mode. (beea3cf) @ChrisChan0668
Details:
Add ENABLE_HEADLESS flag and update platform checks to include headless mode
Integrate harmony platform support for resource loading and task runner
Refactor resource loader service to use common LynxResourceLoader interface
Update text input and mouse handling for headless compatibility
(cherry picked from commit cf3f596c91b124224fba909022e1e741015503b8)
-
[BugFix][Devtool]Initialize devtool env before lynx shell reset. (e67d9ea) @benb365
- Initialize the devtool env sufficiently early to make sure all debug switches are prepared before the lynx shell resets
- Enable devtool in lynx example
-
[BugFix][Android]: add ByteBuffer support for TemplateProviderResult initialization (95eff53) @nhsprite
- Add constructor to initialize TemplateProviderResult with ByteBuffer
- Update LynxTemplateRender to handle ByteBuffer-based templates
- Enhance TemplateLoaderHelper and TemplateResourceCallback for ByteBuffer support
- Add comprehensive unit tests for ByteBuffer functionality
- Update native resource loader to support ByteBuffer operations
(cherry picked from commit 4cf1ec83f7b302340fe293103741f5e5028c7766)
-
[BugFix][List] Fix return value with list getVisibileCells (503f08f) @DwwWxx
-
The value of 'id' should be the IdSeclector of list-item.
-
The order of visible cells should be ascending.
(cherry picked from commit 736f26fb5e00578754a73610cf95fb515b124811)
-
[BugFix][DevTool] Fix the function name’s initial capitalization error in HarmonySessionHandler (2080099) @yuweizheng
Fix the function name’s initial capitalization error in HarmonySessionHandler, resolving the callback failure issue.
(cherry picked from commit 139fbddb959059fa86e43660054ea47809cf8625)
-
[BugFix][Harmony] Use weak_ptr for Delegate in NativeModuleHarmony (f2f5d3b) @rel-q
Change the Delegate from a shared_ptr to a weak_ptr to prevent potential reference cycles.
(cherry picked from commit 28c6f22a11caa95275d900759ba127e7a1c7ffa6)
-
[BugFix][DevTool] Fix HarmonyOS logbox failing to display error in some scenarios (6a84de6) @yuweizheng
If a logbox error's JS file has an unreachable source map URL, HarmonyOS misses the error catch, so no default response returns. The front end awaits indefinitely, leaving the logbox stuck on "error data is loading". To solve this, a try-catch block was added around the download logic to ensure that any exceptions are caught, allowing fallback logic to execute and return an empty response to the frontend.
(cherry picked from commit b119533fe808032286aa67006c9a825789063db3)
-
[BugFix][Event] Fix the issue where custom events could not be monitored or intercepted. (ee85038) @rAY-ooo
description: For custom events, you need to find the corresponding event target through uiowner so that subsequent client event monitoring or interception can proceed normally.
(cherry picked from commit 650600457423b7b90ec6a7837c18abc9a4955304)
-
[BugFix] Make LynxRuntime Initialization If LogicExecutor is not Provided (c8a5427) @nhsprite
LogicExecutor is a replacement of LynxRuntime in embeddedMode, It's needed to make LynxRuntime
Initiazation if Users has not provide the implementation of LogicExecutor.
while, if the EnginePool is enabled, we will provided a DefaultLogicExecutor as default Implementation, but not in Base EmbeddedMode.
(cherry picked from commit e49f911fd7f0f2dfc8df7995495471e990baa527)
-
[BugFix] Handle null nodes and out-of-bounds operations in ShadowNode. (4d16013) @ChrisChan0668
- Add null checks for parent and child nodes in shadow node operations
- Replace assertions with error logging for better error handling
(cherry picked from commit 7b95468a465795ff33c3e22b3b3ca95bd786acfd)
-
[BugFix][Event] Fix exposure accuracy logic and sub-thread operation issues (1a49001) @rAY-ooo
description:
- Consider 100% scenarios when comparing cross-proportions.
- Avoid using strict equality when determining transparency.
- Avoid manipulating UI and exposure data in child threads.
- Avoid adding listeners repeatedly or omitting listeners.
- Add event-related logs.
-
[BugFix][List] list item should have defualt size in main axis. (c991018) @DwwWxx
In c++ list, if list item has no estimated size in main axis, we use 200px as the default size in main axis to avoid rendering all list items.
(cherry picked from commit 42d1dd2a73ac977c90e80fbe78f28932e6a36ee7)
-
[BugFix][List] Fix list trace info (a8a1076) @DwwWxx
(cherry picked from commit 08f4d43d661887701cee56d8bf7e75e1da2d39c1)
-
[BugFix] typo for scroll-width and list-width (a7fb24d) @ci_lynx
Oops, let's look up the dictionary first next time. We didn't delete the wrong name for not to introduce breaking changes.
(cherry picked from commit 4d9bfdde60a8815c45e9754d339a69b3554014f0)
-
[BugFix][Frame] The LynxView mounted on LynxContext is null (86266ac) @pilipala195
In previous scenarios, the UIBodyView mounted on LynxContext was defaulted to LynxView, so LynxView would never be null when retrieved. The introduction of LynxFrameView has led to the fact that the UIBodyView mounted on LynxContext is not necessarily of type LynxView.
- On Android, when we initialize lynxframeview, we save the uibodyview of lynxcontext in mrootview of lynxframeview, and return this mrootview when lynxcontext.getlynxview is called.
- On iOS,
LynxFrameView store the rootView which in LynxView type, so we just return rootView when LynxContext.GetLynxView in frame.
(cherry picked from commit e9d3d7af21149fb331d035029093c54182e99367)
-
[BugFix][Android] Fixed the issue of registering LynxMethod with the same name in Devtool (f9e563d) @OverWatch-Winder
Fixed the issue of registering LynxMethod with the same name in Devtool.LynxModule currently does not allow registering a LynxMethod with the same name, but will be supported in the future.
(cherry picked from commit bedd4c194aebd6a5528fceb395f3e8c31b72a1a5)
-
[BugFix][Part2] suppot lynxViewGroup in Darwin (156cfff) @nhsprite
- Add substantial implementation to LynxViewBuilder.mm, providing custom getters that consider lynxViewGroup first.
- Remove legacy props in LynxBaseConfigurator to LynxViewBuilder, lynxViewGroup should not considering it any more.
- optimize loadTemplate with meta, if bundle is provided with metaData or lynxViewGroup, it should be considered to optimize the performance.
(cherry picked from commit ffd67ca07d31a5e17c44a1688c5daedb7322a8e5)
-
[BugFix][List] Fix list typings. (afa546f) @DwwWxx
Re-define list-type to avoid incompatible error.
-
[BugFix] Fix the issue where the static variable g_looper_class is null. (23fa7f1) @yongjieTang
Sometimes downstream projects call LynxEnv.loadNativeLynxLibrary to load Lynx-related dynamic libraries, but that path does not load the base library. As a result, the message-loop-related variables remain uninitialized and eventually cause a crash.
This change fixes the issue by explicitly initializing LynxBase during the LynxEnv.init flow.
(cherry picked from commit 71f15058c212bc66ddf16e8f7bc853251c6f55a4)
-
[BugFix] ChoreographerLayoutTick needs to post layout-related to Layout thread rather than executing it on current thread. (b4febbb) @ChrisChan0668
ChoreographerLayoutTick should never be used in ALL_ON_UI mode, however, we might switch thread mode to ALL_ON_UI and layoutTick cannot be reset to ViewLayoutTick. Using ChoreographerLayoutTick in ALL_ON_UI mode will trigger Layout-related task in a wrong thread. This commit provides a temporary solution to fix it, posting task to Layout thread with LynxContext.
Key changes:
- Add LynxContext member variable to ChoreographerLayoutTick for accessing layout thread
- Modify ChoreographerLayoutTick constructor to accept LynxContext parameter
- In doFrame callback, if layout thread change is detected, post task to layout thread via LynxContext.runOnLayoutThread()
- Add runOnLayoutThread() public method to LynxContext with @RestrictTo annotation to limit access scope
- Add hasLayoutThreadChanged() and setLayoutThreadChanged() methods to LynxContext for tracking layout thread change state
- Pass mLynxContext parameter when creating ChoreographerLayoutTick in LynxTemplateRender
- In LynxTemplateRender.onThreadStrategyUpdated(), mark layout thread as changed when thread strategy is MOST_ON_TASM or ALL_ON_UI
- Add thread safety protection in LynxLayoutProxy using ReadWriteLock to ensure thread safety of native pointer access
- Add corresponding method declarations in API definition files
This fix ensures that layout-related tasks are executed correctly in the layout thread after layout thread has changed, avoiding thread safety issues.
-
[BugFix][Event] HitTest adapts the sticky logic of the list. (941bc2a) @rAY-ooo
description: The sticky logic of the list is different from that of the scroll-view, so they need to be adapted separately.
(cherry picked from commit 1342f4994c91bf22b08523ec8c55de835315c6cd)
-
[BugFix][iOS] Fix image element layout behavior on iOS platform (4c84827) @zhongyr
- Add platform_traits.h to detect OS type at compile time
- Create platform-specific GetImageNodeInfo() method for iOS
- Make iOS always use kCommonBuiltInNodeInfo for image elements
- This fixes layout issues with inline images on iOS platform
-
[BugFix][Event] Fix the multi-threaded operation issue of sendEvent in LynxUIExposure. (08f423c) @rAY-ooo
description: When different threads call sendEvent, it may trigger the problem of multiple threads operating uiSet. Therefore, a copy is needed for traversal.
AudoLand: release/3.5, release/3.4
-
[BugFix][Timing] attach NativeFacadeActor to TimingActor for full functionality. (71621c1) @Tamerlx
Ensure TimingHandler is fully functional by connecting NativeFacadeActor to TimingActor when perf_controller_actor is available.
issue:m-6787554633
(cherry picked from commit ecefa47e4619ecea8250fb56ce2e2b58843676f3)
-
[BugFix][Embedded]fix lineHeight error (970c3f8) @linxs0211
use the wrong lineHeight type for LayoutInElement
(cherry picked from commit c10b99e666d7e9d707226312a5df823e424abfa4)
-
[BugFix][Harmony] Remove spread limit for outset shadow to enable complete display (009a11a) @zhongyr
We should not give a limit with spread to enable outset shadow can be completely displayed.
The previous code limited the spread radius to min(width, height) / 2 for both inset and
outset shadows, but outset shadows should not have this limitation as they extend outward
and need to be fully visible.
(cherry picked from commit b687ebb68db335cf37406791aa4b1b06edcfbee3)
-
[BugFix][Android] Fixed ExtensionModule not being initialized in Context Free mode (e832343) @FrendyChen
When the user precreates LynxTemplateRender but does not create LynxView, the initial ExtensionModule will return early because LynxView is nil, causing initialization to fail.
-
[BugFix] fix crash in layout node manager (a36616f) @ci_lynx
fix crash in layout node manager
-
[BugFix][EmbeddedMode] fix keyframes not working issue (e81aac5) @linxs0211
fix the Keyframes not working when enable SimpleStyling
(cherry picked from commit 850bafee2c2060a567e15ddaace338d02a78cfa4)