This repository was archived by the owner on Feb 6, 2023. It is now read-only.
Commit 9246cc7
Summary:
This diff is commandeering a PR based on a previous baseline to rebase it against latest master. This diff discards the original fix which is no longer applicable, having the affected HTML converter been removed in favor of the new implementation by nicolasc. I am still keeping the test case as a guard against regression.
**Summary**
The core issue is here:
https://github.com/facebook/draft-js/blob/master/src/model/encoding/convertFromHTMLToContentBlocks.js#L376
A call to the `let chunk = {...EMPTY_CHUNK};` create a shallow copy of the `EMPTY_CHUNK` object. It means that `chunk.blocks` array (and others) share the same reference to the `EMPTY_CHUNK.blocks`.
If code hit this line https://github.com/facebook/draft-js/blob/master/src/model/encoding/convertFromHTMLToContentBlocks.js#L633 `EMPTY_CHUNK` object will end up having `block` array with one element of `{type: 'unstyled', depth: 0}` which caused the aforementioned issue.
Next call to the `convertFromHTML` will start with polluted `EMPTY_CHUNK` object. :-(
**Test Plan**
Open a https://jsfiddle.net/m6z0xn4r/1190/
Put a breakpoint on `convertFromHTML` and see 2 different results while converting headers
Another way:
Open chrome dev tools and:
- execute `convertFromHTML('\n')`
- execute `convertFromHTML('<h1>H</h1>')`
Observe that second call return a block with unstyled type.
Pull Request resolved: #1823
Test Plan: Adds a regression test case, run with `jest --watch`
Reviewed By: gmertk
Differential Revision: D17476663
Pulled By: claudiopro
fbshipit-source-id: 05da4d53114aa0d09de61ce55c27f5166b021138
1 parent b858f43 commit 9246cc7
File tree
1 file changed
+16
-0
lines changed- src/model/encoding/__tests__
1 file changed
+16
-0
lines changedLines changed: 16 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
349 | 349 | | |
350 | 350 | | |
351 | 351 | | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
352 | 368 | | |
353 | 369 | | |
354 | 370 | | |
| |||
0 commit comments