-
Notifications
You must be signed in to change notification settings - Fork 65
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
codepen.io - The text is not highlighted correctly #118350
Comments
Excellent point! My example was a poor reflection of the problem faced as it looks the same in chrome and firefox. The true issue stems from elements added to the top level document, but that are placed as children within the iframe. It looks like these are treated differently in the latest firefox vs chrome and older versions of firefox. I've updated my codepen to show this and am showing a screenshot below of chrome, firefox 108.02, and the latest version of firefox. In older versions of firefox and chrome, elements added are HTMLElements. In the latest firefox versions elements are not HTMLElements. |
I was able to reproduce this issue on Windows 10 as well. Tested on: Notes:
Moving to Needsdiagnosis. [inv_08/2023] |
Hey @sv-calin , any update on this? This is still causing production issues for our team. |
I'm sorry but there are not updates at the moment, this is still under investigation. [inv_10/2023] |
No worries, appreciate the update that it’s still being investigated |
This is related to https://bugzilla.mozilla.org/show_bug.cgi?id=1769620 and the changes made in https://bugzilla.mozilla.org/show_bug.cgi?id=1360715. I've filed https://bugzilla.mozilla.org/show_bug.cgi?id=1821790 for further investigation. There seems to be a difference in It returns @danielschneider22 while this is being investigated, wonder if applying So it will be something like:
|
Yup, good call! That’s a great workaround, but it’s unfortunately a problem in one of node packages we are importing which makes it trickier to implement that solution. Thanks for the update here though |
@danielschneider22 thanks for the update. Wonder which node package are you using? Just trying to understand how widespread this issue is. |
The node package we are using that is creating issues is quill.js. https://quilljs.com/ |
@danielschneider22 Thanks for your response. I've tried to create a test case using an iframe with quill js locally, and it seems to be working fine. But I imagine your usecase is more complex than that. Wonder if you could possibly provide a testcase with quill js included? That would help us with prioritizing the issue. (For my test case I used this example code from quill documentation site locally in an iframe). A bit more context from investigation in comment 3: Before v. 109
To match other browsers this has been changed in 1360715 to take into account the current realm, so it results in:
(given that el2 is created with It matches in all browsers to this point, however once this element is appended with
In Chrome it remains the same:
So this compatibility issue has been around for some time and tracked in https://bugzilla.mozilla.org/show_bug.cgi?id=1470017. It's related to node adoption and not instanceof behavior, but only surfaced after 1360715 was shipped. |
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 closes #120003 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 X-original-commit: c0da01c Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 X-original-commit: c0da01c Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 X-original-commit: c0da01c Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 X-original-commit: c0da01c Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 X-original-commit: c0da01c Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 closes #120112 X-original-commit: c0da01c Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 closes #120157 X-original-commit: c0da01c Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 closes #120122 X-original-commit: c0da01c Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 closes #120141 X-original-commit: c0da01c Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
Starting with Firefox 109, a widget element prototype that is put inside an iframe will not be instanceof its original constructor. See: webcompat/web-bugs#118350 This is because a node that is adopted by an iframe will have its prototype changed to match the constructor from within the iframe instead of its original one. This has been the case for a long time. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1470017 It largely went unnoticed because of another quirk of Firefox related to the use of instanceof which was fixed in version 109. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1360715 Since this bug was fixed it became apparent, in the form of a traceback, that the wrong instance of ClipboardJS was being used in the case of Firefox, due to the forced prototype change. This commit could be reverted once Firefox is fixed. Steps to reproduce the issue in Firefox > 109: - Create a new mass mailing. - Choose the third template with "Thank you for joining us!". - Click on the "LOGIN" button link inside the email. - Get a traceback about a paremeter not being the right type. Task-3186513 OPW-3172914 closes #120171 X-original-commit: c0da01c Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Co-authored-by: Jinjiu Liu <jili@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
URL: https://codepen.io/danielunstack/pen/zYJGrKo?editors=1111
Browser / Version: Firefox 109.0
Operating System: Mac OS X 10.15
Tested Another Browser: No
Problem type: Something else
Description: Firefox Release 109.0.1 Causing Iframe Issue
Steps to Reproduce:
Discrepancy between last version of Firefox and the latest version
This discrepancy is causing production issues for us.
Thanks!
Browser Configuration
From webcompat.com with ❤️
The text was updated successfully, but these errors were encountered: