| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[BugFix][DevTool] Preserve important CSS declarations in style inspection - Track important declarations separately when building and resolving inspector style sheets. - Normalize inline important values and serialize them without duplicate suffixes. - Use renderer-resolved standard and custom properties for computed style so cascade layers and important priority are reflected accurately. - Reuse the shared CSS important parser instead of maintaining a duplicate implementation. TEST: Built and ran devtool_element_exec (62 tests), InspectorTasmExecutorTest.* (33 tests), and CSSUtils tests; verified CSS.setStyleTexts important removal and restoration on an iOS simulator. Change-Id: Ie8df8a87994349effc929f880823f786ecc40a94 | 9 天前 | |
[BugFix][Embedder] Deep clone cached data before page reload Deep clone cached init data and global props before reload to avoid retaining references to the previous runtime context. TEST: Verified repeated Page.reload no longer crashes. | 2 天前 | |
[Feature][ET][List][Part1] Add batched list update recording for template items Add ListUpdateInfoRecorder to snapshot existing template items and record insertions, removals, moves, and platform metadata updates. Generate "update-list-info" actions with removal indices from the old sequence and insertion/update positions adjusted for the batch. Expose template identity and list item metadata without materializing item elements. Use consistent template types for list data sources and reuse pools, and carry current metadata in insertion actions for moved items. TEST: Static diff review only; builds and tests were not run. | 18 小时前 | |
[Optimize][CSS] Batch pseudo-state updates across platform response chains Batch pseudo-state changes across Android, iOS and Harmony response chains for conventional and fragment-layer rendering, avoiding repeated engine entry and style resolution for each node. Persist the complete chain before invalidation. Collect all affected Radon nodes before refreshing them once in Radon ancestor order, so descendants inherit updated custom properties even when fixed elements are reparented. Request at most one style resolve per batch, filtering unchanged states and skipping empty batches. Capture each node's stored state before replacement for Radon invalidation, while preserving the platform-reported transition for Fiber. This includes removal of hover and focus styles when single-bit callbacks replace the stored state. Preserve this behavior for repeated nodes and the local single-node callback. Remove obsolete single-node forwarding APIs from the engine and Android bridges, migrate platform adapters, and update API metadata and existing tests. Preserve node-local state callbacks and Objective-C compatibility entry points. Rebuild native proxy consumers together after the interface change. TEST: GN source-list formatting and full git lynx check passed. The previous revision passed 214 related DOM cases and Android arm64 JNI compilation. This rebase preserves the existing patch behavior; unit tests and native compilation were not rerun. Temporary tests remain excluded. Device and performance validation was not run. | 1 天前 | |
[Optimize] Extract LayoutScheduler interface and integrate across TASM Introduce a standalone LayoutScheduler abstraction to decouple layout requests from TemplateAssembler and ElementManager. The previous inner interface in TemplateAssembler is replaced with a shared renderer/layout_scheduler module and a thin wrapper around a LayoutSchedulerImpl. Key changes: - Add renderer/layout_scheduler with LayoutScheduler and Impl interface - ElementManager now implements LayoutScheduler::LayoutSchedulerImpl - TemplateAssembler now owns a LayoutScheduler instance and accepts a LayoutSchedulerImpl* (or uses ElementManager when unified pipeline is on) - Update LynxEngine/LynxShellBuilder and test mocks to use the new LayoutSchedulerImpl - Wire new target in GN files across core and platform builds Behavioral impact: - No functional change intended; refactor improves modularity and enables future expansion of scheduling logic without touching TASM internals. AutoSubmit:True | 10 个月前 | |
Revert "Revert "[BugFix] Fix unified pipeline list-item flush and enable E2E tests" This reverts commit d3be627f" Revert commit dea2dd85bd7e1961c11a07a80a609ea3aaa3e425 | 20 小时前 | |
[Doc] Add remaining AGENTS guides for animation and renderer leaves - Add the remaining AGENTS guides for animation and renderer leaf directories, including signal, pipeline, and NG parser guidance. - Finish the documentation rollout while leaving the CQ workflow wiring out of this history for a later change. - Verified by keeping this commit within the 300-line limit during the history rewrite. AutoSubmit:True | 6 个月前 | |
[Refactor] Decode template bundles from immutable shared buffers Use shared immutable storage in the existing vector decoder and derived streams. Preserve both binary input stream implementations and const-correct style decoding. TEST: git diff --check; runtime tests deferred to consolidated Testing commit. Change-Id: I1b2f941a97630aed33e21758c836d01852285528 | 1 个月前 | |
[BugFix][Layout] Use measured child sizes during Box prediction Use the sizes returned by UpdateMeasure when calculating a Box's content size. Speculative measurement can return a fixed or cached size without updating the child's layout bounds, so reading those bounds undercounts the Box and gives flexible siblings too much space. Preserve child margins and deferred final measurement. Add regressions for fixed-size prediction, stale cached bounds, and padded Boxes in flex rows and columns. TEST: 32 Starlight tests, 3 geometry tests, and 3604 DOM tests passed; 36 DOM tests skipped and 18 disabled. All four new regressions fail without the fix and pass with it. | 6 天前 | |
[BugFix] Integrate exited-page residual memory across full GCs - Accumulate residual byte-time in VM-local page slots between confirmed full GCs, preserving historical contributions after residuals reach zero and avoiding instance scans during GC updates. - Sample pending integrals independently by area, drain each increment once, and flush the final held segment before QuickJS VM destruction removes its attribution metadata. - Advance the memory event schema to 11, split VM heap and exited-page residual guidance into Q7.1 and Q7.2, and update lifecycle tests, replay collection, independent oracles, and all four simulation fixtures. TEST: 136 performance unit tests passed; all four deterministic fixtures validated; C++ formatting and whitespace checks passed. | 2 天前 | |
[Refactor][iOS] Retire asynchronous UI creation Remove the retired switch getter and propagation, the asynchronous painting branch, tasks and futures, the asynchronous UI factory and eligibility query, feature counting, and obsolete trace names and thread markers. Remove the example activation override and obsolete test configuration. Restrict native asynchronous scheduling and MapBuffer test URL injection to Android. Preserve the existing synchronous creation helpers and their initializer, property update block queue, image property batching, and test variable names. Retain the public environment enum mapping and historical feature ID for compatibility. Update API metadata and creation test coverage. Remove the retired CI task label while preserving the other experimental flags, case selections, dependencies and execution settings. TEST: git diff --check. Reapplied the previous retirement patch on current develop. Targeted regress and current-head validation pending. AutoSubmit: True | 1 个月前 | |
[BugFix] Honor custom VSync in MTS and core animations Pass the configured VSync implementation into TasmMediator and resolve the element-manager monitor from final builder settings. Share the page custom monitor with list animation paths while retaining default platform behavior when no custom monitor is provided. Use explicit custom-monitor naming and cover core and MTS source selection, builder ordering, and tick-driven list animation progress. Preserve the existing explicit BTS source selection. TEST: Final tree unchanged from the verified combined commit: 177 list, 57 internal list, 106 shell, 53 base and 2 embedder VSync tests passed. clang-format and git diff --check passed. SkipChecks: spell AutoSubmit: True | 2 天前 | |
[Optimize][CSS] Batch pseudo-state updates across platform response chains Batch pseudo-state changes across Android, iOS and Harmony response chains for conventional and fragment-layer rendering, avoiding repeated engine entry and style resolution for each node. Persist the complete chain before invalidation. Collect all affected Radon nodes before refreshing them once in Radon ancestor order, so descendants inherit updated custom properties even when fixed elements are reparented. Request at most one style resolve per batch, filtering unchanged states and skipping empty batches. Capture each node's stored state before replacement for Radon invalidation, while preserving the platform-reported transition for Fiber. This includes removal of hover and focus styles when single-bit callbacks replace the stored state. Preserve this behavior for repeated nodes and the local single-node callback. Remove obsolete single-node forwarding APIs from the engine and Android bridges, migrate platform adapters, and update API metadata and existing tests. Preserve node-local state callbacks and Objective-C compatibility entry points. Rebuild native proxy consumers together after the interface change. TEST: GN source-list formatting and full git lynx check passed. The previous revision passed 214 related DOM cases and Android arm64 JNI compilation. This rebase preserves the existing patch behavior; unit tests and native compilation were not rerun. Temporary tests remain excluded. Device and performance validation was not run. | 1 天前 | |
[BugFix][DevTool] Enable Harmony VM events - Dispatch DevTool VM events through LynxShell using the shared VMEvent bridge and native event converter. - Forward VM events through NativeFacadeHarmony to the inspector and guard delivery after shell teardown or inspector detach. - Wire Harmony to the shared converter target. TEST: Final source tree matches the validated lightweight bridge change; EventConverterTest.* (3 tests passed); coding style, cpplint, copyright and spell checks passed. Harmony release size and device regression pending CI. Change-Id: I6d49be0c0af21e99789954c5cb843ef4704c4b2e | 1 天前 | |
[Feature][Runtime] Pause main-thread timers and frames - Propagate explicit pause state across template entries and worklet runtimes. - Defer main-thread requestAnimationFrame callbacks until the page resumes. - Pause Lepus timers while retaining pending callbacks and safe teardown ordering. AutoSubmit: True SkipChecks:macro | 2 天前 | |
[Feature][CSS] Integrate adopted stylesheets into CSSFragmentDecorator - Add ElementManager* member with 2-arg constructor - Add ForEachAdoptedFragment(visitor, reverse) to iterate under lock - Override HasPseudoRules, HasAdjacentSiblingRules with HasInAdopted helper - Override GetKeyframesRule (reverse), ForEachKeyframesMap, ForEachFontFaceMap - Override ForEachRuleSet to iterate intrinsic then adopted - Override CollectInvalidationSetsForId/Class/PseudoClass | 5 个月前 | |
[Feature] Decouple and move new animator's core abilities to gfx namespace. - We split KeyframeEffect, KeyframeModel, AnimationCurve and Keyframe's core functionalities to a independant graphics namespace, which does not rely on tasm modules. - Keyframe will be able to be reused on different platforms as ios, harmony and clay. - In future, Clay can reuse these modules to refactor its css animations. SkipChecks: macro issue: m-7220399874 | 5 个月前 | |
[Feature][DevTool] Send observation payloads through CDP Associate Record observation logs with full payloads using a shared payload ID. Gate serialization on observation logging, full DevTool, a connected transport, and one process-wide boolean CDP switch that defaults to false. Keep payload formatting and the optional function callback in recorder. Reuse the existing global DevTool facade and task runner to send one complete event per payload. Send UTF-8 text directly and encode other bytes as Base64, without size-based dropping or binding delivery to a view. TEST: Added coverage for metadata updates with and without template data. Focused payload tests and syntax checks pending; git diff --check passes. AutoSubmit: True SkipChecks: macro | 1 个月前 | |
[BugFix][Frame] Serialize load callbacks on the engine thread Parallel property flushing can dispatch frame load callbacks from a resolve worker and reenter an active unified pipeline. Return both callbacks through the element reduce queue, then defer them until the active pipeline completes. Preserve callback order, use a weak frame reference and recheck the existing source-equality condition. Queued callbacks capture the bundle data by value. Cover worker dispatch, pipeline deferral, source changes and frame destruction. TEST: dom_unittest_exec (3429 passed, 36 skipped, 18 disabled). TEST: pipeline_test_exec (46 passed). TEST: Three boundary regression tests fail with the original implementation and pass with the fix. coding-style and cpplint passed. Assisted-by: Codex AutoLand: release/4.2 | 8 天前 | |
[BugFix][Frame] Serialize load callbacks on the engine thread Parallel property flushing can dispatch frame load callbacks from a resolve worker and reenter an active unified pipeline. Return both callbacks through the element reduce queue, then defer them until the active pipeline completes. Preserve callback order, use a weak frame reference and recheck the existing source-equality condition. Queued callbacks capture the bundle data by value. Cover worker dispatch, pipeline deferral, source changes and frame destruction. TEST: dom_unittest_exec (3429 passed, 36 skipped, 18 disabled). TEST: pipeline_test_exec (46 passed). TEST: Three boundary regression tests fail with the original implementation and pass with the fix. coding-style and cpplint passed. Assisted-by: Codex AutoLand: release/4.2 | 8 天前 | |
[BugFix] Reuse registered lazy bundles for BTS loads - Store pre-registered template bundles in the JS bundle holder so BTS can detect cached bundles before external loading. - Route cached template bundles through BTSRuntimeMediator to the engine while missing bundles continue through the external resource loader. - Preserve the template entry lifecycle before executable JS bundle content is used by BTS. TEST: ./out/Default/shell_unittests_exec (80 tests). AutoSubmit: true | 3 个月前 | |
[BugFix] Reuse registered lazy bundles for BTS loads - Store pre-registered template bundles in the JS bundle holder so BTS can detect cached bundles before external loading. - Route cached template bundles through BTSRuntimeMediator to the engine while missing bundles continue through the external resource loader. - Preserve the template entry lifecycle before executable JS bundle content is used by BTS. TEST: ./out/Default/shell_unittests_exec (80 tests). AutoSubmit: true | 3 个月前 | |
[Feature][Log] Add stream operators for diagnostic data Add friend stream insertion declarations for TemplateData and LynxEnvConfig, keeping implementations out of headers. Print existing data and screen fields without adding configuration state or diagnostic capture call sites. TEST: Both stream implementations passed source compilation checks. AutoSubmit: True | 1 个月前 | |
[Feature][Log] Add stream operators for diagnostic data Add friend stream insertion declarations for TemplateData and LynxEnvConfig, keeping implementations out of headers. Print existing data and screen fields without adding configuration state or diagnostic capture call sites. TEST: Both stream implementations passed source compilation checks. AutoSubmit: True | 1 个月前 | |
[Feature][MTS] Support preparing global runtime pools by context type Extend `LynxGlobalPool` from a single quick-context pool to a keyed set of `MTSRuntimePool`s per `ContextType`, created lazily and guarded by a mutex. Expose new APIs to prefill pools with an explicit context type and count, including a synchronous fill path used when prewarming on the Java thread, and update `TemplateEntry` to fall back to the matching global pool for RTS/RTSNative contexts before creating a new runtime. AutoSubmit: True | 2 个月前 | |
[Feature][MTS] Support preparing global runtime pools by context type Extend `LynxGlobalPool` from a single quick-context pool to a keyed set of `MTSRuntimePool`s per `ContextType`, created lazily and guarded by a mutex. Expose new APIs to prefill pools with an explicit context type and count, including a synchronous fill path used when prewarming on the Java thread, and update `TemplateEntry` to fall back to the matching global pool for RTS/RTSNative contexts before creating a new runtime. AutoSubmit: True | 2 个月前 | |
[BugFix] Preserve unified fixed subtree order and z-index attachment Layout-only unified fixed subtrees can receive children at the wrong root position, lose descendants after reinsertion, or move when creating a native view. Preserve their mounted order with root-only native entries and empty fixed boundaries, relative insertion points, and symmetric reattachment. Keep physical-tail appends free of prefix scans and retain the existing list for stable z-index and sticky sorting, without caching absolute positions. Gate the ordering repair behind enableUnifyFixedOrderFix, defaulting to false. Like enableUnifyFixedBehavior, it accepts page and native JSON configuration and falls back to settings (enable_unify_fixed_order_fix). Resolve settings at page load, so subsequent settings changes do not switch an existing page between ordering implementations. The ordering repair applies to Fiber unified fixed behavior with enableFixedNew disabled. When the switch is off, retain the legacy ordering, reattachment and transition paths without allocating the mounted-order sequence. Keep the Harmony configuration scope aligned with enableUnifyFixedBehavior without extending the exported trail-key enum. Include generated type support. Fix z-index attachment for layout-only unified fixed descendants on both switch values. Resolve their native stacking container to the page root, while retaining real native stacking contexts. Also remove stale negative-z entries when a child's new style is no longer negative, so returning to zero does not produce an out-of-range insertion index. Keep the shared Fragment stacking-context lookup unchanged. Keep the 39 ordering regressions enabled explicitly. Add four paired test groups covering append order, subtree reinsertion, empty boundaries and nested fixed transitions with both switch values. Verify config defaults, settings fallback, explicit overrides, native JSON and page-load stability. Add eight paired z-index regressions for dynamic changes, wrappers, nested fixed nodes, initial nonzero values, native stacking boundaries, native transitions and stacking-context removal/restoration. Fourteen of these sixteen cases fail without the z-index fix; all pass with it. TEST: dom_unittest_exec (3375 passed, 36 skipped, 18 disabled), including all 63 focused ordering, switch and z-index cases; page_config_unittests_exec (22 passed); type-config tests (7 passed, TypeScript clean); coding-style, cpplint, api-check2 and harmony-trail-key passed. GithubPR:https://github.com/lynx-family/lynx/pull/9914 | 18 天前 | |
[Refactor] Move template root and layout queue paths to Element - What changed: template root typing, worklet access, and layout queue paths move to Element-facing APIs. - Why it was needed: this continues the Element and FiberElement unification in a reviewable single-commit slice. - How it was verified: local changed-file checks are run for the compact chain. TEST: tools/env.sh git lynx check --changed AutoSubmit:True | 3 个月前 | |
[Refactor][Build] Consolidate bindings paths under core/runtime/js and lepus_context This change refactors project structure by moving JSI and common bindings from core/runtime/bindings/* to core/runtime/js/* and core/runtime/common/*, and lepus bindings to core/runtime/lepus_context/bindings/*. GN build files and includes are updated accordingly across platforms tests, and tools. No functional logic changes; this is a path and build refactor to improve consistency and maintainability. AutoSubmit: True doc: https://github.com/lynx-family/lynx/discussions/281 issue: m-6787224557 | 9 个月前 | |
[Refactor][Runtime] Rename piper namespace to runtime::js across codebase Detailed description: Rename all piper namespace references to runtime::js throughout the project Batch modification of 584 files including headers, source files, and test files Update related include paths and namespace declarations Maintain original functionality with only naming standardization changes This refactoring primarily aims to unify code naming conventions by consolidating the original piper namespace under runtime::js, making the code structure clearer and more consistent. AutoSubmit: True doc: https://github.com/lynx-family/lynx/discussions/281 issue: m-6787224557 | 8 个月前 | |
Revert "Revert "[BugFix] Fix unified pipeline list-item flush and enable E2E tests" This reverts commit d3be627f" Revert commit dea2dd85bd7e1961c11a07a80a609ea3aaa3e425 | 20 小时前 | |
[Optimize][CSS] Batch pseudo-state updates across platform response chains Batch pseudo-state changes across Android, iOS and Harmony response chains for conventional and fragment-layer rendering, avoiding repeated engine entry and style resolution for each node. Persist the complete chain before invalidation. Collect all affected Radon nodes before refreshing them once in Radon ancestor order, so descendants inherit updated custom properties even when fixed elements are reparented. Request at most one style resolve per batch, filtering unchanged states and skipping empty batches. Capture each node's stored state before replacement for Radon invalidation, while preserving the platform-reported transition for Fiber. This includes removal of hover and focus styles when single-bit callbacks replace the stored state. Preserve this behavior for repeated nodes and the local single-node callback. Remove obsolete single-node forwarding APIs from the engine and Android bridges, migrate platform adapters, and update API metadata and existing tests. Preserve node-local state callbacks and Objective-C compatibility entry points. Rebuild native proxy consumers together after the interface change. TEST: GN source-list formatting and full git lynx check passed. The previous revision passed 214 related DOM cases and Android arm64 JNI compilation. This rebase preserves the existing patch behavior; unit tests and native compilation were not rerun. Temporary tests remain excluded. Device and performance validation was not run. | 1 天前 | |
[Feature][Runtime] Pause main-thread timers and frames - Propagate explicit pause state across template entries and worklet runtimes. - Defer main-thread requestAnimationFrame callbacks until the page resumes. - Pause Lepus timers while retaining pending callbacks and safe teardown ordering. AutoSubmit: True SkipChecks:macro | 2 天前 | |
[Feature][Runtime] Pause main-thread timers and frames - Propagate explicit pause state across template entries and worklet runtimes. - Defer main-thread requestAnimationFrame callbacks until the page resumes. - Pause Lepus timers while retaining pending callbacks and safe teardown ordering. AutoSubmit: True SkipChecks:macro | 2 天前 | |
[BugFix] Reuse registered lazy bundles for BTS loads - Store pre-registered template bundles in the JS bundle holder so BTS can detect cached bundles before external loading. - Route cached template bundles through BTSRuntimeMediator to the engine while missing bundles continue through the external resource loader. - Preserve the template entry lifecycle before executable JS bundle content is used by BTS. TEST: ./out/Default/shell_unittests_exec (80 tests). AutoSubmit: true | 3 个月前 | |
[Feature][DevTool] Add original node source info CDP - Add DOM.getOriginalNodeSourceInfo to return nodeId, tag, nodeIndex, debugMetadataUrl, and lazyBundleUrl for a Lynx DOM node. - Read debugMetadataUrl from the owning TemplateBundle page config so lazy bundle nodes can use their own template metadata. - Cover main template nodes, wrapper nodes, lazy bundle nodes, and missing nodeId with InspectorTasmExecutor unit tests. - Add custom CDP docs and regenerate protocol metadata for the new Lynx extension method. | 2 个月前 | |
[Optimize] Migrate lepus::Value to base directory Migrate lepus::Value to the base module. lepus::Value will be set up as a standalone target that can be independently depended upon by other higher-level modules. issue:m-6042769122 doc:https://github.com/lynx-family/lynx/discussions/172 | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 天前 | ||
| 2 天前 | ||
| 18 小时前 | ||
| 1 天前 | ||
| 10 个月前 | ||
| 20 小时前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 2 天前 | ||
| 1 个月前 | ||
| 2 天前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 2 天前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 8 天前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 18 天前 | ||
| 3 个月前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 20 小时前 | ||
| 1 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 1 年前 |