<div dir="ltr"><div><div><div>Hi Dhimil and Neil,<br></div><div><br></div><div>Even if your requested APIs are unavailable, you can still achieve similar results with the nativeMessaging extension API. This allows your extension to communicate with a separately installed native application (in any language, can be compiled or non-compiled such as Python). This external application can then provide the socket functionality that you need.<br></div></div></div><div><br></div><div>I've looked at <a href="https://chrome.google.com/webstore/detail/browserstack-local/mfiddfehmfdojjfdpfngagldgaaafcfo?hl=EN">your BrowserStack Local app for Chrome</a>, and it uses the fileSystem and socket APIs (note: these APIs are only available to "apps", not "extensions"). <b>Your "BrowserStack Local" app for Chrome will cease to work in 2018</b> because Google is dropping support for Chrome Apps for all platforms (except ChromeOS). If you missed this, the announcement can be read at <a href="https://blog.chromium.org/2016/08/from-chrome-apps-to-web.html">https://blog.chromium.org/2016/08/from-chrome-apps-to-web.html</a><br></div><div><br></div><div>The good news is that native messaging is supported by both Firefox and Chrome, so if you start developing a native messaging component for Firefox, the result can be re-used when Chrome drops support for "Chrome Apps".</div><div><br></div><div>Here is documentation for nativeMessaging in Firefox:<br></div><div><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging">https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging</a></div><div><br></div><div>Here is documentation for nativeMessing in Chrome (the underlying protocol is identical, the only difference is the way of registering the native messaging application):</div><div><a href="https://developer.chrome.com/extensions/nativeMessaging">https://developer.chrome.com/extensions/nativeMessaging<br></a></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div>Kind regards,<br></div> Rob<br></div> <a href="https://robwu.nl" target="_blank">https://robwu.nl</a><br></div></div></div>
<br><div class="gmail_quote">2017-09-27 15:01 GMT+02:00 Dhimil Gosalia <span dir="ltr"><<a href="mailto:dhimil@browserstack.com" target="_blank">dhimil@browserstack.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Adding Neil (VP product, BrowserStack)<br></div><div><br></div>Hey Andrew,<div>Thanks for the prompt response but as I have mentioned earlier this extension is really critical for seamless BrowserStack experience on Firefox. Due to the lack of support (or alternatives) for the above mentioned APIs we will be forced to drop complete support for Firefox.</div><div><br></div><div>Thanks.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 26, 2017 at 2:15 AM, Andrew McKay <span dir="ltr"><<a href="mailto:amckay@mozilla.com" target="_blank">amckay@mozilla.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sadly, at this time I don't believe that there are alternatives to<br>
those APIs. There are come bugs for some of those things you've<br>
mentioned like:<br>
<br>
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1247628" rel="noreferrer" target="_blank">https://bugzilla.mozilla.org/s<wbr>how_bug.cgi?id=1247628</a> TCP and UDP<br>
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1373640" rel="noreferrer" target="_blank">https://bugzilla.mozilla.org/s<wbr>how_bug.cgi?id=1373640</a> DNS support<br>
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1323414" rel="noreferrer" target="_blank">https://bugzilla.mozilla.org/s<wbr>how_bug.cgi?id=1323414</a> streaming support<br>
<br>
But as you can see those have not been implemented in Firefox 57.<br>
<div><div class="m_-3093623871297920152h5"><br>
<br>
On 22 September 2017 at 05:40, Dhimil Gosalia <<a href="mailto:dhimil@browserstack.com" target="_blank">dhimil@browserstack.com</a>> wrote:<br>
> Hello,<br>
><br>
> We are the developers of the BrowserStack's Firefox extension. Our goal at<br>
> BrowserStack is to help developers to test websites/apps seamlessly on all<br>
> the major platforms. That is made possible by our extension which acts as a<br>
> reverse proxy and let user test local servers by tunneling the connections.<br>
> For your reference: <a href="https://www.browserstack.com/local-testing" rel="noreferrer" target="_blank">https://www.browserstack.com/l<wbr>ocal-testing</a>.<br>
><br>
> With the changes to the Firefox API leading up to version 57.0, our plugin<br>
> was marked as legacy because it's based on XPCOM-javascript API. Now, we are<br>
> all excited about new WebExtensions API and the future it holds but<br>
> currently, it's missing one of our most used API, chrome.socket.*<br>
><br>
> Currently, we use the following services on Firefox in our extension:<br>
><br>
> nsISocketTransportService<br>
> dnsService<br>
> nsIScriptableInputStream<br>
> nsIInputStreamPump<br>
> nsIBufferedInputStream<br>
> nsIAsyncInputStream<br>
><br>
><br>
> Checking online, we found that we might not be the only group using the<br>
> above APIs. Mozilla and BrowserStack announced a partnership recently and we<br>
> don't want our customers on Firefox to miss out on seamless local<br>
> integrations! We want to understand if there are any alternatives to the<br>
> above APIs.<br>
><br>
> I have cc'd my fellow team mates and Adam, who helped us with the right<br>
> contact (Thanks Adam!).<br>
><br>
> Thank you for helping us out!<br>
><br>
> --<br>
> Dhimil Gosalia,<br>
> BrowserStack.<br>
><br>
</div></div>> ______________________________<wbr>_________________<br>
> Webextensions-support mailing list<br>
> <a href="mailto:Webextensions-support@mozilla.org" target="_blank">Webextensions-support@mozilla.<wbr>org</a><br>
> <a href="https://mail.mozilla.org/listinfo/webextensions-support" rel="noreferrer" target="_blank">https://mail.mozilla.org/listi<wbr>nfo/webextensions-support</a><br>
><span class="HOEnZb"><font color="#888888"><br>
</font></span></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="m_-3093623871297920152gmail_signature" data-smartmail="gmail_signature">Dhimil Gosalia,<br>BrowserStack.</div>
</font></span></div>
<br>______________________________<wbr>_________________<br>
Webextensions-support mailing list<br>
<a href="mailto:Webextensions-support@mozilla.org">Webextensions-support@mozilla.<wbr>org</a><br>
<a href="https://mail.mozilla.org/listinfo/webextensions-support" rel="noreferrer" target="_blank">https://mail.mozilla.org/<wbr>listinfo/webextensions-support</a><br>
<br></blockquote></div><br></div>