Browser Widget & Web-Plugins
-
- Posts: 627
- Joined: Wed Apr 24, 2013 4:53 pm
- Contact:
Browser Widget & Web-Plugins
I'm using the browser widget to execute JavaScripts that load a web-plugin on Mac OS X. I'm pretty sure the plug-in is "fat" both 32bits and 64bit, it works fine in 64bit web browsers, however it crashes when it gets called to load from the LiveCode browser widget unless I set the engine to run in 32bit mode (which it seems was the default mode until recently) and then it loads just fine. So is this bug report worthy bug do you think? It seems like it should work, or at least fail a little more gracefully if it turns out it isn't a 64-bit plugin.
-
- VIP Livecode Opensource Backer
- Posts: 2262
- Joined: Thu Feb 28, 2013 11:52 pm
- Location: Göttingen, DE
Re: Browser Widget & Web-Plugins
Hi Paul,
perhaps a feature request is more adequate than a bug report?
AFAIK plugin handling is done by the browsers and not (at least not comfortably) supported by the frameworks, so rather a feature for a simple widget.
To see it positive: You could tell the users of your app how they can have your stack with the plugin working: One single click on the "Open in 32bit mode" check button in Finder's info of the LC app is not this much work...
H.
perhaps a feature request is more adequate than a bug report?
AFAIK plugin handling is done by the browsers and not (at least not comfortably) supported by the frameworks, so rather a feature for a simple widget.
To see it positive: You could tell the users of your app how they can have your stack with the plugin working: One single click on the "Open in 32bit mode" check button in Finder's info of the LC app is not this much work...
H.
shiftLock happens
-
- Posts: 627
- Joined: Wed Apr 24, 2013 4:53 pm
- Contact:
Re: Browser Widget & Web-Plugins
Well yes, I do mention that if the user is using the latest developer previews of LC9 on Mac OS X then they will need to "Open in 32 bit mode" (though maybe a little tutorial on exactly how to do that might help). The default on Mac OS until recent builds seems to have been 32bit mode. But shouldn't 32bit and 64bit have feature parity? And if Browser instances use the WebKit that is in the Mac OS X system, and if Safari, using the same WebKit and running in 64bit mode loads the very same plug-in without issue, wouldn't that make this a bug in the LiveCode browser instance implimentation?
Here's my stack, just in case anyone is interested:
http://livecodeshare.runrev.com/stack/847/HyperTalkMIDI
Here's my stack, just in case anyone is interested:
http://livecodeshare.runrev.com/stack/847/HyperTalkMIDI
Re: Browser Widget & Web-Plugins
@PaulDaMacMan: The browser widget is just a thing wrapper around the Mac WebKit/WebView (Obj-C) framework. The crash isn't happening in LiveCode, but in the PluginHost process which loads and runs plugins (WebKit uses process separation to guard against rogue / bad plugins).
Unfortunately, I think the problem might be with the JazzSoft plugin, rather than with LiveCode or WebKit http://jazz-soft.org/bb/viewtopic.php?f=2&t=236.
That forum thread is a few years old, but the crashlog reported there is pretty much the same as the one I see when loading the jazz-soft site in a browser widget.
It might be worth contacting JazzSoft and asking them whether they ever managed to solve that problem.
Unfortunately, I think the problem might be with the JazzSoft plugin, rather than with LiveCode or WebKit http://jazz-soft.org/bb/viewtopic.php?f=2&t=236.
That forum thread is a few years old, but the crashlog reported there is pretty much the same as the one I see when loading the jazz-soft site in a browser widget.
It might be worth contacting JazzSoft and asking them whether they ever managed to solve that problem.
-
- Posts: 627
- Joined: Wed Apr 24, 2013 4:53 pm
- Contact:
Re: Browser Widget & Web-Plugins
Hmmm, that is strange because I've been working with this setup (JAZZ-Plugin in a WebKit view) for more than a year but I only recently started having problems with it in newer builds of LC9dp8+9 (since 64bit mode became the default) and even then it usually runs just fine in 32bit mode (though the plug-in does still randomly crash occasionally now). Older builds and LC8 (in 32bit mode by default) do not seem to have the same issues. It could be something introduced in the latest version of the plug-in I guess (updated back in May I think). I'm thinking it has something to do with 64-bit Webkit views.
Hopefully someday someone (myself?) will be able to wrap a cross-platform MIDI lib (fluidSynth) with LCB and render this problem obsolete.
Hopefully someday someone (myself?) will be able to wrap a cross-platform MIDI lib (fluidSynth) with LCB and render this problem obsolete.
-
- Posts: 627
- Joined: Wed Apr 24, 2013 4:53 pm
- Contact:
Re: Browser Widget & Web-Plugins
I emailed JAZZ-Plugin developer about it and to get more general info. Is there a way to tell if a Web Plug-in binary has 64bit code? (Like how you can get that info on kernel extensions with KEXT tool CLI)
Re: Browser Widget & Web-Plugins
@PaulDaMacMan: If you locate the plugin's bundle, then you can use 'otool' from the command line to find out what slices are in a Mac executable:
Typically the executablefile is the same name as bundle - although can vary.
Code: Select all
otool -hv <pathtobundle>/Contents/MacOS/<executablefile>
Re: Browser Widget & Web-Plugins
@PaulDaMacMan: It does sound like a 64-bit issue - as the plugin does seem to run fine in 32-bit LiveCode in the browser widget on my system. Is an older version of the JazzPlugin available to download? Perhaps you could try and see if an older version works in 64-bit, it might help them track down the issue.
In regards to fluidSynth, then the API looks quite well designed using opaque pointer types - which are generally the easiest to wrap with LCB.
In regards to fluidSynth, then the API looks quite well designed using opaque pointer types - which are generally the easiest to wrap with LCB.