JJianliang Wang[Feature] Support Compose weight fill and layout modifiers
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[Optimize] Reduce trace overhead when recording is disabled - Add runtime-enabled guards for native, Android Java, and Darwin trace paths so disabled recording exits before expensive bridge and Perfetto work. - Fast-path Darwin wrapper macros through a C runtime-enabled helper and delay UI owner trace string construction until tracing is active. - Remove the scoped native TRACE_EVENT enabled flag so the size impact of destructor-side runtime checks can be measured. - Keep trace-enabled release performance tasks unchanged so optimized trace builds can be measured against real release and release with trace baselines. - Export the runtime-enabled helpers for linked consumers and cover the disabled path with native and Darwin tests. TEST: git diff --check TEST: xcrun --sdk iphoneos clang++ -fsyntax-only -x objective-c++ -std=c++17 -fblocks -fobjc-arc -include Foundation/Foundation.h -DENABLE_TRACE_PERFETTO=1 -I. -Ilynx -Ithird_party/googletest/googletest/include lynx/base/trace/darwin/LynxTraceEvent_unittest.mm TEST: xcrun --sdk iphoneos clang++ -fsyntax-only -x objective-c++ -std=c++17 -fblocks -fobjc-arc -include Foundation/Foundation.h -DENABLE_TRACE_PERFETTO=1 -I. -Ilynx lynx/base/trace/darwin/LynxTraceEvent.mm TEST: xcrun --sdk iphoneos clang++ -fsyntax-only -x objective-c++ -std=c++17 -fblocks -fobjc-arc -include Foundation/Foundation.h -DENABLE_TRACE_PERFETTO=0 -I. -Ilynx lynx/base/trace/darwin/LynxTraceEvent.mm TEST: xcrun --sdk iphoneos clang++ -fsyntax-only -x c++ -std=c++17 -DENABLE_TRACE_PERFETTO=1 -I. -Ilynx -Ithird_party/googletest/googletest/include -Ithird_party/perfetto/sdk -Ithird_party/perfetto -Ithird_party/rapidjson lynx/base/trace/native/trace_event_unittest.cc TEST: platform/android ../../tools/env.sh ./gradlew :BaseDevtool:assembleNoasanRelease SkipChecks: macro, trace-name | 3 个月前 | |
initial commit | 1 年前 | |
[Feature] Support Compose weight fill and layout modifiers Carry weight fill through Compose Modifier operation 13 and preserve it on the physical mount root across CSS recomputation and topology changes. Let weighted children measure below their allocation without redistributing unused space. Map Dp offset operation 14 to CSS relative positioning on the child carrier inside each Modifier boundary. Preserve signed offsets, device-pixel rounding, RTL, sibling slots and drawing order without a dedicated placement callback. Map size range operation 15 to existing CSS min/max sizes at ordered boundaries. Support wrapContentWidth, wrapContentHeight and wrapContentSize through existing intrinsic size and alignment styles, including unbounded child measurement, physical-pixel alignment and interactions with size, fill and padding. Keep these paths in Modifier elements and Compose Box layout, preserving ordinary CSS behavior. Retain base containers, integer validation, numeric formatting and optional weight-fill state from the existing implementation. Cancel the interval test before releasing its stack state, bound the flex_optional test initializer-list reads, and reset ErrorStorage before use to isolate test order. Include utility directly for std::pair. Share rounded-pixel CSS formatting for offset and size-range bounds through base FormatString, preserving max_digits10 precision and existing pixel rounding, clamping and density conversion. TEST: ModifierElement 300 and full DOM 4495 passed; DOM retains 36 skipped and 18 disabled cases. All custom-layout styling-pipeline cases passed. TEST: Layout 544, Starlight 78, CSS 781 and CSS parser 226 passed; CSS retains one disabled case. Repository formatting and source keyword review passed. TEST: macOS base_unittests_exec: 653 passed in each of three shuffled ASan runs, with stack-use-after-return detection enabled. | 3 天前 | |
[Optimize] Support experimental iOS thread QoS Add an experimental enable_platform_thread_scheduling_policy setting for Lynx platform threads on iOS. When enabled, Lynx threads are created and configured through Darwin QoS APIs instead of the legacy sched_priority and NSThread priority APIs. The legacy path remains the default when the setting is disabled. Expose a generic fml thread scheduling policy provider so the platform layer can control whether the QoS path is enabled without adding platform-specific logic to common thread code. SkipChecks:macro | 1 个月前 | |
[Feature][DevTool] Add CDP controls for INFO log sublevels Add Lynx.setLogLevel and Lynx.getLogLevel for the process-wide threshold shared with host logging APIs. Accept named levels including MONITOR and OBSERVE without a separate CDP override or persistent state. Read current state directly and invoke platform setters through the existing Mediator and UI Executor on every platform. Reuse the existing UI runner and its run-now-or-post behavior. Keep JSON validation in the agent and level-name conversion in logging. Return empty success after setting. Query runtimeLevel and nativeCompileLevel through Lynx.getLogLevel. Resolve the compiled threshold in the native logger and report MONITOR when INFO macros are retained, since MONITOR is the lowest retained INFO sublevel. Document lifecycle and ordering, and test filtering, host updates, invalid parameters and calls without a UI runner. Link the common platform logger for native-only macOS consumers and tests through the common static library. TEST: CDP metadata and diff whitespace checks passed. AutoSubmit: True | 1 个月前 | |
[Feature] Add cross-platform process PSS query to LynxBase - Add a public GetProcessPssBytes API backed by platform process memory metrics on Android, Apple, Harmony, Linux, and Windows. - Reuse Android process memory statistics and add lightweight Linux procfs parsing with required platform link dependencies. - Add a shared unit test that requires a positive process memory result. TEST: macOS ProcessMemoryInfoTest.ReturnsPositivePss; Android and iOS base_core builds; Harmony aarch64 compile and link; Linux x86_64 compile SkipChecks:macro | 1 个月前 | |
[Refactor] Move Android process memory query to LynxBase - Add a LynxBase Java and JNI API for collecting process memory statistics independently of trace build settings. - Keep trace-specific filtering and byte conversion in the Android trace delegate. TEST: Android Perfetto and no-trace Release native builds; targeted Java compilation; JNI generation; git diff --check | 1 个月前 | |
[Feature] Add DevTools CDP Network domain | 1 个月前 | |
[Feature] Support Compose weight fill and layout modifiers Carry weight fill through Compose Modifier operation 13 and preserve it on the physical mount root across CSS recomputation and topology changes. Let weighted children measure below their allocation without redistributing unused space. Map Dp offset operation 14 to CSS relative positioning on the child carrier inside each Modifier boundary. Preserve signed offsets, device-pixel rounding, RTL, sibling slots and drawing order without a dedicated placement callback. Map size range operation 15 to existing CSS min/max sizes at ordered boundaries. Support wrapContentWidth, wrapContentHeight and wrapContentSize through existing intrinsic size and alignment styles, including unbounded child measurement, physical-pixel alignment and interactions with size, fill and padding. Keep these paths in Modifier elements and Compose Box layout, preserving ordinary CSS behavior. Retain base containers, integer validation, numeric formatting and optional weight-fill state from the existing implementation. Cancel the interval test before releasing its stack state, bound the flex_optional test initializer-list reads, and reset ErrorStorage before use to isolate test order. Include utility directly for std::pair. Share rounded-pixel CSS formatting for offset and size-range bounds through base FormatString, preserving max_digits10 precision and existing pixel rounding, clamping and density conversion. TEST: ModifierElement 300 and full DOM 4495 passed; DOM retains 36 skipped and 18 disabled cases. All custom-layout styling-pipeline cases passed. TEST: Layout 544, Starlight 78, CSS 781 and CSS parser 226 passed; CSS retains one disabled case. Repository formatting and source keyword review passed. TEST: macOS base_unittests_exec: 653 passed in each of three shuffled ASan runs, with stack-use-after-return detection enabled. | 3 天前 | |
initial commit | 1 年前 | |
[Feature] Add Element Template reference type Add a dedicated RefType for Element Template handles without renumbering existing reference kinds. Preserve the opaque native reference across Value, RestrictedValue, and LepusNG conversions. Change-Id: I03078d0c23abfebe3d35f3afb3ed829bf68231b7 TEST: lepus_unittests_exec | 2 个月前 | |
[Optimize] Share base buffers across file I/O and heap snapshots Move buffer types and file I/O into base so scripts, bytecode caches and heap snapshots share the same ownership and persistence contract. Replace FileUtils with owned buffer reads and byte-based writes, and remove the separate HeapSnapshot interface while preserving QuickJS snapshot cleanup and cached C-string lengths. TEST: 9 Buffer file-I/O tests and 19 bytecode metadata tests passed; C-string ownership, cached-length and JSI alias smoke checks passed. Affected base, cache, snapshot and shell sources compiled. Full runtime test linking remains blocked by missing QuickJS heap-profiler symbols and a local V8/libc++ ABI mismatch. SkipChecks:macro | 5 天前 | |
initial commit | 1 年前 | |
[Optimize] Further optimize sizeof FiberElement by wrapping member variables in `auto_create_optional<>` Optimize member variables of FiberElement to reduce struct size by approximately 500 bytes. From statistics results, some member variables are seldomly used but defined in `Element` and `FiberElement`, especially container types. Wrap them by `auto_create_optional<>` will significantly reduce struct size and memory footprint of elements. issue: m-6383995029 | 1 年前 | |
initial commit | 1 年前 | |
[Optimize] Refactor gn for clay release Initialize clay build environment issue: m-6734175534 | 1 年前 | |
[Optimize] Share base buffers across file I/O and heap snapshots Move buffer types and file I/O into base so scripts, bytecode caches and heap snapshots share the same ownership and persistence contract. Replace FileUtils with owned buffer reads and byte-based writes, and remove the separate HeapSnapshot interface while preserving QuickJS snapshot cleanup and cached C-string lengths. TEST: 9 Buffer file-I/O tests and 19 bytecode metadata tests passed; C-string ownership, cached-length and JSI alias smoke checks passed. Affected base, cache, snapshot and shell sources compiled. Full runtime test linking remains blocked by missing QuickJS heap-profiler symbols and a local V8/libc++ ABI mismatch. SkipChecks:macro | 5 天前 | |
[Optimize] Share base buffers across file I/O and heap snapshots Move buffer types and file I/O into base so scripts, bytecode caches and heap snapshots share the same ownership and persistence contract. Replace FileUtils with owned buffer reads and byte-based writes, and remove the separate HeapSnapshot interface while preserving QuickJS snapshot cleanup and cached C-string lengths. TEST: 9 Buffer file-I/O tests and 19 bytecode metadata tests passed; C-string ownership, cached-length and JSI alias smoke checks passed. Affected base, cache, snapshot and shell sources compiled. Full runtime test linking remains blocked by missing QuickJS heap-profiler symbols and a local V8/libc++ ABI mismatch. SkipChecks:macro | 5 天前 | |
[Optimize] BundledOptionals data transfer using add-on type traits Optimize data transfer using `IsTriviallyRelocatable` type trait. | 10 个月前 | |
initial commit | 1 年前 | |
initial commit | 1 年前 | |
[Optimize] Rename modp_b64_xx method with prefix lynx. 1. Rename modp_b64_xx method with prefix lynx to avoid symbol conflict; 2. Use LynxBase dependency to avoid the same source files in different pod. | 7 个月前 | |
initial commit | 1 年前 | |
initial commit | 1 年前 | |
[Feature] Support Compose weight fill and layout modifiers Carry weight fill through Compose Modifier operation 13 and preserve it on the physical mount root across CSS recomputation and topology changes. Let weighted children measure below their allocation without redistributing unused space. Map Dp offset operation 14 to CSS relative positioning on the child carrier inside each Modifier boundary. Preserve signed offsets, device-pixel rounding, RTL, sibling slots and drawing order without a dedicated placement callback. Map size range operation 15 to existing CSS min/max sizes at ordered boundaries. Support wrapContentWidth, wrapContentHeight and wrapContentSize through existing intrinsic size and alignment styles, including unbounded child measurement, physical-pixel alignment and interactions with size, fill and padding. Keep these paths in Modifier elements and Compose Box layout, preserving ordinary CSS behavior. Retain base containers, integer validation, numeric formatting and optional weight-fill state from the existing implementation. Cancel the interval test before releasing its stack state, bound the flex_optional test initializer-list reads, and reset ErrorStorage before use to isolate test order. Include utility directly for std::pair. Share rounded-pixel CSS formatting for offset and size-range bounds through base FormatString, preserving max_digits10 precision and existing pixel rounding, clamping and density conversion. TEST: ModifierElement 300 and full DOM 4495 passed; DOM retains 36 skipped and 18 disabled cases. All custom-layout styling-pipeline cases passed. TEST: Layout 544, Starlight 78, CSS 781 and CSS parser 226 passed; CSS retains one disabled case. Repository formatting and source keyword review passed. TEST: macOS base_unittests_exec: 653 passed in each of three shuffled ASan runs, with stack-use-after-return detection enabled. | 3 天前 | |
initial commit | 1 年前 | |
[Optimize] Unify the interface name of the map containers in the base library The base library provides several custom map implementations, and some function signatures differ. This commit standardizes some interface definitions; for example, `foreach` is now uniformly changed to `for_each`. The constructor no longer provides the `reserve` capability. | 11 个月前 | |
[Optimize] Unify the interface name of the map containers in the base library The base library provides several custom map implementations, and some function signatures differ. This commit standardizes some interface definitions; for example, `foreach` is now uniformly changed to `for_each`. The constructor no longer provides the `reserve` capability. | 11 个月前 | |
initial commit | 1 年前 | |
initial commit | 1 年前 | |
[Optimize] Notification center code Use a recursive lock to prevent the notification event from being triggered again in the callback. Copy the container before dispatching notifications. | 4 个月前 | |
[Optimize] Extend MemoryPressureCallback to general NotificationCallback The original MemoryPressureCallback has been expanded into NotificationCallback and placed in the base. It also supports multiple event callbacks, using tag and data as parameters. | 5 个月前 | |
initial commit | 1 年前 | |
initial commit | 1 年前 | |
initial commit | 1 年前 | |
initial commit | 1 年前 | |
[Optimize] Add statistics ability to map/set based on vector Add additional template argument `Stat` for flat map/set types. You can turn on statistics for single type of map container such as `using AttrMap = base::LinearSearchMap<base::String, lepus::Value, 0, true>` and after statistics data collected revert the code as `using AttrMap = LinearFlatMap<base::String, lepus::Value>`. SkipChecks: macro issue: m-6327137251 | 1 年前 | |
[Optimize] Add a template argument to `base::Vector` for local performance benchmark Add the `CountRealloc` template parameter to `base::vector`. This parameter can track memory allocation for the specified instantiated type, which can be used for local performance debugging to find abnormal array resizing. | 10 个月前 | |
initial commit | 1 年前 |