Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Android Chrome Touch error in Grid row editor

    Version v12.1p_2020-06-27/LGPL Deployment (2020-06-27)
    Chrome or Edge browser on Android (touch-screen)
    In Windows, use Developer Tools browser emulation of Android (eg Galaxy S5)

    Can be reproduced in ShowCase sample: https://www.smartclient.com/smartcli.../?id=editByRow

    Use Touch to open a grid row-editor and then touch again to move input focus between text input cells. This failure ONLY occurs on ANDROID with a Chrome/Chromium browser (or under emulation thereof).

    The Developer Tools Console, shows error:
    09:10:56.762:click1:WARN:Log:TypeError: Cannot read property 'dataset' of null
    Stack from error.stack:
    [c]EventHandler.handleNativeClick(<no args: exited>) on [Class EventHandler] @ ISC_Core.js:2263:427
    [c]EventHandler.dispatch(_1=>[c]EventHandler.handleNativeClick(), _2=>[object MouseEvent]) on [Class EventHandler] @ ISC_Core.js:2534:122
    HTMLDocument.eval(event=>[object MouseEvent]) @ [no file]:3:12

    In our application, using un-minified debug ISC javascript, the failure comes from the ISC_Core.js EventHandler.handleNativeClick() funtion code-line 52159:
    var ts = topLevelClipHandle.dataset.iscMouseDownEventTimeStamp;

    We have experimented found that the following fix is effective (because the topLevelCanvas.getClipHandle() call above is returning null):
    var ts = topLevelClipHandle && topLevelClipHandle.dataset.iscMouseDownEventTimeStamp;


    Could this be fixed somehow in a future release?
    Thanks for your help.


    #2
    We're not reproducing the errors you reported, using the exact build you mentioned, either on a real Android device or using the simulation approach you suggested.

    Can you provide a screen capture video of your interaction? What version of Android are you using?

    Comment


      #3
      Also please give us the version of Chrome on your desktop and on the device.

      Comment


        #4
        Thanks for trying to reproduce and coming back so quickly, guys, much appreciated.
        The device we used was Android 9, with Chrome (84.0.4147.125) or Edge browser. But we have not seen any sensitivity to particular versions - we get it every time isc.Browser.isAndroid && isc.Browser.isChrome is true.
        I have doe some screen captures in Windows using Chome Version 84.0.4147.125 (Official Build) (64-bit), using Android browser emulation.

        https://youtu.be/XFNDN3rVLBQ
        In this showcase example, you do have to go the the Developer Tools javascript Console to see the failure.
        https://youtu.be/xVSEO7gg5kg
        This is in our application where the same failure is caught in our general pop-up error trap. Notice the line-number into ISC_Core.js (debug, non-minified).

        I don't know what the purpose of this Android/Chrome specific coding in ISC_Core.js is, so it might be safe to ignore the error. There don't seem to be any obvious problems which arise later on.

        If the Android/Chrome specific coding does need to be in there, then I think the very simple check-for-null defensive fix which I mentioned above would be a good idea. Others programming with SmartClient are likely to hit this problem too, at least in their general fail-handling. It would be a pain to have to code a general error-trap to ignore this particualar case.

        Many Thanks.

        Comment


          #5
          Thanks for providing those videos. With that extra detail, we were able to reproduce the problem and are currently deciding how to best address it.

          Comment


            #6
            The issue should be fixed in the SC 11.1p and newer releases, as of the nightly builds dated 2020-08-15 and beyond.

            Comment


              #7
              This fix is working for us in v121p_2020-08-21.

              Many thanks, Isomorphic.

              Comment

              Working...
              X