Not being a programmer, I don't fully comprehend the discussion that follows, but I am very happy to see that pskreporter.info/pskmap.html now works properly with SeaMonkey v2.53.5.1.

Thank you very much, Philip, for the time you spent tracking this down and thank you to everyone else who participated in the discussion.

John

Philip Gladstone wrote:
I found the failing commit in openlayers:

git show 886ca26c6ae5

Rather alarmingly it includes the following new section in the README.md

## Supported Browsers

OpenLayers runs on all modern browsers that support 
[HTML5](https://html.spec.whatwg.org/multipage/) and [ECMAScript 
5](http://www.ecma-international.org/ecma-262/5.1/). This includes Chrome, 
Firefox, Safari and Edge.

For older browsers and platforms (Internet Explorer, Android 4.x, iOS v12 and 
older, Safari v12 and older), polyfills may be needed for the following browser 
features:

* [`requestAnimationFrame`](https://caniuse.com/#feat=requestanimationframe): 
Available from [polyfill.io](https://polyfill.io/).
* [`element.prototype.classList` 
(`add`/`remove`)](https://caniuse.com/#feat=classlist): Available from 
[polyfill.io](https://polyfill.io/).
* [`URL` API](https://caniuse.com/#feat=url): Available from 
[polyfill.io](https://polyfill.io/).
* [Pointer events](https://caniuse.com/#feat=pointer): Use 
[elm-pep](https://npmjs.com/package/elm-pep) (lightweight) or 
[@openlayers/pepjs](https://npmjs.com/package/pepjs) (for really, really old 
browsers).

  Adding the line:

<script src="https://unpkg.com/elm-pep";></script>

to the web page makes seamonkey work. However, I thought that seamonkey was a 
reasonably modern browser, so it might be interesting to understand why I need 
this polyfill....

Any thoughts?

Philip

On Saturday, January 16, 2021 at 7:20:07 PM UTC-5, Dirk Fieldhouse wrote:
On 16/01/2021 17:37, Philip Gladstone wrote:

I'm the author of pskreporter.info and I'm trying to work out why it doesn't 
work in seamonkey. The root cause appears to be that pointermove events are not 
being delivered to the application.

In particular, the following test demonstrates the difference between firefox 
and seamonkey

* Go to https://pskreporter.info/pskmapn?hhhh
* After the page loads, open the developer tools and set in the console 
'disable_timers = 1' and then wait a couple of seconds.
* Now press break in the source debugger. It should break on the next event
* Now move the mouse into the map area and observe that it does not break.
* Clicking on the + or - in the top left corner will trigger a break.
SM 2.53.5.1 Linux x86; NoScript 5.1.9.

I loaded the site and enabled JS for pskreporter.info, cdn.polyfill.io,
cdn.jsdelivr.net, unpkg.com, ajax.googleapis.com, and bootstrapcdn.com.
Now there's a world map with day/night overlay and lots of pins. In the
map area, only the +/- and the copyright links are abinding gives this
ctive. The count of reception records at the bottom of the page
increments continually.

Following steps 2-4, I get a break on step 3 at map_control_oln.js:4363
(repeatably). Step 4 is as you say. Step 5: no break.
In Chrome, you can figure out that it is this element that has the pointermove 
event handler:
<div class="ol-viewport" style="position: relative; overflow: hidden; width: 100%; 
height: 100%;">...

However I can't tell where the event handler is in seamonkey.
...

In the Inspector tab of the SM dev tools, you should see a little "ev"
in a black-filled box after each element that has any attached event
handler.

For me, the same element shows the pointermove event handler as

function(t) {
this.originalPointerMoveEvent_ = t;
var e = !(!this.down_ || !this.isMoving_(t));
this.dispatchEvent(new Da(t.type, this.map_, t, e))
}

If I run the minified ol.js through beautifier.io I find this at line 14776:
}, e.prototype.relayEvent_ = function(t) {
this.originalPointerMoveEvent_ = t;
...

As you say, the event is obviously not being delivered: maybe some this
is not being bound as expected or some issue with preventDefault?

HTH

/df

--
London
UK

--
Q: What's the quickest way to get a mailbox full of spam?
A: Post a message in any newsgroup using a real email address.

Therefore, please reply in this newsgroup. Thank you.
_______________________________________________
support-seamonkey mailing list
support-seamonkey@lists.mozilla.org
https://lists.mozilla.org/listinfo/support-seamonkey

Reply via email to