Skip to content
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

Mouse fixed at top left in Firefox for Android #142

Open
xerz-one opened this issue Dec 12, 2022 · 3 comments
Open

Mouse fixed at top left in Firefox for Android #142

xerz-one opened this issue Dec 12, 2022 · 3 comments

Comments

@xerz-one
Copy link

xerz-one commented Dec 12, 2022

When trying to run SqueakJS from the official website on Firefox 107.2.0, the virtual machine successfully executes, but the mouse pointer cannot be moved around, and instead touching only performs clicking at the same position.

@codefrau
Copy link
Owner

Works for me – both on 106 and 108. I tried various images on squeak.js.org.

Where exactly do you see the problem?

@xerz-one
Copy link
Author

So I tried debugging with ADB. First of all, after adding a breakpoint for canvas.ontouchstart, touch.x and touch.y display correctly, and pinching for zoom behaves correctly as well, but the mouse remains stuck on the top left corner. I tried disabling addons and Enhanced Tracking Protection, but the behavior persisted. I then tried to create a clean install of Firefox 108.1.0 leaving all of the default settings (except for remote debugging) and going straight into squeak.js.org, and it also did not work.

The device is a Poco F3 running LineageOS for microG, build 19-20221201-microG-alioth.

Logs attached here
GEThttps://squeak.js.org/run/#zip=https://files.squeak.org/6.0/Squeak6.0-22104-64bit/Squeak6.0-22104-64bit.zip
[HTTP/2 200 OK 124ms]

GEThttps://squeak.js.org/lib/gh-fork-ribbon.css
[HTTP/2 200 OK 42ms]

GEThttps://squeak.js.org/run/squeakjs.css
[HTTP/2 200 OK 37ms]

GEThttps://squeak.js.org/squeak.js
[HTTP/2 200 OK 136ms]

GEThttps://squeak.js.org/run/squeakjs.png
[HTTP/2 200 OK 42ms]

SpeechPlugin: Web Speech API is not supported by this browser. squeak.js:39063:23
XHRGEThttps://files.squeak.org/6.0/Squeak6.0-22104-64bit/Squeak6.0-22104-64bit.zip
[HTTP/2 200 OK 13532ms]

Creating files database squeak.js:8787:25
Opened files database. squeak.js:8774:25
Stored /Squeak6.0-22104-64bit.zip squeak.js:55248:21
Inflating Squeak6.0-22104-64bit.zip: SqueakV60.sources squeak.js:55284:25
Inflating Squeak6.0-22104-64bit.zip: Squeak6.0-22104-64bit.changes squeak.js:55284:25
Inflating Squeak6.0-22104-64bit.zip: Squeak6.0-22104-64bit.image squeak.js:55284:25
Expanded size of Squeak6.0-22104-64bit.changes: 25497 squeak.js:55287:29
Expanded size of SqueakV60.sources: 54972153 squeak.js:55287:29
Expanded size of Squeak6.0-22104-64bit.image: 50354392 squeak.js:55287:29
Stored /Squeak6.0-22104-64bit.changes squeak.js:55248:21
Stored /SqueakV60.sources squeak.js:55248:21
Stored /Squeak6.0-22104-64bit.image squeak.js:55248:21
squeak: reading /Squeak6.0-22104-64bit.image (50354392 bytes) squeak.js:1431:21
squeak fsck: 0 directories, 4 files, 130.6 MBytes squeak.js:8710:25
squeak: initializing interpreter SqueakJS 1.0.5 squeak.js:2591:21
Hacking SmalltalkImage>>wordSize squeak.js:2728:45
squeak: initializing JIT compiler squeak.js:2695:25
squeak: ready squeak.js:2601:21
missing primitive: 65 (primitiveNext) squeak.js:4046:40
Loaded module: MiscPrimitivePlugin squeak.js:5621:21
missing primitive: 67 (primitiveAtEnd) squeak.js:4046:40
missing primitive: 158 (primitiveCompareWith) squeak.js:4046:40
missing primitive: 21 (primitiveAddLargeIntegers) squeak.js:4046:40
Loaded module: LargeIntegers squeak.js:5621:21
missing primitive: 578 (primitiveSuspendAndBackupPC) squeak.js:4046:40
Partial GC (primitive): 25 ms squeak.js:1963:21
Loaded module: FilePlugin squeak.js:5621:21
Loaded module: LocalePlugin squeak.js:5621:21
missing primitive: LocalePlugin.primitiveLanguage squeak.js:4046:40
missing primitive: LocalePlugin.primitiveCountry squeak.js:4046:40
missing primitive: LocalePlugin.primitiveCurrencySymbol squeak.js:4046:40
Directory not found: /locale squeak.js:9994:25
Loaded module: SecurityPlugin squeak.js:5621:21
missing primitive: SecurityPlugin.primitiveCanWriteImage squeak.js:4046:40
missing primitive: SecurityPlugin.primitiveGetSecureUserDirectory squeak.js:4046:40
File not found: /Squeak.keys squeak.js:10210:29
missing primitive: 66 (primitiveNextPut) squeak.js:4046:40
missing primitive: 575 (primitiveHighBit) squeak.js:4046:40
Loaded module: BitBltPlugin squeak.js:5621:21
missing primitive: 32 (primitiveDivLargeIntegers) squeak.js:4046:40
missing primitive: 33 (primitiveQuoLargeIntegers) squeak.js:4046:40
missing primitive: 22 (primitiveSubtractLargeIntegers) squeak.js:4046:40
Loaded module: FloatArrayPlugin squeak.js:5621:21
Loaded module: Matrix2x3Plugin squeak.js:5621:21
Loaded module: B2DPlugin squeak.js:5621:21
Partial GC (instance of StrikeFont): 24 ms squeak.js:1963:21
Partial GC (instance of TTCFont): 20 ms squeak.js:1963:21
Partial GC (instance of LinedTTCFont): 22 ms squeak.js:1963:21
Partial GC (instance of TextStyle): 21 ms squeak.js:1963:21
missing module: UUIDPlugin (primitiveMakeUUID) squeak.js:4046:40
missing primitive: 243 (primitiveUpdateTimeZone) squeak.js:4046:40
missing primitive: 31 (primitiveModLargeIntegers) squeak.js:4046:40
Partial GC (nextObject): 49 ms squeak.js:1963:21
missing module: HostWindowPlugin (primitiveHostWindowSizeSet) squeak.js:4046:40
Partial GC (instance of TextMorph): 26 ms squeak.js:1963:21
Partial GC (instance of TextMorphForEditView): 23 ms squeak.js:1963:21
Partial GC (instance of PluggableSystemWindow): 24 ms 2 squeak.js:1963:21
Loaded module: CroquetPlugin squeak.js:5621:21
Partial GC (instance of CommandHistory): 28 ms squeak.js:1963:21
Partial GC (instance of MorphExtension): 23 ms squeak.js:1963:21
Loaded module: SocketPlugin squeak.js:5621:21
missing primitive: SocketPlugin.primitiveResolverHostNameSize squeak.js:4046:40
missing module: ClipboardExtendedPlugin (ioCreateClipboard) squeak.js:4046:40
missing primitive: 29 (primitiveMultiplyLargeIntegers) squeak.js:4046:40
Ignoring ‘preventDefault()’ call on event of type ‘touchmove’ from a listener registered as ‘passive’. squeak.js:54538:55

@codefrau
Copy link
Owner

Oh it's a phone! I tried with Firefox's touch emulation on desktop, and that does work.

The touch logic is pretty simple:

function touchToMouse(evt) {

Maybe add some debug logging?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants