Blocks: Ensure that metadata registered on the server for core block is preserved on the client (try 2) #29302
Conversation
Size Change: +19 B (0%) Total Size: 1.38 MB
|
Filename | Size | Change |
---|---|---|
build/a11y/index.js |
1.14 kB | 0 B |
build/annotations/index.js |
3.78 kB | 0 B |
build/api-fetch/index.js |
3.4 kB | 0 B |
build/autop/index.js |
2.84 kB | 0 B |
build/blob/index.js |
665 B | 0 B |
build/block-directory/index.js |
9.1 kB | 0 B |
build/block-directory/style-rtl.css |
1.01 kB | 0 B |
build/block-directory/style.css |
1.01 kB | 0 B |
build/block-editor/index.js |
124 kB | 0 B |
build/block-editor/style-rtl.css |
12.1 kB | 0 B |
build/block-editor/style.css |
12.1 kB | 0 B |
build/block-library/blocks/archives/editor-rtl.css |
61 B | 0 B |
build/block-library/blocks/archives/editor.css |
60 B | 0 B |
build/block-library/blocks/audio/editor-rtl.css |
58 B | 0 B |
build/block-library/blocks/audio/editor.css |
58 B | 0 B |
build/block-library/blocks/audio/style-rtl.css |
103 B | 0 B |
build/block-library/blocks/audio/style.css |
103 B | 0 B |
build/block-library/blocks/block/editor-rtl.css |
161 B | 0 B |
build/block-library/blocks/block/editor.css |
161 B | 0 B |
build/block-library/blocks/button/editor-rtl.css |
475 B | 0 B |
build/block-library/blocks/button/editor.css |
474 B | 0 B |
build/block-library/blocks/button/style-rtl.css |
479 B | 0 B |
build/block-library/blocks/button/style.css |
479 B | 0 B |
build/block-library/blocks/buttons/editor-rtl.css |
233 B | 0 B |
build/block-library/blocks/buttons/editor.css |
233 B | 0 B |
build/block-library/blocks/buttons/style-rtl.css |
318 B | 0 B |
build/block-library/blocks/buttons/style.css |
318 B | 0 B |
build/block-library/blocks/calendar/style-rtl.css |
208 B | 0 B |
build/block-library/blocks/calendar/style.css |
208 B | 0 B |
build/block-library/blocks/categories/editor-rtl.css |
84 B | 0 B |
build/block-library/blocks/categories/editor.css |
83 B | 0 B |
build/block-library/blocks/categories/style-rtl.css |
79 B | 0 B |
build/block-library/blocks/categories/style.css |
79 B | 0 B |
build/block-library/blocks/code/style-rtl.css |
90 B | 0 B |
build/block-library/blocks/code/style.css |
90 B | 0 B |
build/block-library/blocks/columns/editor-rtl.css |
190 B | 0 B |
build/block-library/blocks/columns/editor.css |
190 B | 0 B |
build/block-library/blocks/columns/style-rtl.css |
421 B | 0 B |
build/block-library/blocks/columns/style.css |
421 B | 0 B |
build/block-library/blocks/cover/editor-rtl.css |
390 B | 0 B |
build/block-library/blocks/cover/editor.css |
389 B | 0 B |
build/block-library/blocks/cover/style-rtl.css |
1.25 kB | 0 B |
build/block-library/blocks/cover/style.css |
1.25 kB | 0 B |
build/block-library/blocks/embed/editor-rtl.css |
486 B | 0 B |
build/block-library/blocks/embed/editor.css |
486 B | 0 B |
build/block-library/blocks/embed/style-rtl.css |
396 B | 0 B |
build/block-library/blocks/embed/style.css |
395 B | 0 B |
build/block-library/blocks/file/editor-rtl.css |
199 B | 0 B |
build/block-library/blocks/file/editor.css |
198 B | 0 B |
build/block-library/blocks/file/style-rtl.css |
248 B | 0 B |
build/block-library/blocks/file/style.css |
248 B | 0 B |
build/block-library/blocks/freeform/editor-rtl.css |
2.45 kB | 0 B |
build/block-library/blocks/freeform/editor.css |
2.45 kB | 0 B |
build/block-library/blocks/gallery/editor-rtl.css |
689 B | 0 B |
build/block-library/blocks/gallery/editor.css |
690 B | 0 B |
build/block-library/blocks/gallery/style-rtl.css |
1.07 kB | 0 B |
build/block-library/blocks/gallery/style.css |
1.06 kB | 0 B |
build/block-library/blocks/group/editor-rtl.css |
318 B | 0 B |
build/block-library/blocks/group/editor.css |
317 B | 0 B |
build/block-library/blocks/group/style-rtl.css |
57 B | 0 B |
build/block-library/blocks/group/style.css |
57 B | 0 B |
build/block-library/blocks/heading/editor-rtl.css |
129 B | 0 B |
build/block-library/blocks/heading/editor.css |
129 B | 0 B |
build/block-library/blocks/heading/style-rtl.css |
76 B | 0 B |
build/block-library/blocks/heading/style.css |
76 B | 0 B |
build/block-library/blocks/html/editor-rtl.css |
281 B | 0 B |
build/block-library/blocks/html/editor.css |
281 B | 0 B |
build/block-library/blocks/image/editor-rtl.css |
717 B | 0 B |
build/block-library/blocks/image/editor.css |
716 B | 0 B |
build/block-library/blocks/image/style-rtl.css |
477 B | 0 B |
build/block-library/blocks/image/style.css |
478 B | 0 B |
build/block-library/blocks/latest-comments/editor-rtl.css |
159 B | 0 B |
build/block-library/blocks/latest-comments/editor.css |
158 B | 0 B |
build/block-library/blocks/latest-comments/style-rtl.css |
269 B | 0 B |
build/block-library/blocks/latest-comments/style.css |
269 B | 0 B |
build/block-library/blocks/latest-posts/editor-rtl.css |
137 B | 0 B |
build/block-library/blocks/latest-posts/editor.css |
137 B | 0 B |
build/block-library/blocks/latest-posts/style-rtl.css |
523 B | 0 B |
build/block-library/blocks/latest-posts/style.css |
522 B | 0 B |
build/block-library/blocks/list/editor-rtl.css |
65 B | 0 B |
build/block-library/blocks/list/editor.css |
65 B | 0 B |
build/block-library/blocks/list/style-rtl.css |
63 B | 0 B |
build/block-library/blocks/list/style.css |
63 B | 0 B |
build/block-library/blocks/media-text/editor-rtl.css |
191 B | 0 B |
build/block-library/blocks/media-text/editor.css |
191 B | 0 B |
build/block-library/blocks/media-text/style-rtl.css |
535 B | 0 B |
build/block-library/blocks/media-text/style.css |
532 B | 0 B |
build/block-library/blocks/more/editor-rtl.css |
434 B | 0 B |
build/block-library/blocks/more/editor.css |
434 B | 0 B |
build/block-library/blocks/navigation-link/editor-rtl.css |
395 B | 0 B |
build/block-library/blocks/navigation-link/editor.css |
397 B | 0 B |
build/block-library/blocks/navigation-link/style-rtl.css |
704 B | 0 B |
build/block-library/blocks/navigation-link/style.css |
702 B | 0 B |
build/block-library/blocks/navigation/editor-rtl.css |
1.34 kB | 0 B |
build/block-library/blocks/navigation/editor.css |
1.34 kB | 0 B |
build/block-library/blocks/navigation/style-rtl.css |
195 B | 0 B |
build/block-library/blocks/navigation/style.css |
195 B | 0 B |
build/block-library/blocks/nextpage/editor-rtl.css |
395 B | 0 B |
build/block-library/blocks/nextpage/editor.css |
395 B | 0 B |
build/block-library/blocks/page-list/editor-rtl.css |
214 B | 0 B |
build/block-library/blocks/page-list/editor.css |
214 B | 0 B |
build/block-library/blocks/page-list/style-rtl.css |
527 B | 0 B |
build/block-library/blocks/page-list/style.css |
526 B | 0 B |
build/block-library/blocks/paragraph/editor-rtl.css |
109 B | 0 B |
build/block-library/blocks/paragraph/editor.css |
109 B | 0 B |
build/block-library/blocks/paragraph/style-rtl.css |
273 B | 0 B |
build/block-library/blocks/paragraph/style.css |
273 B | 0 B |
build/block-library/blocks/post-author/editor-rtl.css |
209 B | 0 B |
build/block-library/blocks/post-author/editor.css |
209 B | 0 B |
build/block-library/blocks/post-author/style-rtl.css |
183 B | 0 B |
build/block-library/blocks/post-author/style.css |
184 B | 0 B |
build/block-library/blocks/post-comments-form/style-rtl.css |
250 B | 0 B |
build/block-library/blocks/post-comments-form/style.css |
250 B | 0 B |
build/block-library/blocks/post-content/editor-rtl.css |
139 B | 0 B |
build/block-library/blocks/post-content/editor.css |
139 B | 0 B |
build/block-library/blocks/post-excerpt/editor-rtl.css |
73 B | 0 B |
build/block-library/blocks/post-excerpt/editor.css |
73 B | 0 B |
build/block-library/blocks/post-featured-image/editor-rtl.css |
338 B | 0 B |
build/block-library/blocks/post-featured-image/editor.css |
338 B | 0 B |
build/block-library/blocks/post-featured-image/style-rtl.css |
100 B | 0 B |
build/block-library/blocks/post-featured-image/style.css |
100 B | 0 B |
build/block-library/blocks/preformatted/style-rtl.css |
63 B | 0 B |
build/block-library/blocks/preformatted/style.css |
63 B | 0 B |
build/block-library/blocks/pullquote/editor-rtl.css |
183 B | 0 B |
build/block-library/blocks/pullquote/editor.css |
183 B | 0 B |
build/block-library/blocks/pullquote/style-rtl.css |
316 B | 0 B |
build/block-library/blocks/pullquote/style.css |
316 B | 0 B |
build/block-library/blocks/query-loop/editor-rtl.css |
90 B | 0 B |
build/block-library/blocks/query-loop/editor.css |
89 B | 0 B |
build/block-library/blocks/query-loop/style-rtl.css |
315 B | 0 B |
build/block-library/blocks/query-loop/style.css |
317 B | 0 B |
build/block-library/blocks/query-pagination-numbers/editor-rtl.css |
122 B | 0 B |
build/block-library/blocks/query-pagination-numbers/editor.css |
121 B | 0 B |
build/block-library/blocks/query-pagination/editor-rtl.css |
270 B | 0 B |
build/block-library/blocks/query-pagination/editor.css |
262 B | 0 B |
build/block-library/blocks/query-pagination/style-rtl.css |
168 B | 0 B |
build/block-library/blocks/query-pagination/style.css |
168 B | 0 B |
build/block-library/blocks/query/editor-rtl.css |
159 B | 0 B |
build/block-library/blocks/query/editor.css |
160 B | 0 B |
build/block-library/blocks/quote/editor-rtl.css |
61 B | 0 B |
build/block-library/blocks/quote/editor.css |
61 B | 0 B |
build/block-library/blocks/quote/style-rtl.css |
169 B | 0 B |
build/block-library/blocks/quote/style.css |
169 B | 0 B |
build/block-library/blocks/rss/editor-rtl.css |
201 B | 0 B |
build/block-library/blocks/rss/editor.css |
202 B | 0 B |
build/block-library/blocks/rss/style-rtl.css |
290 B | 0 B |
build/block-library/blocks/rss/style.css |
290 B | 0 B |
build/block-library/blocks/search/editor-rtl.css |
165 B | 0 B |
build/block-library/blocks/search/editor.css |
165 B | 0 B |
build/block-library/blocks/search/style-rtl.css |
342 B | 0 B |
build/block-library/blocks/search/style.css |
344 B | 0 B |
build/block-library/blocks/separator/editor-rtl.css |
99 B | 0 B |
build/block-library/blocks/separator/editor.css |
99 B | 0 B |
build/block-library/blocks/separator/style-rtl.css |
236 B | 0 B |
build/block-library/blocks/separator/style.css |
236 B | 0 B |
build/block-library/blocks/shortcode/editor-rtl.css |
504 B | 0 B |
build/block-library/blocks/shortcode/editor.css |
504 B | 0 B |
build/block-library/blocks/site-logo/editor-rtl.css |
201 B | 0 B |
build/block-library/blocks/site-logo/editor.css |
201 B | 0 B |
build/block-library/blocks/site-logo/style-rtl.css |
115 B | 0 B |
build/block-library/blocks/site-logo/style.css |
115 B | 0 B |
build/block-library/blocks/social-link/editor-rtl.css |
164 B | 0 B |
build/block-library/blocks/social-link/editor.css |
165 B | 0 B |
build/block-library/blocks/social-links/editor-rtl.css |
696 B | 0 B |
build/block-library/blocks/social-links/editor.css |
696 B | 0 B |
build/block-library/blocks/social-links/style-rtl.css |
1.36 kB | 0 B |
build/block-library/blocks/social-links/style.css |
1.36 kB | 0 B |
build/block-library/blocks/spacer/editor-rtl.css |
302 B | 0 B |
build/block-library/blocks/spacer/editor.css |
302 B | 0 B |
build/block-library/blocks/spacer/style-rtl.css |
48 B | 0 B |
build/block-library/blocks/spacer/style.css |
48 B | 0 B |
build/block-library/blocks/subhead/editor-rtl.css |
99 B | 0 B |
build/block-library/blocks/subhead/editor.css |
99 B | 0 B |
build/block-library/blocks/subhead/style-rtl.css |
80 B | 0 B |
build/block-library/blocks/subhead/style.css |
80 B | 0 B |
build/block-library/blocks/table/editor-rtl.css |
478 B | 0 B |
build/block-library/blocks/table/editor.css |
478 B | 0 B |
build/block-library/blocks/table/style-rtl.css |
390 B | 0 B |
build/block-library/blocks/table/style.css |
390 B | 0 B |
build/block-library/blocks/tag-cloud/editor-rtl.css |
118 B | 0 B |
build/block-library/blocks/tag-cloud/editor.css |
118 B | 0 B |
build/block-library/blocks/tag-cloud/style-rtl.css |
94 B | 0 B |
build/block-library/blocks/tag-cloud/style.css |
94 B | 0 B |
build/block-library/blocks/template-part/editor-rtl.css |
557 B | 0 B |
build/block-library/blocks/template-part/editor.css |
556 B | 0 B |
build/block-library/blocks/text-columns/editor-rtl.css |
95 B | 0 B |
build/block-library/blocks/text-columns/editor.css |
95 B | 0 B |
build/block-library/blocks/text-columns/style-rtl.css |
166 B | 0 B |
build/block-library/blocks/text-columns/style.css |
166 B | 0 B |
build/block-library/blocks/verse/editor-rtl.css |
62 B | 0 B |
build/block-library/blocks/verse/editor.css |
62 B | 0 B |
build/block-library/blocks/verse/style-rtl.css |
87 B | 0 B |
build/block-library/blocks/verse/style.css |
87 B | 0 B |
build/block-library/blocks/video/editor-rtl.css |
504 B | 0 B |
build/block-library/blocks/video/editor.css |
503 B | 0 B |
build/block-library/blocks/video/style-rtl.css |
193 B | 0 B |
build/block-library/blocks/video/style.css |
193 B | 0 B |
build/block-library/common-rtl.css |
1.08 kB | 0 B |
build/block-library/common.css |
1.08 kB | 0 B |
build/block-library/editor-rtl.css |
9.04 kB | 0 B |
build/block-library/editor.css |
9.03 kB | 0 B |
build/block-library/index.js |
145 kB | 0 B |
build/block-library/style-rtl.css |
8.85 kB | 0 B |
build/block-library/style.css |
8.85 kB | 0 B |
build/block-library/theme-rtl.css |
736 B | 0 B |
build/block-library/theme.css |
736 B | 0 B |
build/block-serialization-default-parser/index.js |
1.88 kB | 0 B |
build/block-serialization-spec-parser/index.js |
3.06 kB | 0 B |
build/components/index.js |
272 kB | 0 B |
build/components/style-rtl.css |
15.5 kB | 0 B |
build/components/style.css |
15.5 kB | 0 B |
build/compose/index.js |
11.1 kB | 0 B |
build/core-data/index.js |
16.8 kB | 0 B |
build/customize-widgets/index.js |
4.08 kB | 0 B |
build/customize-widgets/style-rtl.css |
168 B | 0 B |
build/customize-widgets/style.css |
168 B | 0 B |
build/data-controls/index.js |
831 B | 0 B |
build/data/index.js |
8.86 kB | 0 B |
build/date/index.js |
31.8 kB | 0 B |
build/deprecated/index.js |
769 B | 0 B |
build/dom-ready/index.js |
576 B | 0 B |
build/dom/index.js |
4.94 kB | 0 B |
build/edit-navigation/index.js |
11 kB | 0 B |
build/edit-navigation/style-rtl.css |
1.26 kB | 0 B |
build/edit-navigation/style.css |
1.25 kB | 0 B |
build/edit-post/index.js |
307 kB | 0 B |
build/edit-post/style-rtl.css |
6.81 kB | 0 B |
build/edit-post/style.css |
6.8 kB | 0 B |
build/edit-site/index.js |
26.3 kB | 0 B |
build/edit-site/style-rtl.css |
4.41 kB | 0 B |
build/edit-site/style.css |
4.41 kB | 0 B |
build/edit-widgets/index.js |
20.1 kB | 0 B |
build/edit-widgets/style-rtl.css |
3.2 kB | 0 B |
build/edit-widgets/style.css |
3.2 kB | 0 B |
build/editor/editor-styles-rtl.css |
543 B | 0 B |
build/editor/editor-styles.css |
545 B | 0 B |
build/editor/index.js |
42.1 kB | 0 B |
build/editor/style-rtl.css |
3.89 kB | 0 B |
build/editor/style.css |
3.89 kB | 0 B |
build/element/index.js |
4.61 kB | 0 B |
build/escape-html/index.js |
735 B | 0 B |
build/format-library/index.js |
6.77 kB | 0 B |
build/format-library/style-rtl.css |
637 B | 0 B |
build/format-library/style.css |
639 B | 0 B |
build/hooks/index.js |
2.28 kB | 0 B |
build/html-entities/index.js |
622 B | 0 B |
build/i18n/index.js |
4.01 kB | 0 B |
build/is-shallow-equal/index.js |
698 B | 0 B |
build/keyboard-shortcuts/index.js |
2.54 kB | 0 B |
build/keycodes/index.js |
1.95 kB | 0 B |
build/list-reusable-blocks/index.js |
3.15 kB | 0 B |
build/list-reusable-blocks/style-rtl.css |
629 B | 0 B |
build/list-reusable-blocks/style.css |
628 B | 0 B |
build/media-utils/index.js |
5.35 kB | 0 B |
build/notices/index.js |
1.85 kB | 0 B |
build/nux/index.js |
3.41 kB | 0 B |
build/nux/style-rtl.css |
731 B | 0 B |
build/nux/style.css |
727 B | 0 B |
build/plugins/index.js |
2.54 kB | 0 B |
build/primitives/index.js |
1.42 kB | 0 B |
build/priority-queue/index.js |
791 B | 0 B |
build/react-i18n/index.js |
1.45 kB | 0 B |
build/redux-routine/index.js |
2.84 kB | 0 B |
build/reusable-blocks/index.js |
3.77 kB | 0 B |
build/reusable-blocks/style-rtl.css |
225 B | 0 B |
build/reusable-blocks/style.css |
225 B | 0 B |
build/rich-text/index.js |
13.4 kB | 0 B |
build/server-side-render/index.js |
2.81 kB | 0 B |
build/shortcode/index.js |
1.7 kB | 0 B |
build/token-list/index.js |
1.27 kB | 0 B |
build/url/index.js |
3.02 kB | 0 B |
build/viewport/index.js |
1.85 kB | 0 B |
build/warning/index.js |
1.14 kB | 0 B |
build/wordcount/index.js |
1.22 kB | 0 B |
@noisysocks, as far as I can tell, we won't need to backport this version to WordPress 5.7 and it should be fine to use already backported commits. The regression reported should apply only to WordPress 5.6 and lower. |
Such a speedy turnaround @gziolo ! I did perform a quick audit and I noticed we're missing the Let's |
if ( | ||
serverSideBlockDefinitions[ blockName ].apiVersion === | ||
undefined && | ||
definitions[ blockName ].apiVersion |
gwwar
Feb 24, 2021
Contributor
I think I spotted a few more differences on the server definition:
- Missing
editorStyle
- Sometimes items in
supports
, get expanded in block attributes
(I think this is okay)
- Missing
style
I think I spotted a few more differences on the server definition:
- Missing
editorStyle
- Sometimes items in
supports
, get expanded in blockattributes
(I think this is okay) - Missing
style
gwwar
Feb 24, 2021
Contributor
It might be worth setting up a test case with all block registration items set and then compare to see what's returned.
It might be worth setting up a test case with all block registration items set and then compare to see what's returned.
gziolo
Feb 25, 2021
•
Author
Member
Missing editorStyle
Missing style
At the moment it's used only on the server to enqueue CSS files, for example:
https://github.com/WordPress/gutenberg/blob/master/docs/designers-developers/developers/block-api/block-metadata.md#editor-style
In the future, we might need it on the client to lazy load CSS or JS files for the block.
Edit: In fact, those fields were used in the past for installing blocks from Block Directory, but it was replaced with a different approach in #24117. However, in practice, Block Directory uses its own endpoint to get the block metadata which is further processed block.json
file:
gutenberg/packages/block-directory/src/store/resolvers.js
Lines 24 to 26
in
8ab2453
Sometimes items in supports
, get expanded in block attributes
(I think this is okay)
Yes, it's used quite extensively for features built-in in the block editor like alignment, custom class name, anchor, fonts, colors, and other stuff that Global Styles offer. Most (hopefully all) of the hooks that add those fields for attributes
respect the version created by developers.
Missing
editorStyle
Missingstyle
At the moment it's used only on the server to enqueue CSS files, for example:
https://github.com/WordPress/gutenberg/blob/master/docs/designers-developers/developers/block-api/block-metadata.md#editor-style
In the future, we might need it on the client to lazy load CSS or JS files for the block.
Edit: In fact, those fields were used in the past for installing blocks from Block Directory, but it was replaced with a different approach in #24117. However, in practice, Block Directory uses its own endpoint to get the block metadata which is further processed block.json
file:
gutenberg/packages/block-directory/src/store/resolvers.js
Lines 24 to 26 in 8ab2453
Sometimes items in
supports
, get expanded in blockattributes
(I think this is okay)
Yes, it's used quite extensively for features built-in in the block editor like alignment, custom class name, anchor, fonts, colors, and other stuff that Global Styles offer. Most (hopefully all) of the hooks that add those fields for attributes
respect the version created by developers.
gwwar
Feb 25, 2021
Contributor
Great, sounds like this should be relatively safe to try again. ✨
Great, sounds like this should be relatively safe to try again.
I tested and can confirm that the block wrappers are correct on 5.6.2 |
I will merge tomorrow to make sure I'm around if something goes wrong |
Description
2nd attempt to land #29213 that revert the revert from #29279. This time it should cover the following issue when using WordPress 5.6:
New changes include the polyfill logic when
apiVersion
is present inblock.json
but it isn't exposed from the server.This PR resolves the issue where metadata registered on the server from
block.json
would get overridden by the same data registered again on the client. The fix proposed ensures that for all blocks that have some metadata present, we skip all other attempts to pass the same metadata.unstable__bootstrapServerSideBlockDefinitions
was never meant to stay for so long, but here we are. It isn't part of public API so we shouldn't be worried about backward compatibility that much.It's a blocker for #29095.
It also was caught by @audrasjb when compiling the dev note for new filters added for
register_block_type_from_metadata
. I included e2e tests that ensure that one of the new filters is properly propagated to the client.How has this been tested?
There is a new e2e test added that ensures that the updated logic works correctly:
There is a new unit test added that ensures that polyfilling works as expected.
Use WordPress 5.6 and make sure that all blocks have the same class names applied as in WordPress 5.7. It's related to the
apiVersion
presence during block registration.For example, as reported by @glendaviesnz:
I tested with WordPress 5.6 and the Gutenberg demo page:
Block wrapper is correctly applied:
![Screen Shot 2021-02-24 at 17 23 50](https://webcf.waybackmachine.org/web/20210226165656im_/https://user-images.githubusercontent.com/699132/109032348-db036600-76c5-11eb-87e6-02d616f49ed1.png)
No `apiVersion in the response from the server:
![Screen Shot 2021-02-24 at 17 28 56](https://webcf.waybackmachine.org/web/20210226165656im_/https://user-images.githubusercontent.com/699132/109032363-df2f8380-76c5-11eb-8609-f41f80dcac61.png)
Types of changes
Bug fix (non-breaking change which fixes an issue).
Checklist: