Clover13 Posted December 19, 2022 Posted December 19, 2022 (edited) Invision Community v4.7.5 A member reported an issue where he can't PM on his mobile device and also can't Quote and Reply on topics. The Quote link/word actually appears and flashes for a second and then disappears. I have been able to reproduce this with the Dev Tools on Chrome by setting a custom User Agent to what is below. Device: Motorola Edge 5G UW (2021) User Agent: Dalvik/2.1.0 (Linux; U; Android 11; motorola edge 5G UW (2021) Build/RRMS31.Q3-23-39-14-1-1) If you need any additional information please let me know. Edited December 19, 2022 by Clover13
Jim M Posted December 19, 2022 Posted December 19, 2022 Are they utilizing Chrome? If not, please have them switch to chrome as only the default browser on a device is supported and for Android that is Chrome. That user agent is Android's VM so is not telling much on that front.
Clover13 Posted December 19, 2022 Author Posted December 19, 2022 1 minute ago, Jim M said: Are they utilizing Chrome? If not, please have them switch to chrome as only the default browser on a device is supported and for Android that is Chrome. That user agent is Android's VM so is not telling much on that front. Yes this was on Chrome. I also reproduced it on Chrome. The problem exists with the default IPS theme and also in Incognito mode.
Jim M Posted December 19, 2022 Posted December 19, 2022 I'm working with an emulator service as I don't own an Android device but not able to reproduce in messages or topics so just want to check my basis. Is this something you are able to reproduce with the account on file? If not, could you please let us know the display name of the user in question? Also, what topic or message this is happening in?
Clover13 Posted December 19, 2022 Author Posted December 19, 2022 (edited) Yes, same site on file. I reproduced this on MacOS with Chrome Version 108.0.5359.124 (Official Build) (x86_64) Steps: Right click page (this page even) and select Inspect Click Toggle device toolbar to the left of Elements Click the dropdown for the Dimensions and select Edit Click Add custom device... Device Name: Motorola Edge 5G UW (2021) Dimensions: 400x800 User agent string: Dalvik/2.1.0 (Linux; U; Android 11; motorola edge 5G UW (2021) Build/RRMS31.Q3-23-39-14-1-1) Save and X out of the Edit window Select Motorola Edge 5G UW (2021) in Dimensions dropdown Reload page (important, have to reload the page AFTER the Dimensions option is selected) and you should see the Quote link flash and disappear I actually just did this here on this page and see this behavior. Edited December 19, 2022 by Clover13
Jim M Posted December 19, 2022 Posted December 19, 2022 24 minutes ago, Clover13 said: Steps: Right click page (this page even) and select Inspect Click Toggle device toolbar to the left of Elements Click the dropdown for the Dimensions and select Edit Click Add custom device... Device Name: Motorola Edge 5G UW (2021) Dimensions: 400x800 User agent string: Dalvik/2.1.0 (Linux; U; Android 11; motorola edge 5G UW (2021) Build/RRMS31.Q3-23-39-14-1-1) Save and X out of the Edit window Select Motorola Edge 5G UW (2021) in Dimensions dropdown Reload page (important, have to reload the page AFTER the Dimensions option is selected) and you should see the Quote link flash and disappear I actually just did this here on this page and see this behavior. This would be an emulator as well, not the device. Is this what the original user did? Often emulators have issues that real devices do not so I want to make this clear here.
Clover13 Posted December 19, 2022 Author Posted December 19, 2022 4 minutes ago, Jim M said: This would be an emulator as well, not the device. Is this what the original user did? Often emulators have issues that real devices do not so I want to make this clear here. The emulator had the exact same behavior as his device, and I don't see it on my own devices. Likewise, he doesn't see it on his other devices, only that particular one. So my thought process is if the emulator has identical behavior, you may be able to identify what is happening or causing it.
Jim M Posted December 19, 2022 Posted December 19, 2022 1 minute ago, Clover13 said: The emulator had the exact same behavior as his device, and I don't see it on my own devices. Likewise, he doesn't see it on his other devices, only that particular one. So my thought process is if the emulator has identical behavior, you may be able to identify what is happening or causing it. If this is limited to only 1 particular real device, I'm afraid, it may be something particular with the device. However, I can have one of my colleagues test who has an Android device.
Clover13 Posted December 19, 2022 Author Posted December 19, 2022 For example, when trying to create a new PM, the main difference when it doesn't complete the editor load, I see in the Console warnings is the following: jQuery.Deferred exception: Cannot read properties of null (reading 'once') TypeError: Cannot read properties of null (reading 'once') at Object.init (https://{site}/uploads/themes/javascript_global/root_framework.js?v=88231759321671381349:306:76) at ckLoaded (https://{site}/uploads/themes/javascript_global/root_framework.js?v=88231759321671381349:291:264) at bootEditor (https://{site}/uploads/themes/javascript_global/root_framework.js?v=88231759321671381349:291:31) at e (https://{site}/uploads/themes/javascript_global/root_library.js?v=88231759321671381349:1:49296) at t (https://{site}/uploads/themes/javascript_global/root_library.js?v=88231759321671381349:1:49598) undefined 4 minutes ago, Jim M said: If this is limited to only 1 particular real device, I'm afraid, it may be something particular with the device. However, I can have one of my colleagues test who has an Android device. Seems like other Android phones (Pixel 5 for example) don't show this issue, at least not in the emulator.
Marc Posted December 20, 2022 Posted December 20, 2022 12 hours ago, Clover13 said: For example, when trying to create a new PM, the main difference when it doesn't complete the editor load, I see in the Console warnings is the following: jQuery.Deferred exception: Cannot read properties of null (reading 'once') TypeError: Cannot read properties of null (reading 'once') at Object.init (https://{site}/uploads/themes/javascript_global/root_framework.js?v=88231759321671381349:306:76) at ckLoaded (https://{site}/uploads/themes/javascript_global/root_framework.js?v=88231759321671381349:291:264) at bootEditor (https://{site}/uploads/themes/javascript_global/root_framework.js?v=88231759321671381349:291:31) at e (https://{site}/uploads/themes/javascript_global/root_library.js?v=88231759321671381349:1:49296) at t (https://{site}/uploads/themes/javascript_global/root_library.js?v=88231759321671381349:1:49598) undefined Seems like other Android phones (Pixel 5 for example) don't show this issue, at least not in the emulator. It does seem to be a bug on that specific device, rather than the software unfortunately. I am unable to replicate any issues at all on my device here, or any other android device I have tested with
Clover13 Posted December 20, 2022 Author Posted December 20, 2022 9 hours ago, Marc Stridgen said: It does seem to be a bug on that specific device, rather than the software unfortunately. I am unable to replicate any issues at all on my device here, or any other android device I have tested with Thanks Marc. Not sure what to do here. I have only been able to reproduce this issue on an emulator with that specific user agent, every other Android device operates normally as you have also found.
Randy Calvert Posted December 20, 2022 Posted December 20, 2022 Tell them to get a non broken phone? Or have them reach out to their phone manufacturer support team to see if there is a fix available that can be installed. You might have them try a different browser as well.
Clover13 Posted December 20, 2022 Author Posted December 20, 2022 Just now, Randy Calvert said: Tell them to get a non broken phone? Or have them reach out to their phone manufacturer support team to see if there is a fix available that can be installed. You might have them try a different browser as well. He literally just got it recently. Getting a new phone is quite an expensive fix, unless he can return it and would somehow be willing to do that just to get access to the site. More than likely will result in a member simply not using the site. What would he (or I) even report to the manufacturer to fix? An IPS error stack trace isn't useful enough, we need to know what exactly is going wrong.
Nathan Explosion Posted December 20, 2022 Posted December 20, 2022 9 minutes ago, Randy Calvert said: Tell them to get a non broken phone? Or have them reach out to their phone manufacturer support team to see if there is a fix available that can be installed. You'd be laughed out of the shop. @Clover13 - I've reproduced it exactly as you described using the chrome developer tools, and it appears to be a jQuery bug which, for some reason, is removing the 2 quote elements out of the DOM entirely - if I have time tomorrow then I will try to figure it out further. Please follow the following instruction, using Firefox (not Edge...Edge is built on the same base as Chrome) and advise if the same issue exists. 12 minutes ago, Randy Calvert said: You might have them try a different browser as well. Luuuk, My Sharona and Clover13 3
Clover13 Posted December 20, 2022 Author Posted December 20, 2022 4 minutes ago, Nathan Explosion said: You'd be laughed out of the shop. @Clover13 - I've reproduced it exactly as you described using the chrome developer tools, and it appears to be a jQuery bug which, for some reason, is removing the 2 quote elements out of the DOM entirely - if I have time tomorrow then I will try to figure it out further. Please follow the following instruction, using Firefox (not Edge...Edge is built on the same base as Chrome) and advise if the same issue exists. I've asked the member to test on Firefox or Opera. Looking at the console output, agree it appeared to be jQuery related. Very curious to see if you determine anything, super strange to have some random phone not work. Thanks @Nathan Explosion
Marc Posted December 21, 2022 Posted December 21, 2022 Thank you for bringing this issue to our attention! I can confirm this should be further reviewed and I have logged an internal bug report for our development team to investigate and address as necessary, in a future maintenance release. Clover13 1
Nathan Explosion Posted December 21, 2022 Posted December 21, 2022 (edited) You've found that the error appears to be coming from this in ips.ui.editor.js then? Edited December 21, 2022 by Nathan Explosion
Marc Posted December 21, 2022 Posted December 21, 2022 40 minutes ago, Nathan Explosion said: You've found that the error appears to be coming from this in ips.ui.editor.js then? I havent. Ive seen there is a bug and reported it. I will leave that to the javascript experts lol Nathan Explosion 1
Nathan Explosion Posted December 21, 2022 Posted December 21, 2022 (edited) This is the specific point of failure... // Actually initiate // 01/05/16 - Changed to replacing a dom node instead of form field name here // because in some places we use the same field name multiple times on the page // e.g. editing posts in a topic. Using a string name broke the second editor. instance = CKEDITOR.replace( $( elem ).find('textarea').get(0), config ); This is returning null instead of an object, when you use the provided useragent information. Edited December 21, 2022 by Nathan Explosion Clover13 1
Marc Posted December 21, 2022 Posted December 21, 2022 Thanks Nathan. Have added that to the bug report
Clover13 Posted December 21, 2022 Author Posted December 21, 2022 Thanks @Marc Stridgen and @Nathan Explosion
Nathan Explosion Posted December 21, 2022 Posted December 21, 2022 Following the addition of a check of the browser's compatibility with CKEditor, using a good old alert(CKEDITOR.env.isCompatible), then finding that it comes back as False, and then forcing that to True, I have now decided to get out of the rabbit hole. Good luck! Clover13 and Marc 2
Marc Posted December 21, 2022 Posted December 21, 2022 5 minutes ago, Nathan Explosion said: Following the addition of a check of the browser's compatibility with CKEditor, using a good old alert(CKEDITOR.env.isCompatible), then finding that it comes back as False, and then forcing that to True, I have now decided to get out of the rabbit hole. Good luck! Always happy to hear you reached the same logical conclusion as I LOL.
Nathan Explosion Posted December 21, 2022 Posted December 21, 2022 I may having fallen back in, as I decided to dump out CKEDITOR.env and take a closer look... @Clover13 - ask that user to go to https://www.whatsmyua.info/ in Chrome and Firefox and provide back the exact text of the user agent string Clover13 1
Recommended Posts