Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Fizz Browser: fix precomputed chunk being cleared on Node 18#25645

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
sebmarkbage merged 9 commits intofacebook:mainfromfeedthejim:fix-stream-enqueue
Nov 22, 2022

Conversation

feedthejim
Copy link
Contributor

@feedthejimfeedthejim commentedNov 7, 2022
edited
Loading

Edit

Went for another approach after talking with@gnoff. The approach is now:

  • add a dev-only error when a precomputed chunk is too big to be written
  • suggest to copy it before passing it towriteChunk

This PR also includes porting the React Float tests to use the browser build of Fizz so that we can test it out on that environment (which is the one used by next).

Summary

Someone reporteda bug in Next.js that pointed to an issue with Node 18 in the streaming renderer when using importing a CSS module where it only returned a malformed bootstraping script only after loading the page once.

After investigating a bit, here's what I found:

  • when using a CSS module in Next, we go into this code path, which writes the aforementioned bootstrapping script

if(!responseState.sentCompleteBoundaryFunction){
responseState.sentCompleteBoundaryFunction=true;
responseState.sentStyleInsertionFunction=true;
writeChunk(destination,completeBoundaryWithStylesScript1FullBoth);
}elseif(!responseState.sentStyleInsertionFunction){

I think the proper fix for this is to clone the array buffer before enqueuing it. (we do this in the other code paths in the function later on, see((currentView: any): Uint8Array).set(bytesToWrite, writtenBytes);

How did you test this change?

Manually tested by applying the change in the compiled Next.js version.

PupoSDC, LB22, and philipp-spiess reacted with heart emojitransitive-bullshit and LB22 reacted with eyes emoji
@feedthejimfeedthejim marked this pull request as draftNovember 7, 2022 18:31
@feedthejimfeedthejim marked this pull request as ready for reviewNovember 7, 2022 18:40
@facebook-github-bot
Copy link
Contributor

Hi@feedthejim!

Thank you for your pull request.

Werequire contributors to sign ourContributor License Agreement, and yours needs attention.

You currently have a record in our system, but the CLA is no longer valid, and will need to beresubmitted.

Process

In order for us to review and merge your suggested changes, please sign athttps://code.facebook.com/cla.If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, thepull request will be tagged withCLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us atcla@meta.com. Thanks!

@facebook-github-bot
Copy link
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@feedthejimfeedthejim marked this pull request as draftNovember 10, 2022 13:31
@feedthejimfeedthejim changed the titleStreaming Renderer: clone buffer when directly enqueuing it inFizz Browser: fix precomputed chunk being cleared on Node 18Nov 11, 2022
@sizebot
Copy link

sizebot commentedNov 11, 2022
edited
Loading

Comparing:13681aa...c736478

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name+/-BaseCurrent+/- gzipBase gzipCurrent gzip
oss-stable/react-dom/cjs/react-dom.production.min.js=154.33 kB154.33 kB=48.98 kB48.98 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js=156.25 kB156.25 kB=49.60 kB49.60 kB
facebook-www/ReactDOM-prod.classic.js=533.14 kB533.14 kB=94.42 kB94.42 kB
facebook-www/ReactDOM-prod.modern.js=518.24 kB518.24 kB=92.24 kB92.24 kB
facebook-www/ReactDOMForked-prod.classic.js=533.14 kB533.14 kB=94.42 kB94.42 kB
oss-experimental/react-noop-renderer/cjs/react-noop-renderer-flight-server.production.min.js+4.12%1.07 kB1.11 kB+1.28%0.55 kB0.55 kB
oss-stable-semver/react-noop-renderer/cjs/react-noop-renderer-flight-server.production.min.js+4.12%1.07 kB1.11 kB+1.28%0.55 kB0.55 kB
oss-stable/react-noop-renderer/cjs/react-noop-renderer-flight-server.production.min.js+4.12%1.07 kB1.11 kB+1.28%0.55 kB0.55 kB
oss-experimental/react-noop-renderer/cjs/react-noop-renderer-flight-server.development.js+3.14%2.14 kB2.20 kB+1.97%0.86 kB0.88 kB
oss-stable-semver/react-noop-renderer/cjs/react-noop-renderer-flight-server.development.js+3.14%2.14 kB2.20 kB+1.97%0.86 kB0.88 kB
oss-stable/react-noop-renderer/cjs/react-noop-renderer-flight-server.development.js+3.14%2.14 kB2.20 kB+1.97%0.86 kB0.88 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name+/-BaseCurrent+/- gzipBase gzipCurrent gzip
oss-experimental/react-noop-renderer/cjs/react-noop-renderer-flight-server.production.min.js+4.12%1.07 kB1.11 kB+1.28%0.55 kB0.55 kB
oss-stable-semver/react-noop-renderer/cjs/react-noop-renderer-flight-server.production.min.js+4.12%1.07 kB1.11 kB+1.28%0.55 kB0.55 kB
oss-stable/react-noop-renderer/cjs/react-noop-renderer-flight-server.production.min.js+4.12%1.07 kB1.11 kB+1.28%0.55 kB0.55 kB
oss-experimental/react-noop-renderer/cjs/react-noop-renderer-flight-server.development.js+3.14%2.14 kB2.20 kB+1.97%0.86 kB0.88 kB
oss-stable-semver/react-noop-renderer/cjs/react-noop-renderer-flight-server.development.js+3.14%2.14 kB2.20 kB+1.97%0.86 kB0.88 kB
oss-stable/react-noop-renderer/cjs/react-noop-renderer-flight-server.development.js+3.14%2.14 kB2.20 kB+1.97%0.86 kB0.88 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js+0.75%84.19 kB84.82 kB+0.88%20.88 kB21.07 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js+0.75%84.19 kB84.82 kB+0.88%20.88 kB21.07 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js+0.75%84.25 kB84.88 kB+0.89%20.90 kB21.09 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js+0.69%83.00 kB83.57 kB+0.83%20.82 kB20.99 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js+0.69%83.00 kB83.57 kB+0.83%20.82 kB20.99 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js+0.69%83.06 kB83.63 kB+0.83%20.84 kB21.01 kB
oss-stable-semver/react-server-dom-webpack/umd/react-server-dom-webpack-server.browser.development.js+0.67%87.17 kB87.76 kB+0.84%21.07 kB21.24 kB
oss-stable/react-server-dom-webpack/umd/react-server-dom-webpack-server.browser.development.js+0.67%87.17 kB87.76 kB+0.84%21.07 kB21.24 kB
oss-experimental/react-server-dom-webpack/umd/react-server-dom-webpack-server.browser.development.js+0.67%87.23 kB87.82 kB+0.83%21.09 kB21.27 kB
facebook-relay/flight/ReactFlightNativeRelayServer-dev.js+0.31%57.47 kB57.65 kB+0.21%14.30 kB14.33 kB
oss-stable-semver/react-dom/cjs/react-dom-server.node.development.js+0.25%317.43 kB318.23 kB+0.31%72.60 kB72.82 kB
oss-stable/react-dom/cjs/react-dom-server.node.development.js+0.25%317.46 kB318.26 kB+0.32%72.62 kB72.85 kB
oss-experimental/react-dom/cjs/react-dom-static.node.development.js+0.25%318.71 kB319.51 kB+0.32%73.06 kB73.29 kB
oss-experimental/react-dom/cjs/react-dom-server.node.development.js+0.25%318.75 kB319.55 kB+0.32%72.97 kB73.20 kB
oss-stable-semver/react-dom/cjs/react-dom-server.browser.development.js+0.23%316.27 kB317.01 kB+0.29%72.66 kB72.88 kB
oss-stable/react-dom/cjs/react-dom-server.browser.development.js+0.23%316.29 kB317.03 kB+0.30%72.68 kB72.90 kB
oss-experimental/react-dom/cjs/react-dom-static.browser.development.js+0.23%316.89 kB317.63 kB+0.30%72.85 kB73.07 kB
oss-experimental/react-dom/cjs/react-dom-server.browser.development.js+0.23%317.59 kB318.32 kB+0.30%73.03 kB73.25 kB
oss-stable-semver/react-dom/umd/react-dom-server.browser.development.js+0.23%331.66 kB332.42 kB+0.30%73.42 kB73.63 kB
oss-stable/react-dom/umd/react-dom-server.browser.development.js+0.23%331.68 kB332.44 kB+0.30%73.44 kB73.66 kB
oss-experimental/react-dom/umd/react-dom-server.browser.development.js+0.23%333.06 kB333.82 kB+0.30%73.78 kB74.00 kB

Generated by 🚫dangerJS againstc736478

<AsyncText text="AAAA" />
<link rel="stylesheet" href="AAAA" precedence="AAAA" />
// @gate enableFloat
it('boundary style resource dependencies hoist to a parent boundary when flushed inline', async () => {
Copy link
ContributorAuthor

Choose a reason for hiding this comment

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

this test fails on the browser version@gnoff, I'm not sure if it's a bug on Float or because of the way I wrapped the streams

ReactDOM.preload('foo', {as: 'style'});
}, []);
return 'foobar';
function renderToPipeableStream(jsx, options) {
Copy link
ContributorAuthor

Choose a reason for hiding this comment

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

this is the relevant change to review in this file

Copy link
Collaborator

@gnoffgnoff left a comment

Choose a reason for hiding this comment

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

Left a few specific comments but looks really good

Comment on lines 47 to 50
ReactDOMFizzServer =
runtime === 'node'
? require('react-dom/server')
: require('react-dom/server.browser');
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
ReactDOMFizzServer=
runtime==='node'
?require('react-dom/server')
:require('react-dom/server.browser');
ReactDOMFizzServer=
runtime==='browser'
?require('react-dom/server.browser')
:require('react-dom/server');

maybe check browser explicitly since the fact that node is default is maybe going to change

Comment on lines 300 to 305
streamPromise.then(stream =>
stream.pipeTo(
nodeWriteableStreamToWebWritableStream(destination),
),
);
return destination;
Copy link
Collaborator

Choose a reason for hiding this comment

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

It is interesting that this didn't change any test behaviors. For the node runtime you can pipe even before the shell is ready. but in the web stream case we can't start the pipe until the stream promise resolves which happens after the shell is ready. Maybe it doesn't matter too much because nothing flushes until the shell is ready so the early pipe is functionally equivalent. My guess is when we implement preamble this might need to be refactored again.

Comment on lines 47 to 50
ReactDOMFizzServer =
runtime === 'node'
? require('react-dom/server')
: require('react-dom/server.browser');
Copy link
Collaborator

Choose a reason for hiding this comment

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

This actually may not work for Jest. We need to come up with another way to fully exercise our tests in a variety of runtimes but this may not be the right approach. Do you have insight into how to resolve the test failures that are occurring?

cc@sebmarkbage would be good to get your insight on what Jimmy should do for tests for this kind of change. I love the ambition here but I know there are a lot of complications when trying to import from more than one runtime in a single test file

@feedthejimfeedthejim marked this pull request as ready for reviewNovember 21, 2022 18:04
@feedthejim
Copy link
ContributorAuthor

I've removed the tests so we can land this quickly, we can follow up on the test setup another time. cc@sebmarkbage

@sebmarkbagesebmarkbage merged commit2655c93 intofacebook:mainNov 22, 2022
@feedthejimfeedthejim deleted the fix-stream-enqueue branchNovember 22, 2022 09:04
@huozhihuozhi mentioned this pull requestNov 23, 2022
3 tasks
kodiakhqbot pushed a commit to vercel/next.js that referenced this pull requestNov 23, 2022
Update pre-compiled react to fix the streaming issue with node 18.x-ref:facebook/react#25645Fixes:#42466Manually tested locally works for the reproduction from the issue## Bug- [x] Related issues linked using `fixes #number`- [ ] Integration tests added- [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)
mofeiZ pushed a commit to mofeiZ/react that referenced this pull requestDec 2, 2022
…k#25645)## EditWent for another approach after talking with@gnoff. The approach isnow:- add a dev-only error when a precomputed chunk is too big to be written- suggest to copy it before passing it to `writeChunk`This PR also includes porting the React Float tests to use the browserbuild of Fizz so that we can test it out on that environment (which isthe one used by next).<!--  Thanks for submitting a pull request!We appreciate you spending the time to work on these changes. Pleaseprovide enough information so that others can review your pull request.The three fields below are mandatory.Before submitting a pull request, please make sure the following isdone:1. Fork [the repository](https://github.com/facebook/react) and createyour branch from `main`.  2. Run `yarn` in the repository root.3. If you've fixed a bug or added code that should be tested, add tests!4. Ensure the test suite passes (`yarn test`). Tip: `yarn test --watchTestName` is helpful in development.5. Run `yarn test --prod` to test in the production environment. Itsupports the same options as `yarn test`.6. If you need a debugger, run `yarn debug-test --watch TestName`, open`chrome://inspect`, and press "Inspect".7. Format your code with[prettier](https://github.com/prettier/prettier) (`yarn prettier`).8. Make sure your code lints (`yarn lint`). Tip: `yarn linc` to onlycheck changed files.  9. Run the [Flow](https://flowtype.org/) type checks (`yarn flow`).  10. If you haven't already, complete the CLA.Learn more about contributing:https://reactjs.org/docs/how-to-contribute.html-->## SummarySomeone reported [a bug](vercel/next.js#42466)in Next.js that pointed to an issue with Node 18 in the streamingrenderer when using importing a CSS module where it only returned amalformed bootstraping script only after loading the page once.After investigating a bit, here's what I found:- when using a CSS module in Next, we go into this code path, whichwrites the aforementioned bootstrapping scripthttps://github.com/facebook/react/blob/5f7ef8c4cbe824ef126a947b7ae0e1c07b143357/packages/react-dom-bindings/src/server/ReactDOMServerFormatConfig.js#L2443-L2447- the reason for the malformed script is that`completeBoundaryWithStylesScript1FullBoth` is emptied after the call to`writeChunk`- it gets emptied in `writeChunk` because we stream the chunk directlywithout copying it in this codepathhttps://github.com/facebook/react/blob/a438590144d2ad40865b58e0c0e69595fc1aa377/packages/react-server/src/ReactServerStreamConfigBrowser.js#L63- the reason why it only happens from Node 18 is because the WebstreamsAPIs are available natively from that version and in theirimplementation, [`enqueue` transfers the array bufferownership](https://github.com/nodejs/node/blob/9454ba6138d11e8a4d18b073de25781cad4bd2c8/lib/internal/webstreams/readablestream.js#L2641),thus making it unavailable/empty for subsequent calls. In older Nodeversions, we don't encounter the bug because we are using a polyfill inNext.js, [which does not implement properly the array buffer transferbehaviour](https://cs.github.com/MattiasBuelens/web-streams-polyfill/blob/d354a7457ca8a24030dbd0a135ee40baed7c774d/src/lib/abstract-ops/ecmascript.ts#L16).I think the proper fix for this is to clone the array buffer beforeenqueuing it. (we do this in the other code paths in the function lateron, see ```((currentView: any): Uint8Array).set(bytesToWrite,writtenBytes);```## How did you test this change?Manually tested by applying the change in the compiled Next.js version.<!--Demonstrate the code is solid. Example: The exact commands you ran andtheir output, screenshots / videos if the pull request changes the userinterface.How exactly did you verify that your PR solves the issue you wanted tosolve?  If you leave this empty, your PR will very likely be closed.-->Co-authored-by: Sebastian Markbage <sebastian@calyptus.eu>
mofeiZ pushed a commit to mofeiZ/react that referenced this pull requestDec 5, 2022
…k#25645)## EditWent for another approach after talking with@gnoff. The approach isnow:- add a dev-only error when a precomputed chunk is too big to be written- suggest to copy it before passing it to `writeChunk`This PR also includes porting the React Float tests to use the browserbuild of Fizz so that we can test it out on that environment (which isthe one used by next).<!--  Thanks for submitting a pull request!We appreciate you spending the time to work on these changes. Pleaseprovide enough information so that others can review your pull request.The three fields below are mandatory.Before submitting a pull request, please make sure the following isdone:1. Fork [the repository](https://github.com/facebook/react) and createyour branch from `main`.  2. Run `yarn` in the repository root.3. If you've fixed a bug or added code that should be tested, add tests!4. Ensure the test suite passes (`yarn test`). Tip: `yarn test --watchTestName` is helpful in development.5. Run `yarn test --prod` to test in the production environment. Itsupports the same options as `yarn test`.6. If you need a debugger, run `yarn debug-test --watch TestName`, open`chrome://inspect`, and press "Inspect".7. Format your code with[prettier](https://github.com/prettier/prettier) (`yarn prettier`).8. Make sure your code lints (`yarn lint`). Tip: `yarn linc` to onlycheck changed files.  9. Run the [Flow](https://flowtype.org/) type checks (`yarn flow`).  10. If you haven't already, complete the CLA.Learn more about contributing:https://reactjs.org/docs/how-to-contribute.html-->## SummarySomeone reported [a bug](vercel/next.js#42466)in Next.js that pointed to an issue with Node 18 in the streamingrenderer when using importing a CSS module where it only returned amalformed bootstraping script only after loading the page once.After investigating a bit, here's what I found:- when using a CSS module in Next, we go into this code path, whichwrites the aforementioned bootstrapping scripthttps://github.com/facebook/react/blob/5f7ef8c4cbe824ef126a947b7ae0e1c07b143357/packages/react-dom-bindings/src/server/ReactDOMServerFormatConfig.js#L2443-L2447- the reason for the malformed script is that`completeBoundaryWithStylesScript1FullBoth` is emptied after the call to`writeChunk`- it gets emptied in `writeChunk` because we stream the chunk directlywithout copying it in this codepathhttps://github.com/facebook/react/blob/a438590144d2ad40865b58e0c0e69595fc1aa377/packages/react-server/src/ReactServerStreamConfigBrowser.js#L63- the reason why it only happens from Node 18 is because the WebstreamsAPIs are available natively from that version and in theirimplementation, [`enqueue` transfers the array bufferownership](https://github.com/nodejs/node/blob/9454ba6138d11e8a4d18b073de25781cad4bd2c8/lib/internal/webstreams/readablestream.js#L2641),thus making it unavailable/empty for subsequent calls. In older Nodeversions, we don't encounter the bug because we are using a polyfill inNext.js, [which does not implement properly the array buffer transferbehaviour](https://cs.github.com/MattiasBuelens/web-streams-polyfill/blob/d354a7457ca8a24030dbd0a135ee40baed7c774d/src/lib/abstract-ops/ecmascript.ts#L16).I think the proper fix for this is to clone the array buffer beforeenqueuing it. (we do this in the other code paths in the function lateron, see ```((currentView: any): Uint8Array).set(bytesToWrite,writtenBytes);```## How did you test this change?Manually tested by applying the change in the compiled Next.js version.<!--Demonstrate the code is solid. Example: The exact commands you ran andtheir output, screenshots / videos if the pull request changes the userinterface.How exactly did you verify that your PR solves the issue you wanted tosolve?  If you leave this empty, your PR will very likely be closed.-->Co-authored-by: Sebastian Markbage <sebastian@calyptus.eu>
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull requestJan 30, 2023
Summary:Three problems popped up during the sync:-facebook/react@07f46ecf2 breaks breaks tests-facebook/react@6fb8133ed breaks fbsource tests. I added a workaround and created a test for the team that owns the test.-https://fb.workplace.com/groups/flowlang/permalink/1198137807458547/ enables local type interference in fbsource but not in github React repo and some code breaks. Addressed infacebook/react#26064This sync includes the following changes:- **[17f6912a4](facebook/react@17f6912a4 )**: Add flow types to ReactFiberHooks ([#25752](facebook/react#25752)) //<Samuel Susla>//- **[f101c2d0d](facebook/react@f101c2d0d )**: Remove Reconciler fork (2/2) ([#25775](facebook/react#25775)) //<Jan Kassens>//- **[420f0b7fa](facebook/react@420f0b7fa )**: Remove Reconciler fork (1/2) ([#25774](facebook/react#25774)) //<Jan Kassens>//- **[3ba7add60](facebook/react@3ba7add60 )**: Allow async blocks in `to(Error|Warn)Dev` ([#25338](facebook/react#25338)) //<Sebastian Silbermann>//- **[fa11bd6ec](facebook/react@fa11bd6ec )**: [ServerRenderer] Add option to send instructions as data attributes ([#25437](facebook/react#25437)) //<mofeiZ>//- **[e98225485](facebook/react@e98225485 )**: Add ref cleanup function ([#25686](facebook/react#25686)) //<Samuel Susla>//- **[15557fa67](facebook/react@15557fa67 )**: [Fix] properly track `useId` use in StrictMode in development ([#25713](facebook/react#25713)) //<Josh Story>//- **[8a23def32](facebook/react@8a23def32 )**: Resubmit Add HydrationSyncLane ([#25711](facebook/react#25711)) //<Tianyu Yao>//- **[2655c9354](facebook/react@2655c9354 )**: Fizz Browser: fix precomputed chunk being cleared on Node 18 ([#25645](facebook/react#25645)) //<Jimmy Lai>//- **[c08d8b804](facebook/react@c08d8b804 )**: Revert "Add SyncHydrationLane" ([#25708](facebook/react#25708)) //<Tianyu Yao>//- **[56ffca8b9](facebook/react@56ffca8b9 )**: Add Bun streaming server renderer ([#25597](facebook/react#25597)) //<Colin McDonnell>//- **[f31005d6a](facebook/react@f31005d6a )**: Add SyncHydrationLane ([#25698](facebook/react#25698)) //<Tianyu Yao>//- **[f284d9faf](facebook/react@f284d9faf )**: Track ThenableState alongside other hooks //<Andrew Clark>//- **[6b4c0314e](facebook/react@6b4c0314e )**: Check thenable instead of thenableState //<Andrew Clark>//- **[33e3d2878](facebook/react@33e3d2878 )**: Reuse hooks when replaying a suspended component //<Andrew Clark>//- **[4387d752d](facebook/react@4387d752d )**: Allow more hooks to be added when replaying mount //<Andrew Clark>//- **[5eb78d0a0](facebook/react@5eb78d0a0 )**: Pass ThenableState to replaySuspendedUnitOfWork //<Andrew Clark>//- **[4a2d86bdd](facebook/react@4a2d86bdd )**: Don't reset work loop until stack is unwound //<Andrew Clark>//- **[9dfbd9fa9](facebook/react@9dfbd9fa9 )**: use: Don't suspend if there are pending updates //<Andrew Clark>//- **[44c4e6f4d](facebook/react@44c4e6f4d )**: Force unwind work loop during selective hydration ([#25695](facebook/react#25695)) //<Andrew Clark>//- **[7b17f7bbf](facebook/react@7b17f7bbf )**: Enable warning for defaultProps on function components for everyone ([#25699](facebook/react#25699)) //<Sebastian Markbåge>//- **[6fb8133ed](facebook/react@6fb8133ed )**: Turn on string ref deprecation warning for everybody (not codemoddable) ([#25383](facebook/react#25383)) //<Sebastian Silbermann>//- **[07f46ecf2](facebook/react@07f46ecf2 )**: Turn on key spread warning in jsx-runtime for everyone ([#25697](facebook/react#25697)) //<Sebastian Markbåge>//- **[d65b88d03](facebook/react@d65b88d03 )**: Eagerly initialize an mutable object for instance.refs ([#25696](facebook/react#25696)) //<Sebastian Markbåge>//- **[c343f8025](facebook/react@c343f8025 )**: [react-float] feature detect getRootNode ([#25689](facebook/react#25689)) //<Jan Kassens>//- **[e1dd0a2f5](facebook/react@e1dd0a2f5 )**: Remove recoverable error when a sync update flows into a dehydrated boundary ([#25692](facebook/react#25692)) //<Sebastian Markbåge>//- **[c54e3541b](facebook/react@c54e3541b )**: [DevTools] bug fix for Hydrating fibers ([#25663](facebook/react#25663)) //<Mengdi Chen>//Changelog:[General][Changed] - React Native sync for revisions d1e35c7...17f6912jest_e2e[run_all_tests]Reviewed By: makovkastarDifferential Revision: D42804802fbshipit-source-id: 6a9f00724cc73378025bbd04edb2d17760a87280
OlimpiaZurek pushed a commit to OlimpiaZurek/react-native that referenced this pull requestMay 22, 2023
Summary:Three problems popped up during the sync:-facebook/react@07f46ecf2 breaks breaks tests-facebook/react@6fb8133ed breaks fbsource tests. I added a workaround and created a test for the team that owns the test.-https://fb.workplace.com/groups/flowlang/permalink/1198137807458547/ enables local type interference in fbsource but not in github React repo and some code breaks. Addressed infacebook/react#26064This sync includes the following changes:- **[17f6912a4](facebook/react@17f6912a4 )**: Add flow types to ReactFiberHooks ([facebook#25752](facebook/react#25752)) //<Samuel Susla>//- **[f101c2d0d](facebook/react@f101c2d0d )**: Remove Reconciler fork (2/2) ([facebook#25775](facebook/react#25775)) //<Jan Kassens>//- **[420f0b7fa](facebook/react@420f0b7fa )**: Remove Reconciler fork (1/2) ([facebook#25774](facebook/react#25774)) //<Jan Kassens>//- **[3ba7add60](facebook/react@3ba7add60 )**: Allow async blocks in `to(Error|Warn)Dev` ([facebook#25338](facebook/react#25338)) //<Sebastian Silbermann>//- **[fa11bd6ec](facebook/react@fa11bd6ec )**: [ServerRenderer] Add option to send instructions as data attributes ([facebook#25437](facebook/react#25437)) //<mofeiZ>//- **[e98225485](facebook/react@e98225485 )**: Add ref cleanup function ([facebook#25686](facebook/react#25686)) //<Samuel Susla>//- **[15557fa67](facebook/react@15557fa67 )**: [Fix] properly track `useId` use in StrictMode in development ([facebook#25713](facebook/react#25713)) //<Josh Story>//- **[8a23def32](facebook/react@8a23def32 )**: Resubmit Add HydrationSyncLane ([facebook#25711](facebook/react#25711)) //<Tianyu Yao>//- **[2655c9354](facebook/react@2655c9354 )**: Fizz Browser: fix precomputed chunk being cleared on Node 18 ([facebook#25645](facebook/react#25645)) //<Jimmy Lai>//- **[c08d8b804](facebook/react@c08d8b804 )**: Revert "Add SyncHydrationLane" ([facebook#25708](facebook/react#25708)) //<Tianyu Yao>//- **[56ffca8b9](facebook/react@56ffca8b9 )**: Add Bun streaming server renderer ([facebook#25597](facebook/react#25597)) //<Colin McDonnell>//- **[f31005d6a](facebook/react@f31005d6a )**: Add SyncHydrationLane ([facebook#25698](facebook/react#25698)) //<Tianyu Yao>//- **[f284d9faf](facebook/react@f284d9faf )**: Track ThenableState alongside other hooks //<Andrew Clark>//- **[6b4c0314e](facebook/react@6b4c0314e )**: Check thenable instead of thenableState //<Andrew Clark>//- **[33e3d2878](facebook/react@33e3d2878 )**: Reuse hooks when replaying a suspended component //<Andrew Clark>//- **[4387d752d](facebook/react@4387d752d )**: Allow more hooks to be added when replaying mount //<Andrew Clark>//- **[5eb78d0a0](facebook/react@5eb78d0a0 )**: Pass ThenableState to replaySuspendedUnitOfWork //<Andrew Clark>//- **[4a2d86bdd](facebook/react@4a2d86bdd )**: Don't reset work loop until stack is unwound //<Andrew Clark>//- **[9dfbd9fa9](facebook/react@9dfbd9fa9 )**: use: Don't suspend if there are pending updates //<Andrew Clark>//- **[44c4e6f4d](facebook/react@44c4e6f4d )**: Force unwind work loop during selective hydration ([facebook#25695](facebook/react#25695)) //<Andrew Clark>//- **[7b17f7bbf](facebook/react@7b17f7bbf )**: Enable warning for defaultProps on function components for everyone ([facebook#25699](facebook/react#25699)) //<Sebastian Markbåge>//- **[6fb8133ed](facebook/react@6fb8133ed )**: Turn on string ref deprecation warning for everybody (not codemoddable) ([facebook#25383](facebook/react#25383)) //<Sebastian Silbermann>//- **[07f46ecf2](facebook/react@07f46ecf2 )**: Turn on key spread warning in jsx-runtime for everyone ([facebook#25697](facebook/react#25697)) //<Sebastian Markbåge>//- **[d65b88d03](facebook/react@d65b88d03 )**: Eagerly initialize an mutable object for instance.refs ([facebook#25696](facebook/react#25696)) //<Sebastian Markbåge>//- **[c343f8025](facebook/react@c343f8025 )**: [react-float] feature detect getRootNode ([facebook#25689](facebook/react#25689)) //<Jan Kassens>//- **[e1dd0a2f5](facebook/react@e1dd0a2f5 )**: Remove recoverable error when a sync update flows into a dehydrated boundary ([facebook#25692](facebook/react#25692)) //<Sebastian Markbåge>//- **[c54e3541b](facebook/react@c54e3541b )**: [DevTools] bug fix for Hydrating fibers ([facebook#25663](facebook/react#25663)) //<Mengdi Chen>//Changelog:[General][Changed] - React Native sync for revisions d1e35c7...17f6912jest_e2e[run_all_tests]Reviewed By: makovkastarDifferential Revision: D42804802fbshipit-source-id: 6a9f00724cc73378025bbd04edb2d17760a87280
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@gaearongaearongaearon left review comments

@gnoffgnoffgnoff approved these changes

Assignees
No one assigned
Labels
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

6 participants
@feedthejim@facebook-github-bot@sizebot@gaearon@gnoff@sebmarkbage

[8]ページ先頭

©2009-2025 Movatter.jp