<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Aug 30, 2016 at 5:00 AM Gustavo Noronha Silva &lt;<a href="mailto:gns@gnome.org">gns@gnome.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hey,<br>
<br>
On Tue, Aug 30, 2016, at 07:53 AM, Michael Catanzaro wrote:<br>
&gt; On Tue, 2016-08-30 at 09:36 +0200, Carlos Garcia Campos wrote:<br>
&gt; &gt; Freezing the API is not going to be a problem in the short-mediumĀ <br>
&gt; &gt; term, we haven&#39;t added any new API to the stable part since we split<br>
&gt; &gt; the API, and I can only remember a single bug report requesting to<br>
&gt; &gt; move<br>
&gt; &gt; something from unstable to stable<br>
&gt;<br>
&gt; We have a serious problem right now in that applications (Epiphany,<br>
&gt; Yelp, Evolution) depend on our unstable API, but we break the unstable<br>
&gt; ABI without any soname bumps. From a downstream perspective, this is<br>
&gt; really terrible. It&#39;s fine to have unstable API, but it *must* have<br>
&gt; proper soname versioning or it makes life hell for downstreams. We<br>
&gt; could, e.g., have two separate shared libs, and you need to link<br>
&gt; separately to the unstable lib to get the unstable API.<br>
<br>
Long term, I think it might pay off if we move away from GObject<br>
bindings and into making running arbitrary JS code (possibly with access<br>
to GObject APIs through something like seed) on the page&#39;s JS context<br>
simpler. I think the GObject bindings were very useful in their current<br>
form when you could use them from your main program, but less so when<br>
you&#39;ll have to run it on the web process and set up some kind of IPC<br>
anyway.<br>
<br>
Do we have an idea how people are using the DOM bindings today and how?<br>
Would they be properly served by an easier to use JS bridge?<br></blockquote><div><br></div><div>Here&#39;s an example of something I&#39;m doing with the DOM bindings:</div><div><a href="https://github.com/endlessm/eos-sdk/blob/master/webhelper/webextensions/wh2extension.c">https://github.com/endlessm/eos-sdk/blob/master/webhelper/webextensions/wh2extension.c</a></div><div>Here, I use the DOM bindings to identify HTML elements marked for i18n, and call back into the UI process via DBus to fetch the translations using gettext.</div><div><br></div><div>As you can see most of this code deals with IPC, so any API that would make IPC less of a pain to set up in web extensions would be welcome. I&#39;m not sure, though, how running JS code would make it easier since there&#39;s already webkit_web_view_run_javascript().</div><div><br></div><div>Regards,</div><div>Philip C</div></div></div>