> Confirmed that GetVariable("$version") call on a flash plugin return > the version using the flash support of kmplayer plugin. > However, I can currently only get it by calling it after the plugin is > loaded, eg in body.onLoad. > So 'appendFlash = body.appendChild(flash)) && appendFlash.GetVariable' > will only work when starting a local event loop for the time the > plugin is up and running. Known to crash konqueror on unfortunate > redirects (*). Urgh. Did you check whether the actual youtube does this, or just the testcase? The exact sequence determines a lot on when we can actually create the part. >> Unfortunately, it's extremely >> tricky to fully implement with out-of-process plugins, especially since >> the presently used IPC system, D-Bus is inadequate for the task. > > Why? You mentioned that before and I only recall that the lack of > nested calls. But dbus supports nested calls just fine. Erm, that's not what Thiago told me :-). Anyway, I found our old discussion, and remembered a solution I had... > (*) That said, using the Qt eventloop for IPC is the source we cannot > block safely. Currently thinking about a way to block w/o running > processEvents (no OnlySocketNotifiers afaics), eg something with > qprocess waitForStarted(), waitForReadyRead() or so. ... which involves using a second thread to do the DBus connection, and blocking on the condition variable. I'll see if I can maybe make the class standalone, in case it'll be useful for you, too. > > We also need a LiveConnect2Extension. As mentioned before, the string > based argument list/return value is too limited. We need at least a > way to pass proxies of js objects as arguments. On these proxies > get/put/call should be possible. Maybe simply use QVariant with a user > type for the proxy can work. Definitely. Could I ask you to review the API once I get there?