The CustomElementRegistry does not permit multiple definition attempts on the same name of the custom element in the same context. This does not lead to an actual bug in behaviour, but it's an uncaught error that should be caught. Maybe it would also make sense to have a console.debug that warns (if full output is enabled) that this is happening.
Created attachment 183287 [details] [review] [DO NOT PUSH] Bug 40150: Set up a duplicate call to hydrate()
Created attachment 183288 [details] [review] Bug 40150: Prevent uncaught error on multiple attempts to 'define' on 'CustomElementsRegistry' in islands.ts If the name is already in use, we just return. It might make sense to have a console.debug() or similar to notify developers that this is happening. Open for other opinions. To test: 1) Apply the first patch which adds an additional hydrate call in main-container.inc 2) Go to acqui/acqui-home.pl 3) Verify that you see this error in the dev tool's console tab: Uncaught (in promise) NotSupportedError: Failed to execute 'define' on 'CustomElementRegistry': the name "acquisitions-menu" has already been used with this registry 4) Apply the second patch 5) Run `yarn js:build` in ktd (assuming ktd). 6) Reload the page without cached assets (Ctrl/Cmd + Shift + R) and verify that the uncaught error is gone. 7) Sign off. There's an additional problem here I (and probably you) noticed. But that's unrelated to this bug.
Created attachment 183292 [details] [review] Bug 40150: Set up a duplicate call to hydrate() Signed-off-by: David Nind <david@davidnind.com>
Created attachment 183293 [details] [review] Bug 40150: Prevent uncaught error on multiple attempts to 'define' on 'CustomElementsRegistry' in islands.ts If the name is already in use, we just return. It might make sense to have a console.debug() or similar to notify developers that this is happening. Open for other opinions. To test: 1) Apply the first patch which adds an additional hydrate call in main-container.inc 2) Go to acqui/acqui-home.pl 3) Verify that you see this error in the dev tool's console tab: Uncaught (in promise) NotSupportedError: Failed to execute 'define' on 'CustomElementRegistry': the name "acquisitions-menu" has already been used with this registry 4) Apply the second patch 5) Run `yarn js:build` in ktd (assuming ktd). 6) Reload the page without cached assets (Ctrl/Cmd + Shift + R) and verify that the uncaught error is gone. 7) Sign off. There's an additional problem here I (and probably you) noticed. But that's unrelated to this bug. Signed-off-by: David Nind <david@davidnind.com>
Added assignee. For some reason, the name for the [DO NOT PUSH] patch was changed. I'll obsolete my signed off patch. > There's an additional problem here I (and probably you) noticed. But that's unrelated to this bug. [Violation] 'setTimeout' handler took 62ms? Otherwise, no idea. 8-)