Skip to content

feat: support shared-context#520

Merged
PupilTong merged 5 commits intolynx-family:mainfrom
PupilTong:p/hw/support-bts-shared-context
Apr 11, 2025
Merged

feat: support shared-context#520
PupilTong merged 5 commits intolynx-family:mainfrom
PupilTong:p/hw/support-bts-shared-context

Conversation

@PupilTong
Copy link
Copy Markdown
Collaborator

@PupilTong PupilTong commented Apr 10, 2025

  • support nativeApp.getSharedData and nativeApp.setSharedData
  • add the context id for labeling workers. Now for those workers with context id, we will count the number of running cards. We kill those workers only if all lynx card has been killed.

Summary

Checklist

  • Tests updated (or not required).
  • Documentation updated (or not required).

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 10, 2025

🦋 Changeset detected

Latest commit: cfb2051

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 5 packages
Name Type
@lynx-js/web-worker-runtime Patch
@lynx-js/web-constants Patch
@lynx-js/web-core Patch
@lynx-js/web-mainthread-apis Patch
@lynx-js/web-worker-rpc Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@PupilTong PupilTong requested review from Sherry-hue, Yradex, colinaaa, Copilot, hzy and upupming and removed request for Copilot April 10, 2025 14:10
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 10, 2025

Bundle Report

Changes will increase total bundle size by 550 bytes (0.09%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
@lynx-js/web-explorer-web-array-push 310.68kB 550 bytes (0.18%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: @lynx-js/web-explorer-web-array-push

Assets Changed:

Asset Name Size Change Total Size Change (%)
static/js/index.js 493 bytes 145.46kB 0.34%
static/js/async/159.js 57 bytes 84.58kB 0.07%

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Apr 10, 2025

CodSpeed Performance Report

Merging #520 will not alter performance

Comparing PupilTong:p/hw/support-bts-shared-context (cfb2051) with main (7169fa1)

Summary

✅ 1 untouched benchmarks

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 10, 2025

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
2435 1 2434 66
View the top 1 failed test(s) by shortest run time
react.spec.ts reactlynx3 testsapisapi-exposureapi-shared-context
Stack Traces | 34.6s run time
react.spec.ts:674:7 api-shared-context

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

PupilTong and others added 4 commits April 11, 2025 17:02
* support `nativeApp.getSharedData` and `nativeApp.setSharedData`
* add the context id for labeling workers. Now for those workers with context id, we will count the number of running cards. We kill those workers only if all lynx card has been killed.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: PupilTong <12288479+PupilTong@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: PupilTong <12288479+PupilTong@users.noreply.github.com>
@PupilTong PupilTong force-pushed the p/hw/support-bts-shared-context branch from 08650e8 to 9c44c0f Compare April 11, 2025 09:02
@PupilTong PupilTong marked this pull request as ready for review April 11, 2025 09:02
@PupilTong PupilTong added this pull request to the merge queue Apr 11, 2025
Merged via the queue into lynx-family:main with commit a0f5ca4 Apr 11, 2025
22 checks passed
@PupilTong PupilTong deleted the p/hw/support-bts-shared-context branch April 11, 2025 10:36
colinaaa pushed a commit that referenced this pull request Apr 11, 2025
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @lynx-js/web-core@0.11.0

### Minor Changes

- feat: upgrade @lynx-js/lynx-core to 0.1.2
([#465](#465))

    refactor some internal logic

    -   \_\_OnLifeCycleEvent
    -   \_\_OnNativeAppReady

### Patch Changes

- feat: support mts event handler (1/n)
([#495](#495))

now the main-thread:bind handler could be invoked. The params of the
handler will be implemented later.

- feat: allow multi lynx-view to share bts worker
([#520](#520))

Now we allow users to enable so-called "shared-context" feature on the
Web Platform.

Similar to the same feature for Lynx iOS/Android, this feature let multi
lynx cards to share one js context.

The `lynx.getSharedData` and `lynx.setSharedData` are also supported in
this commit.

To enable this feature, set property `lynxGroupId` or attribute
`lynx-group-id` before a lynx-view starts rendering. Those card with
same context id will share one web worker for the bts scripts.

- perf: dispatchLynxViewEventEndpoint is a void call
([#506](#506))

- Updated dependencies
\[[`ea42e62`](ea42e62),
[`a0f5ca4`](a0f5ca4)]:
    -   @lynx-js/web-worker-runtime@0.11.0
    -   @lynx-js/web-constants@0.11.0
    -   @lynx-js/web-worker-rpc@0.11.0

## @lynx-js/react@0.106.4

### Patch Changes

- Disable MTS HMR functionality temporarily to address stability issues.
This is a temporary fix while we work on a more robust solution.
([#512](#512))

## @lynx-js/rspeedy@0.9.1

### Patch Changes

- Bump Rsbuild v1.3.5 with Rspack v1.3.3.
([#467](#467))

## @lynx-js/react-rsbuild-plugin@0.9.6

### Patch Changes

- Updated dependencies
\[[`ea42e62`](ea42e62),
[`12e3afe`](12e3afe)]:
    -   @lynx-js/web-webpack-plugin@0.6.4
    -   @lynx-js/template-webpack-plugin@0.6.9
    -   @lynx-js/react-alias-rsbuild-plugin@0.9.6
    -   @lynx-js/react-refresh-webpack-plugin@0.3.2
    -   @lynx-js/react-webpack-plugin@0.6.10
    -   @lynx-js/css-extract-webpack-plugin@0.5.3

## @lynx-js/web-constants@0.11.0

### Patch Changes

- feat: support mts event handler (1/n)
([#495](#495))

now the main-thread:bind handler could be invoked. The params of the
handler will be implemented later.

- feat: allow multi lynx-view to share bts worker
([#520](#520))

Now we allow users to enable so-called "shared-context" feature on the
Web Platform.

Similar to the same feature for Lynx iOS/Android, this feature let multi
lynx cards to share one js context.

The `lynx.getSharedData` and `lynx.setSharedData` are also supported in
this commit.

To enable this feature, set property `lynxGroupId` or attribute
`lynx-group-id` before a lynx-view starts rendering. Those card with
same context id will share one web worker for the bts scripts.

-   Updated dependencies \[]:
    -   @lynx-js/web-worker-rpc@0.11.0

## @lynx-js/web-elements@0.5.4

### Patch Changes

- chore: bump the output target to es2024
([#518](#518))

- fix: the `\n` character should create a new line
([#522](#522))

    add `white-space-collapse: preserve-breaks` to raw-text

- fix: the `input` event of x-input with number type should have raw
value ([#517](#517))

    For `type:=number` x-input with typed value "2."

    Before this commit: the value is "2"

    After this commit the value is "2."

## @lynx-js/web-explorer@0.0.4

### Patch Changes

- feat: add a touch emulator that allows the explorer to respond to
touch events triggered by mouse events
([#516](#516))

## @lynx-js/web-mainthread-apis@0.11.0

### Patch Changes

- feat: support mts event handler (1/n)
([#495](#495))

now the main-thread:bind handler could be invoked. The params of the
handler will be implemented later.

- Updated dependencies
\[[`ea42e62`](ea42e62),
[`a0f5ca4`](a0f5ca4)]:
    -   @lynx-js/web-constants@0.11.0

## @lynx-js/web-worker-runtime@0.11.0

### Patch Changes

- feat: support mts event handler (1/n)
([#495](#495))

now the main-thread:bind handler could be invoked. The params of the
handler will be implemented later.

- feat: allow multi lynx-view to share bts worker
([#520](#520))

Now we allow users to enable so-called "shared-context" feature on the
Web Platform.

Similar to the same feature for Lynx iOS/Android, this feature let multi
lynx cards to share one js context.

The `lynx.getSharedData` and `lynx.setSharedData` are also supported in
this commit.

To enable this feature, set property `lynxGroupId` or attribute
`lynx-group-id` before a lynx-view starts rendering. Those card with
same context id will share one web worker for the bts scripts.

- Updated dependencies
\[[`ea42e62`](ea42e62),
[`a0f5ca4`](a0f5ca4)]:
    -   @lynx-js/web-mainthread-apis@0.11.0
    -   @lynx-js/web-constants@0.11.0
    -   @lynx-js/web-worker-rpc@0.11.0

## @lynx-js/template-webpack-plugin@0.6.9

### Patch Changes

- Fix incorrect hash of `background.[contenthash].js` in `.lynx.bundle`
files. ([#498](#498))

## @lynx-js/web-webpack-plugin@0.6.4

### Patch Changes

- feat: support mts event handler (1/n)
([#495](#495))

now the main-thread:bind handler could be invoked. The params of the
handler will be implemented later.

## create-rspeedy@0.9.1



## @lynx-js/react-alias-rsbuild-plugin@0.9.6



## upgrade-rspeedy@0.9.1



## @lynx-js/web-worker-rpc@0.11.0

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants